冰蓝科技为每个产品都提供试用版本,每个注册用户都可以在我们网站免费下载并试用产品,试用版对产品功能不做任何限制,不过试用版本将在结果文档中添加一个额外的包含评估信息的工作表(spire.xls)或者一行警告信息。当你购买一项许可证后,你将通过邮件获得一个.xml格式的许可证文件。应用这一文件后,警告信息就会消失。
下面将详细介绍什么是许可文件和怎样应用它。包括以下几点:
- 许可文件介绍
- 如何应用许可文件
- 如何把许可文件作为嵌入资源来应用 (.net)
- 如何在网站应用许可文件 (.net)
- 如何用许可密钥应用许可文件 (.net 和 java)
- 如何同时应用两个或两个以上许可文件 (.net)
许可文件介绍
许可文件是一个xml格式的文件,它包含的信息有:购买者的用户名、邮箱、组织机构,许可证日期,产品名称,产品版本,以及许可的开发者数量和许可的网站数量等。许可文件是数字签名的,所以请不要修改它。
你需要在用e-iceblue产品进行各种操作之前应用许可证,但是在一个应用程序或进程中只需要应用一次。
如何应用许可文件
使用e-iceblue产品进行任何操作都将引导许可证模块检测许可证是否已经加载,如果没有加载,许可证模块将会尝试加载。许可证可以从文件、流或者嵌入的资源显式或隐式地加载,默认是隐式的。
注意:不管隐式调用方式还是显示调用方式,在使用e-iceblue产品之前都必须先应用许可文件。
隐式加载
这种模式下,许可证模块会尝试在以下几个位置查找许可文件:
- 包含运行时入口程序集(命名为.exe的程序集)的文件夹
- 调用e-iceblue产品程序集的嵌入资源
- 包含被运行时程序集引用的e-iceblue产品程序集(例如spire.doc.dll, spire.xls.dll)的文件夹
- 包含在运行时调用e-iceblue产品的程序集的文件夹
当你从e-iceblue这取得许可证时,默认名称是license.elic.xml.。你可以把它放在上面提及的任何位置。许可证模块会从你的应用里面自动加载它。你也可以修改许可文件的名称,如果这样做的话,在你用e-iceblue产品进行任何操作之前,必须告知许可证模块新的文件名称。比如:
//告知许可证模块你-的许可证名称。
spire.license.licenseprovider.setlicensefilename("your-license-file-name");
//告知许可证模块你-的许可证名称。
spire.license.licenseprovider.setlicensefilename("your-license-file-name");
注意:spire.license.licenseprovide类 是在spire.license.dll里面定义的,spire.license.dll安装在与spire.doc.dll/spire.xls.dll相同的路径下。如果你的代码里要使用spire.license.licenseprovider这个类,必须引用spire.license.dll到你的项目里面。
可以通过许可证模块来查找来获取许可证名称,比如:
//获取许可证默认名称
string filename = spire.license.licenseprovider.getlicensefilename();
//获取许可证默认名称
dim filename as string = spire.license.licenseprovider.getlicensefilename()
显式加载
这个模式下,许可证模块试图将从你提供的特定文件或者流来加载许可证。
通过全路径名显式的指定许可证文件。
//指定许可证文件的全路径名
spire.license.licenseprovider.setlicensefilefullpath(@"d:\myapp\license.lic.xml");
//指定许可证文件的全路径名
spire.license.licenseprovider.setlicensefilefullpath("d:\myapp\license.lic.xml")
通过fileinfo对象显式指定许可证文件
//通过fileinfo对象指定许可证文件
fileinfo licensefile = new fileinfo(@"d:\myapp\license.lic.xml");
spire.license.licenseprovider.setlicensefile(licensefile);
//通过fileinfo对象指定许可证文件
dim licensefile as new fileinfo("d:\myapp\license.lic.xml")
spire.license.licenseprovider.setlicensefile(licensefile)
提供许可证数据流
//通过许可证数据流指定许可证
stream stream = file.openread(@"d:\myapp\license.lic.xml");
spire.license.licenseprovider.setlicensefilestream(stream);
//通过许可证数据流指定许可证
dim stream as stream = file.openread("d:\myapp\license.lic.xml")
spire.license.licenseprovider.setlicensefilestream(stream)
参照:怎样通过许可证密钥应用许可证
如何把许可文件作为嵌入资源来应用
把许可证文件以嵌入的资源方式包含到调用e-iceblue产品程序集中是很好的方式,它会让你的发布和部署更简单。你再也不用担心许可证会丢失。在visual studio中通过以下几个步骤来包含许可文件作为嵌入的资源:
- 在人生就是博尊龙凯时的解决方案管理器中,右键点击你的工程,然后点击添加|添加现有项目菜单。
- 在打开文件浏览对话框中找到你的许可证文件,然后点击添加按钮把它添加到你的工程。
- 在人生就是博尊龙凯时的解决方案管理器中选中许可证文件,并在属性窗口设置创建方式为嵌入资源。
- 如果你的许可证文件不是默认名称license.elic.xml,在你的代码里面调用spire.license.licenseprovider.setlicensefilename方法将真实的名称告知许可证模块。
另请参照:怎样通过许可证密钥应用许可证
如何在网站应用许可文件
如果你想在网站上应用许可证文件,你只需要把许可证文件复制到包含网站引用程序集的bin文件夹里。
另请参照:怎样通过许可证密钥应用许可证
如何用许可密钥应用许可文件
有时,你的应用程序因为缺少权限或其他原因无法读取许可文件,在这种情况下,你可以调用spire.license.licenseprovider.setlicensekey(string key)方法来应用许可证。key参数是xml许可文件的元素key属性的值。为了确保在使用我们产品进行任何操作之前能成功应用许可证,我们建议在入口方法的第一行调用这个方法。
//注册许可证密钥
spire.license.licenseprovider.setlicensekey("your license key");
//注册许可证密钥
spire.license.licenseprovider.setlicensekey("your license key")
//注册许可证密钥
com.spire.license.licenseprovider.setlicensekey("your license key");
- 如果是winform应用程序或者是console应用程序,上面的代码应该添加到main方法里面。
- 如果是web应用程序,需要先添加global.asax到你的项目然后添加以上方法代码到application_start方法里。
- 如果是sliverlight应用程序,添加以上方法代码到app.application_startup方法。我们假设app类是sliverlightappentry。
如何同时应用两个或两个以上许可文件
有时,你需要在应用程序中应用2个或者多个许可证,在这种情况下,有两种方法可以实现。
如果你要通过许可证密钥的方式应用两个或两个以上的许可证,你可以在你整个方法的起始位置调用以下方法。
spire.license.licenseprovider.setlicensekey("license key of license1");
spire.license.licenseprovider.loadlicense();
spire.license.licenseprovider.setlicensekey("license key of license2");
spire.license.licenseprovider.loadlicense();
如果你是通过许可证文件来应用许可证,你可以调用下面的方法:
spire.license.licenseprovider.setlicensefilename("license1.elic.xml");
spire.license.licenseprovider.loadlicense();
spire.license.licenseprovider.setlicensefilename("license2.elic.xml");
spire.license.licenseprovider.loadlicense();
注意:spire.license.licenseprovide 是定义在spire.license.dll里面的。spire.license.dll的安装路径与spire.doc.dll和spire.xls.dll相同。如果你的代码里要使用spire.license.licenseprovider这个类,你必须引用spire.license.dll到你的项目里面。