最近因为需要测试LC,所以研究了一下Windows类和一般控件的Licensing。网上有一篇很好的入门文章: http://windowsclient.net/articles/Licensing.aspx ,我这篇主要知识都来自它,这里只是简要记录一下免得以后忘掉。
就以类的Licensing来说,关键点在于文章所说
- The LicenseProviderAttribute
- The private license field
- The line in the constructor that fills the license
- Disposing the license in Dispose
.NET 提供一个基本的验证方式LicFileLicenseProvider,基于LIC文件的验证,当调用控件时执行到Validate时,这个验证者寻找以该类全称为文件名的.LIC文件,这里的例子是Licensing.LicensedClass.LIC,并验证该文件内容是类似
Licensing. LicensedClass is a licensed component. 的格式。
所以这里LIC相当于使用该控件的key。
在调用者项目里需要LC.exe编译.licenses文件时,除了被调用的dll还需要.LIC文件放在同一目录下,并且需要一个.licx文件用于指定需要编译的license key, 内容格式是
<Namespace>.<Class name>,<Assembly name without file extension>
编译过的licenses文件嵌入目标assemly之后就不再需要文本的.LIC。