我正在尝试iTextSharp中的ASP.NETv5,我有一个带有重写的OnEndPage的PdfPageEventHelper,它的行如下:
_cb.AddTemplate(_template, pageSize.GetLeft(295), pageSize.GetBottom(36));这会引发一个错误:在未引用的程序集中定义“矩阵”类型的。必须添加对程序集'System.Drawing,Version=2.0.0.0,Culture=neutral,Culture=neutral的引用
如何解决这个问题,是否需要在项目中添加一些内容。
编辑继CodingGorilla的回答后,我将自己的web.config更改为:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding>
<dependentAssembly>
<assemblyIdentity name="System.Drawing"
publicKeyToken="b03f5f7f11d50a3a"
culture="en-us" />
<bindingRedirect oldVersion="2.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<system.webServer>
etc...然而,构建仍然失败,并提到了2.0.0.0版本。
发布于 2016-02-25 08:23:39
我也有同样的问题,System.Drawing没有被项目引用,而是将引用添加到4.0.0.0,并且工作正常。
发布于 2016-01-06 12:55:40
因此,我认为问题在于,iTextSharp是用/ for .NET 2.0编写的,因此它正在寻找System.Drawing的2.0版本。我从来没有尝试过在System.Drawing中这样做,但我假设它会同样工作;您想要做的是向web.config添加一个<bindingRedirect>元素。请查看这篇MSDN文章:讨论这一问题的https://msdn.microsoft.com/en-us/library/7wd6ex19(v=vs.110).aspx。
我怀疑iTextSharp是否已经在ASP.NET 5中测试过,因此最终您可能无法使用它,因为它依赖于该框架的旧版本。
发布于 2016-12-29 12:02:35
实际上,你根本不应该需要System.Drawing。在我的一堂课上,我也遇到了同样的问题。如果您要为我应用解决这个问题的方法,您的代码行将如下所示:
_cb.AddTemplate(_template, 1f, 0f, 0f, 1f, pageSize.GetLeft(295), pageSize.GetBottom(36));这不应该改变代码的预期行为,因为您的行无论如何都会有效地调用这一行。
我必须承认,我仍然不完全理解System.Drawing是如何发挥作用的。如果方法调用得到两个浮点数,则不应该解析为System.Drawing.Drawing2D.Matrix版本。包含矩阵的方法签名甚至被标记为过时。
https://stackoverflow.com/questions/34598562
复制相似问题