11

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

C1.Win.C1FlexGrid.C1FlexGrid,C1.Win.C1FlexGrid.2,版本=2.6.20122.716,文化=中性,PublicKeyToken=79882d576c6336da

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

DataTree.C1FlexDataTree,fpstudio,版本=1.0.0.0,文化=中性,PublicKeyToken=null

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

错误 51 无法解析类型 'DataTree.C1FlexDataTree, fpstudio, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' C:_DEVELOPMENT_FP_DRAFT12\COMPONENT1_WORKING_MERGED\fpstudio\Properties\licenses.licx 3 Freepour Studio

我怎么能告诉这个类不要尝试许可控件,因为它已经被继承并被许可了。我已经[LicenseProvider()]从 DataTree 类中删除了

4

3 回答 3

9

这很痛苦......我建议你安装EmptyLicensesLicx nuget 包,它会确保Licenses.licx你的项目中有一个空的,在它被编译之前(这就是你所需要的)。

于 2016-11-24T22:29:11.243 回答
2

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

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

(或没有 DataTree.C1FlexDataTree 行)。注意,如果您打开设计器进行一些更改,VS 可以再次编辑此文件。没有办法阻止这种情况。您将不得不再次编辑文件。

于 2013-02-26T11:47:38.663 回答
0

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

于 2020-05-30T04:13:15.837 回答