如何使用licenses.licx文件
我已经获得了包含在我的一个项目属性中的licenses.licx文件。 我不确定它的dll是如何使用的。 它被使用的MSBuild? 当解决scheme正在build设中时,您是否知道如何使用它?
既然你指出StellarEleven的答复没有帮助,我想你正在寻找更简单的东西。 这可能不是100%正确的,但是这是我的理解这是如何工作的:
licx文件只是您的应用程序使用的“许可”组件的列表。
文件中的每一行都是以下格式:
[Component Name], [Assembly Name]
例如,我的一个项目使用许可的IP Works NetDial组件,所以我的.licx文件包含以下行:
nsoftware.IPWorks.Netdial, nsoftware.IPWorks
在项目(.csproj)文件的上下文中,.licx文件被引用为EmbeddedResource。 在构build过程中, LC.exe将validation执行构build的计算机是否具有相应组件的相应许可证,并生成一个二进制.licenses文件,最终将其作为资源embedded([AssemblyName] .exe.licenses )在最后的可执行文件中。
这有帮助吗?
Licenses.licx文件困扰
在ASP.NET的部分文件跆拳道。
挫折当您使用我们的控件开发Web应用程序时,会出现一个名为licenses.licx的神秘文件。 不,这不是一个使用奇怪名字的棒棒糖的命令,而是由Visual Studio生成(并修改)的参与许可证检查的过渡文件。 在devise模式下,Visual Studio使用此文件logging您在devise中使用的每个授权控件。 然后,当您构build应用程序时,Visual Studio将读取这个licenses.licx文件,并且对于此处提及的每个控件,都将加载相关程序集并在该程序集中运行许可证代码,以查看程序集是否已正确许可(即,产品它所属的机器已经正确安装在该机器上)。 如果一切都检出,Visual Studio将许可证密钥embedded到可执行文件中。 如果没有,你会得到关于控制未被许可的奇怪的错误消息(我最喜欢的是“无法转换许可证文件'licenses.licx'到二进制资源。”我通常调用我的丰富多彩的语言祖先)。
Licenses.licx实际上是解决scheme中的一个文件(如果您在那里看不到它,请单击“显示所有文件”)。 Visual Studio使用名为lc.exe的程序将许可证编译到应用程序中的embedded式资源中,当许可证编译出现问题时,我也看到了引用此可执行文件的错误消息。
以下是licenses.licx文件中的一行示例。
DevExpress.XtraCharts.Web.WebChartControl,DevExpress.XtraCharts.v8.2.Web,Version = 8.2.4.0,Culture = neutral,PublicKeyToken = 9b171c9fd64da1d1
这个逗号分隔列表中的第一个值是类,第二个是find它的程序集,其他值是程序集强名称的其余部分。 我确定您已经可以看到问题了,尤其是当您将解决scheme升级到您使用的第三方控件的最新版本时。 如果你愿意,你可以编辑这个文件并删除强名部分没有问题。
但是这不是license.licx最大的问题。 如果你打开解决scheme(这是“触摸”,如将文件date更改为当前date/时间),Visual Studio有倾向于触摸此文件。 这对授权产生了巨大的影响,特别是如果您在未授权的计算机上打开解决scheme,并且正在使用源代码pipe理。 突然你的build造机器将甩开这些“无法转换”的信息,你不知道出了什么问题。 另一个stream行的问题是,当你有一个开发团队的解决scheme:他们都无意识地“修改”这个文件。
所以,答案似乎不是要将licenses.licx文件放在源代码pipe理下。 (知识库文章)
但是这个问题的解决scheme会引发另一个红旗:如果团队中的某个开发人员添加了一个需要授权给表单的新控件,则会将一行添加到他的本地licenses.licx文件中,并且可能不会反映在源代码pipe理中。 Bam,你的机器制造失败了,Joe加了控制器,不得不为团队购买甜甜圈,直到其他人破坏了这个版本。
对于后一个问题,我恐怕没有很好的解决办法,因为不幸的是,“不把license.licx放在源代码pipe理中”似乎是每个人都在解决授权问题的方式。 另一个解决scheme是彻底删除licenses.licx文件,然后通过打开解决scheme让Visual Studio重新生成它(尽pipe在构build机上这有点困难)。
无论如何,希望在某种程度上有所帮助。 用手机打你的笔记本电脑不是真的会有帮助。