我曾遇到过多个使用许可证方案的第三方 .Net 组件供应商。在评估版上,组件会显示一个提示框或水印等指示器。在有许可证的计算机上,将创建一个 Licenses.licx 文件 - 其中仅包含程序集的完整名称/标识符。当生成客户端程序集时,必须包括此文件。
- 这种模型是如何工作的?从组件供应商和用户的角度来看。
- .licx 文件用于什么?它应该被检入吗?我们曾遇到过一些问题,例如检入错误/正确的 .licx 文件等
我曾遇到过多个使用许可证方案的第三方 .Net 组件供应商。在评估版上,组件会显示一个提示框或水印等指示器。在有许可证的计算机上,将创建一个 Licenses.licx 文件 - 其中仅包含程序集的完整名称/标识符。当生成客户端程序集时,必须包括此文件。
那不正确。Licx文件非常重要,对于主机应用程序嵌入正确的许可信息构建是必需的。因此,将Licx文件包含在源代码控制中也是至关重要的。否则,检出源代码到另一台机器上的人将无法获得Licx文件,构建可能会失败或者.exe中使用的组件没有正确的许可信息。
这是一篇关于该主题的好文章:点击这里
为了部署一个带有类似TX Text Control这样的许可组件的应用程序,必须正确地对EXE文件进行许可。
.NET许可机制建议将许可证添加到EXE - 调用程序集中。
---- 详细发生了什么?
如果你从Visual Studio工具箱中拖放TextControl到一个表单上,Visual Studio会创建一个licenses.licx文件并包含许可信息。此文件位于与您的项目文件相同的文件夹中。
重要提示: licenses.licx文件不包含许可字符串本身。它只包含有关已许可组件的信息。对于TX Text Control(TXTextControl.TextControl),添加以下字符串:
TXTextControl.TextControl, TXTextControl, Version=15.0.700.500, Culture=neutral, PublicKeyToken=6b83fe9a75cfb638
正如您所看到的,它包含命名空间和控件名称、程序集版本、文化信息以及唯一的公钥标记。基于这些信息,许可证编译器(lc.exe)将编译真实的许可证字符串,该字符串将嵌入到可执行程序集中。lc.exe是.NET Framework SDK的一个小型实用程序,在构建过程中被Visual Studio使用。
---- 如果我在用户控件中使用TX Text Control怎么办?
在这种情况下,您还需要将许可证添加到主要可执行文件中。因此,您可以简单地将TextControl拖放到主项目的虚拟窗体中,以便自动添加licenses.licx文件和引用。
之后,您可以将TextControl从该窗体中删除,或者您可以直接复制或创建一个licenses.licx文件到主项目文件夹中。在这种情况下,您还需要手动添加对TX Text Control的引用。