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

Winforms 调试错误:Licenses.licx:无法解析类型,winforms,licensing,componentone,licenses.licx,emptylicenseslicx,Winforms,Licensing,Componentone,Licenses.licx,Emptylicenseslicx,我使用的是ComponentOne FlexGrid,它会自动在其许可证中注册 C1.Win.C1FlexGrid.C1FlexGrid,C1.Win.C1FlexGrid.2, 版本=2.6.20122.716,文化=中性, PublicKeyToken=79882d576c6336da 我还使用了一个继承C1FlexGrid的自定义控件,但在运行时它会尝试注册 DataTree.C1FlexDataTree,fpstudio,版本=1.0.0.0,区域性=neutral, PublicKey

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

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

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

DataTree.C1FlexDataTree,fpstudio,版本=1.0.0.0,区域性=neutral, PublicKeyToken=null

在最终导致错误的许可证文件中:

错误51无法解析类型“DataTree.C1FlexDataTree,fpstudio, 版本=1.0.0.0,区域性=中性, PublicKeyToken=null'C:\u开发\u FP\u绘图12\COMPONENT1\u工作\u合并\fpstudio\Properties\licenses.licx 3免费 工作室


我怎样才能告诉这个类不要尝试许可该控件,因为它已经被继承并被自己许可了。我已经从DataTree类中删除了
[LicenseProvider()]
我认为唯一的方法是手动编辑licenses.licx文件并从中删除DataTree.C1FlexDataTree。注意,在designer中使用窗体和控件时,VS会自动编辑licenses.licx文件。如果关闭所有设计器窗口并手动编辑licx文件,您所做的更改将被保存,您可以避免出现问题。 licx文件最常见的问题是将控件更新到其他版本后出现生成错误。为了避免这种情况,您只需从该文件中删除版本和公钥令牌信息即可。之后,它将与任何版本一起工作。即,您的licenses.licx文件内容应如下所示:

C1.Win.C1FlexGrid.C1FlexGrid, C1.Win.C1FlexGrid.2
DataTree.C1FlexDataTree, fpstudio
(或不带DataTree.C1FlexDataTree行)。
注意,如果您打开designer进行一些更改,VS可以再次编辑此文件。这是无法避免的。您必须再次编辑该文件

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

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

我不知道这是否会对您有所帮助,但每当我们遇到ComponentOne许可问题时,我们只需创建一个空白表单,添加适当的组件,然后重新构建应用程序。然后ComponentOne将正确地将许可证添加到文件中。或者,您确定引用的版本正确吗?您是否在引用中尝试了“Specific Version”=false?您是否已将许可证的属性编译操作设置为“Embedded Resource”。licx?
生成操作:Embedded Resource
就是我所拥有的。我认为@notacat的答案是正确的。您不能阻止它,但您可以编辑licenses.licx文件以删除有问题的条目(在我的情况下,是我创建的扩展许可的第三方组件的类)。稍后,当我编辑使用该组件的表单时,它将被添加,但可以重新删除。很烦人,但很简单。我真希望这么早以前就找到这个包裹