2016-11-22 113 views
0

LicenseKey.LoadLicenseFile不适用于SharePoint项目。IText7许可证不适用于SharePoint

当我创建一个控制台工具并手动添加itext.licesekey.dll时,将生成没有许可证的pdf文件。但如果我通过PM命令Install-Package itext7.licensekey添加它,它可以正常工作。

你知道为什么会发生这种情况吗?

由于提前, 全胜

回答

3

有2个可能的原因发生这种情况:

  1. 您正在使用的许可证密钥库的错误版本,用于检查许可证文件。 对于iText 5,该库被称为itextsharp.licensekey.dll并具有iTextSharp的根名称空间。另一方面,对于iText 7,它被称为itext.licensekey.dll并具有根名称空间itext。 与PM command Install-Package itext7.licensekey一起安装的https://www.nuget.org/packages/itext7.licensekey的NuGet包是iText 7许可证的正确许可证密钥库。

  2. 你手动添加许可证密钥库正确的,但你没有以正确的方式添加它,以便您的项目知道在哪里可以找到它。这就是NuGet Package Manager的便利性:它确保您的库以正确的方式添加。我从来没有用过自己的.NET,所以我不能深入细节,但就我的理解而言,就依赖管理而言,NuGet有点像.NET世界的Maven。

顺便说一句,因为你是一个iText的客户提供一个有效的许可证密钥,你可能也有一个支持合同,你应该询问在iText的JIRA许可证的问题。我无法根据您的姓名找到您的登录名,每个客户最多可以注册3个有资格获得支持的联系人。请咨询贵公司购买iText许可证的人员。

或者您正在使用时间限制试用许可证,在这种情况下,您也可以联系iText Sales了解有关许可证的问题。

+0

你好阿梅代范Gasse, 我想通了,如果我加载DLL (itext.licensekey.dll),它不起作用。 你知道GAC和本地的负载有什么不同吗? 我部署了正确的dll(itext.licensekey.dll)到gac 谢谢,Toan –

+0

请打开支持票。 –

0

我已反编译iText的DLL和在iText.Kernel.Version类弄清楚,方法的GetInstance:

string str = "iText.License.LicenseKey, itext.licensekey"; 
string str1 = "GetLicenseeInfo"; 
Type type = Type.GetType(str); 
if (type == null) 
{ 
    Version.version.AddAGPLPostfix(null); 
} 

变量类型为空。 请检查here更多信息,如何从GAC 获得DLL中的解决方案看起来应该 我想正确的字符串应该是这样的

string str = "iText.License.LicenseKey, itext.licensekey, Version=2.0.2.0, Culture=neutral, PublicKeyToken=8354ae6d2174ddca"; 
+0

无需反编译,您可以在https://github.com/itext/itext7-dotnet/blob/develop/itext/itext.kernel/itext/kernel/Version.cs找到源代码。 –