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

时间:2012-11-30 20:17:50

标签: winforms licensing componentone licenses.licx emptylicenseslicx

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

  

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

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

  

DataTree.C1FlexDataTree,fpstudio,Version = 1.0.0.0,Culture = neutral,   公钥=空

许可证文件中的

,最终会产生错误:

  

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

如何告诉此类不要尝试许可控件,因为它已经被继承并且自己获得许可。我已经从DataTree类中删除了[LicenseProvider()]

3 个答案:

答案 0 :(得分:5)

这很痛苦...我建议你安装EmptyLicensesLicx nuget包,它会确保你的项目中有一个空Licenses.licx,然后才能编译(这是全部你需要)。

答案 1 :(得分:2)

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

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

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

答案 2 :(得分:0)

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