无法加载文件或程序集“itextsharp”或其依赖项之一

问题描述 投票:0回答:7

尝试按照 RazorPDF 的 this 教程进行操作,但我不知道为什么会收到以下错误消息:非常沮丧和疲倦。

错误信息:

无法加载文件或程序集“itextsharp”或其之一 依赖关系。找到的程序集的清单定义不 匹配装配参考。 (HRESULT 异常:0x80131040)

itextsharp:

运行时版本:v1.1.4322 版本:4.1.2.0

剃刀PDF:

运行时版本:4.0.30319

控制器内部:

   public ActionResult Index()
    {
        var studentMarks = new List<MarksCard>()
        {
           new MarksCard()
            {
                RollNo = 101, Subject = "C#",
                FullMarks = 100, Obtained = 90},new MarksCard() {RollNo = 101, Subject = "asp.net", FullMarks = 100, Obtained = 80},new MarksCard() {RollNo =               101, Subject = "MVC", FullMarks = 100,
                Obtained = 100},new MarksCard() {RollNo = 101, Subject = "SQL Server", FullMarks = 100, Obtained = 75},
        };
       //// return new RazorPDF.PdfResult(studentMarks, "Index");
        return View(studentMarks);

    }

内部视图

@model IEnumerable<TimberBeamCalculator.Models.MarksCard>

@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>

<p>
    @Html.ActionLink("Create New", "Create")
</p>
<table>
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.RollNo)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Subject)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.FullMarks)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Obtained)
        </th>
        <th></th>
    </tr>

@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.RollNo)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Subject)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.FullMarks)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Obtained)
        </td>
        <td>
            @Html.ActionLink("Edit", "Edit", new { /* id=item.PrimaryKey */ }) |
            @Html.ActionLink("Details", "Details", new { /* id=item.PrimaryKey */ }) |
            @Html.ActionLink("Delete", "Delete", new { /* id=item.PrimaryKey */ })
        </td>
    </tr>
}

</table>
c# asp.net-mvc itext razorpdf
7个回答
2
投票

检查以确保 iTextSharp 确实进入了正确的位置。我猜你错过了一些东西。

我强烈建议您首先遵循初始项目示例并尝试让它们首先工作。


2
投票

仅当您在 Visual Studio 中按 F5 进行调试时才会出现此问题。如果您不进行调试,请始终按 Ctrl+F5。该问题主要是由于项目文件中的某些配置设置错误造成的。要修复它:

  1. dll
    中删除
    Add Reference

  2. 获取

    dll
    的全新副本。

  3. 添加此

    dll
    的参考。

这应该可以解决它。


0
投票

我对 itextsharp 和 itextsharp.xmlworker dll 有问题,因此我从引用中删除了这两个 dll,并直接从 nuget 包下载了新的 dll,这解决了我的问题。

也许此方法对其他人解决问题很有用。


0
投票

我在 Visual Studio 中进行 Web 开发时遇到了同样的错误。解决方案是从 Nuget Package Manager 安装 itextSharp


0
投票

将引用路径添加到使用 itextsharp 或引用的 dll 的 .csproj

<Reference Include="iTextSharp, Version=4.1.6.0, Culture=neutral, PublicKeyToken=8354ae6d2174ddca">
  <HintPath>..packages\iTextSharp-LGPL.4.1.6\lib\iTextSharp.dll</HintPath>
</Reference>

0
投票

首先,导航到 bin 文件夹或项目中参考文件所在的文件夹。验证现有项目的版本(假设您的本地主机进程正常运行,而托管进程遇到问题)。或者,检查工作 DLL 版本是否与错误消息中提到的版本匹配。右键单击工作项目的 DLL 文件,然后从弹出菜单中选择“详细信息”。确认它是否是所需的 DLL,或者下载正确的版本并将其移动到参考文件夹,例如“bin”。 sample popup menu


-1
投票

然后针对 iTextSharp 的最新 LGPL 源代码进行编译。这样您也可以更改正在使用的目标框架版本。

附注

RazorPdf
使用 iTextSharp 的
HTMLWorker
。它已被弃用并且不再受支持。它的 HTML 到 PDF 功能非常有限。他们最近已将其替换为
XMLWorker
http://sourceforge.net/projects/itextsharp/files/xmlworker/

© www.soinside.com 2019 - 2024. All rights reserved.