调试错误:Licenses.licx:无法解析类型

问题描述 投票:0回答:5

我正在使用 ComponentOne FlexGrid,它自动在其许可证中注册

C1.Win.C1FlexGrid.C1FlexGrid、C1.Win.C1FlexGrid.2、 版本=2.6.20122.716,文化=中立, 公钥令牌=79882d576c6336da

我还使用继承 C1FlexGrid 的自定义控件,但在运行时它会尝试注册

DataTree.C1FlexDataTree,fpstudio,版本=1.0.0.0,文化=中性, 公钥令牌=空

在许可证文件中,最终会产生错误:

错误51无法解析类型'DataTree.C1FlexDataTree,fpstudio, 版本=1.0.0.0,文化=中立, PublicKeyToken=null' C:_DEVELOPMENT_FP_DRAFT12\COMPONENT1_WORKING_MERGED pstudio\Properties\licenses.licx 3 Freepour 工作室

我怎样才能告诉这个类不要尝试许可该控件,因为它已经被继承并且本身已获得许可。我已经从 DataTree 类中删除了

[LicenseProvider()]

winforms licensing componentone licenses.licx emptylicenseslicx
5个回答
11
投票

这很痛苦...我建议您安装 EmptyLicensesLicx nuget 软件包,它将确保您的项目中在编译之前有一个空的

Licenses.licx
(这就是您所需要的)。


2
投票

我认为唯一的方法是手动编辑licenses.licx文件并从那里删除DataTree.C1FlexDataTree。请注意,当您在设计器中使用表单和控件时,VS 会自动编辑 licenses.licx 文件。如果您关闭所有设计器窗口并手动编辑 licx 文件,您的更改将被保存,您可以避免出现问题。 licx 文件最常见的问题是将控件更新到其他版本后出现构建错误。为了避免这种情况,您只需从此文件中删除版本和公钥令牌信息即可。之后它将适用于任何版本。 IE。你的licenses.licx文件内容应该是这样的:

C1.Win.C1FlexGrid.C1FlexGrid, C1.Win.C1FlexGrid.2
DataTree.C1FlexDataTree, fpstudio

(或没有 DataTree.C1FlexDataTree 行)。 注意,如果你打开设计器做一些改变,VS可以再次编辑这个文件。没有办法阻止这种情况。您必须再次编辑文件。


0
投票

我发现解决方案是在项目中打开一个新的空白表单,将库附带的每个对象添加到该表单中。 然后执行“构建”,Visual Studio 使用添加对象的正确信息更新您的 .licx 文件,覆盖该文件中保存的任何旧日期。 与您的文件关联的所有“未解析”类型都将被删除。


0
投票

就我而言,解决方案非常简单,只需打开文件licenses.licx,清空内容,保存更改并再次运行您的解决方案。注意:不要删除文件,只是清空内容。

希望这对您有用。


0
投票

非常感谢您的回答。

© www.soinside.com 2019 - 2024. All rights reserved.