来自EmptyLicensesLicx项目自述文件:
当您开发使用第三方控件(例如可以从 Telerik 或 DevExpress 购买的控件)的 .NET 应用程序时,一个名为的神秘文件licenses.licx
会出现在Properties
您的 C# 项目的文件夹中(或者My Project
如果您使用的是 VB 文件夹,则为文件夹。网)。
这意味着第三方控件使用.NET Framework 提供的许可模型来对组件和控件进行许可。
此文件是由参与许可证检查的 Visual Studio 生成(和修改)的过渡文件。在设计模式下,Visual Studio 使用此文件记录您在设计中使用的每个许可控件。然后,当您构建应用程序时,Visual Studio 会读取此licenses.licx
文件,并且对于其中提到的每个控件,加载相关程序集并在该程序集中运行许可代码,以查看该程序集是否已获得正确许可(即,它所属的产品已正确安装在该机器上)。如果一切顺利,Visual Studio 会将许可证密钥嵌入到可执行文件中。如果没有,您将收到关于控件未获得许可的奇怪错误消息(我最喜欢的是“ Could not transform licenses file 'licenses.licx' into a binary resource.
”)。
这licenses.licx
是一个自动添加到您的项目中的文件(如果您看不到它,请单击Show All Files)。Visual Studio 使用一个名为的程序lc.exe
将许可证编译到应用程序中的嵌入式资源中,当许可证编译过程出现问题时,您可能会看到引用此可执行文件的错误消息。
以下是文件中的一行示例licenses.licx
:
DevExpress.XtraCharts.ChartControl, DevExpress.XtraCharts.v15.2.UI, Version=15.2.10.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraMap.MapControl, DevExpress.XtraMap.v15.2, Version=15.2.10.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
Infragistics.Win.Misc.UltraButton, Infragistics2.Win.Misc.v8.1, Version=8.1.20081.1000, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
Infragistics.Win.Misc.UltraGroupBox, Infragistics2.Win.Misc.v8.1, Version=8.1.20081.1000, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb
每行都包含对包含在程序集中的类型的引用,采用逗号分隔的列表格式。第一个值是类的全名,第二个是包含该类的程序集,其他值是程序集标识的一部分。