我正在使用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()]
答案 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文件,覆盖该文件中保存的所有旧日期。 与您的文件相关联的所有“未解决”类型都将被删除。