2

我将创建一个LicFileLicenseProvider基于许可证提供程序。我已经阅读了许多关于此内容的文章、问题和答案。最后,我创建了我的许可证提供程序,MyLicFileLicenseProvider它有两种模式,RunTime 和 DesignTime。我将只为设计时设置许可证。我做到了,而且效果也很好。因此,许可证将(并且应该)仅在“licenses.licx”文件存在的编译期间使用。

A. 正常情况

1)创建一个类:

[LicenseProvider(typeof(MyLicFileLicenseProvider))]

public class XXXObject

{

        private License license = null;
        /// <summary>
        /// Creates an instance of the XXXObject object.
        /// </summary>
        public XXXObject()
        {
            try
            {
                license = LicenseManager.Validate(typeof(XXXObject), this);
            }
            catch (Exception ex)
            {
                throw new SecurityException("Invalid license!");
            }               
        }
}

2)然后,创建licenses.licx文件,内容对象全名、命名空间、版本、文化、PublicKeyToken

3) 创建许可证文件,XXX.XXXObject.lic 文件。

现在,我已经创建了所有必要的东西并编译了项目。它已编译并且运行良好。

B. 正常情况。我的问题是,正如我在上面提到的,我已经用属性修饰了 XXXObject 类[LicenseProvider(typeof(MyLicFileLicenseProvider))]。然后,我从项目中排除 licenses.licx 文件。然后,编译项目。但是,它仍在编译中。这是没有意义的,因为我用 [LicenseProvider(typeof(MyLicFileLicenseProvider))] 装饰了这个类,它应该在寻找 licenses.licx,但它没有并且没有错误地编译?

4

0 回答 0