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



我使用的是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=空

在许可证文件中,这最终会创建一个错误:

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

我如何告诉这个类不要尝试许可控件,因为它已经被继承并且是自己许可的。我已经从数据树类中删除了[LicenseProvider()]

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

我认为唯一的方法是手动编辑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可以再次编辑此文件。没有办法阻止这种情况的发生。您将不得不再次编辑文件。

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

在我的案例中,解决方案非常简单,只需打开licenses.licx文件,清空内容,保存更改,然后再次运行解决方案。注意:不要删除文件,只需清空内容即可。

希望这对你有用。

最新更新