0

我想知道 ASP.NET 项目中 licenses.licx 文件的用途是什么。我可以在我的提交历史记录中看到,在我对 licenses.licx 文件的最后一次提交中添加了以下几行:

Telerik.Web.UI.RadGrid, Telerik.Web.UI, Version=2019.1.115.45, Culture=neutral, PublicKeyToken=...
Telerik.Web.UI.RadAsyncUpload, Telerik.Web.UI, Version=2019.1.115.45, Culture=neutral, PublicKeyToken=...

另一位开发人员问我这两条添加的行对项目有什么影响。

那么 licences.licx 文件的用途是什么,为什么会自动添加这两行?我通过谷歌搜索了一下,但我还没有真正理解它的目的是什么。

谢谢!

4

1 回答 1

1

来自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

每行都包含对包含在程序集中的类型的引用,采用逗号分隔的列表格式。第一个值是类的全名,第二个是包含该类的程序集,其他值是程序集标识的一部分。

于 2021-10-06T19:22:36.123 回答