【问题标题】:Could not load file or assembly 'Microsoft.Office.Interop.Word, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c'无法加载文件或程序集“Microsoft.Office.Interop.Word,版本=12.0.0.0,文化=中性,PublicKeyToken=71e9bce111e9429c”
【发布时间】:2014-01-18 22:52:52
【问题描述】:

我正在尝试将 docx 文件转换为 pdf,并且我已成功在本地电脑上转换 pdf。

我在visual studio 2010 中遵循的步骤是

click on Add reference --> Click to COM -->select "Microsoft Word 12.0 Object Library" and cliked ok

我的网络配置被修改并添加了程序集

<add assembly="Microsoft.Office.Interop.Word, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71E9BCE111E9429C"/>

我将 doc 转换为 pdf 的 .cs 代码是

using Microsoft.Office.Interop.Word;//Name Space


protected void Page_Load(object sender, EventArgs e)//Coading on page load
{

    Microsoft.Office.Interop.Word.Application appWord = new Microsoft.Office.Interop.Word.Application();
    wordDocument = appWord.Documents.Open(Server.MapPath("~/convert/goodquest.docx"));
    wordDocument.ExportAsFixedFormat(Server.MapPath("~/convert/goodquest.pdf"), WdExportFormat.wdExportFormatPDF);
}

public Microsoft.Office.Interop.Word.Document wordDocument { get; set; }

所有works fine in local,但是当我upload 时,web 上的所有这些都发生了变化。

错误如

Could not load file or assembly 'Microsoft.Office.Interop.Word, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' or one of its dependencies. The system cannot find the file specified.

出现了。 我该如何解决这个问题

我还尝试从链接Here 下载“Microsoft Office 2010:Primary Interop Assemblies Redistributable”,但是当我按照我告诉的步骤操作时,它会将我的“Version=12.0.0.0”转换为“Version=14.0.0.0”之前你大概是“点击添加引用-->点击COM........”

【问题讨论】:

  • 我已经更新了我的答案,现在请看那里
  • 我已经添加了我从microsoft.com/en-in/download/confirmation.aspx?id=3508 获得的 Microsoft.Office.Interop.Word.dll intp bin 文件夹,现在出现诸如“无法加载文件或程序集'Microsoft.Office.Interop。 Word,Version=14.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c'" 即将推出
  • 您错过了正确的版本,请检查
  • 我假设您了解您需要在服务器上安装 Office(并获得适当许可)。请注意,不支持在 ASP.Net 服务器中运行 Office 应用程序-support.microsoft.com/kb/257757。
  • 从 ASP.NET 或其他服务器技术使用 Office 互操作是一个可怕的想法。这些 API 是为在桌面应用程序中使用而编写的,用于自动化 Office(一套桌面应用程序)。服务器应用程序在许多方面都不同,这使得在其中使用 Office Interop 是一个非常非常糟糕的主意。它也不受 Microsoft 支持,并且可能违反您的 Office 许可证。见Considerations for server-side Automation of Office

标签: c# asp.net .net pdf office-interop


【解决方案1】:

在 C# 项目中使用 Word 的正确步骤是:

  1. 添加对 Word 互操作库(程序集)的引用
  2. 在using部分添加Excel
  3. 现在在您的编码中使用它。


如果您的 PC 中安装了 Office(Word),则第一步将起作用。如果没有,则安装。然后添加您需要的版本的Microsoft.Office.Interop.Word 的引用。

一个。如果列表未显示所需版本,那么您可能对安装了 Word 的 Office 有另一种看法。顺便说一句,你可以使用任何。

b.如果您没有找到类似Microsoft.Office.Interop 的内容,则可能是未安装 Office,或者您拥有 Office 2013 或更高版本。对于更高版本,您可以通过进入添加引用窗口的 COM 选项卡并添加 Microsoft Word {version-no} Object Library 来添加程序集。这将添加相同的内容。

c。如果您在参考文献中已经有 Microsoft.Office.Interop... 并带有黄色三角形标记,那么请先将其删除。



第二步之后将完全起作用:using Word=Microsoft.Office.Interop.Word;



最后作为第三步,您可以通过Word.Application wApp = new Word.Application(); 创建 Word 对象。

【讨论】:

    【解决方案2】:

    您错过了戴尔版本。

    请下载正确版本的 dll。

    【讨论】:

    【解决方案3】:

    将Microsoft.Office.Interop.Word.dll复制粘贴到服务器的bin文件夹中。

    可能会添加到这个路径

    %ProgramFiles%\Microsoft Visual Studio 12.0\Visual Studio Tools for Office\PIA\ 但我不知道它是否正确:更多详细信息请参阅此MSDN 链接

    否则,你可以下载这个dll:https://stackoverflow.com/a/6309218/2218635

    【讨论】:

    • 我应该从哪里得到?可以给我链接吗?
    • 我已经添加了我从microsoft.com/en-in/download/confirmation.aspx?id=3508 获得的 Microsoft.Office.Interop.Word.dll intp bin 文件夹,现在出现诸如“无法加载文件或程序集'Microsoft.Office.Interop。 Word、Version=14.0.0.0、Culture=neutral、PublicKeyToken=71e9bce111e9429c'" 即将推出
    • 我已安装 2007 Microsoft Office System Update,我的版本已更改为 14.0 版
    • @RonakBhatt 您能否提供正确的 12.0 版本链接,因为我也没有获得该链接。我下载了同样的问题,并将它们转换为 14.0
    • @RameshRajendran 您能否提供正确的 12.0 版本链接,因为我也没有获得该链接。我下载了同样的问题,并将它们转换为 14.0
    【解决方案4】:

    您是否已将 DLL (Microsoft.Office.Interop.Word) 复制到可执行路径?

    您必须将此 DLL 复制到本地路径,否则 Microsoft Office 必须安装在此服务器上。

    查看错误,似乎应用程序无法在指定路径中找到文件。

    默认情况下,应用程序会首先将 DLL 查找到 GAC 中,否则将查找到本地路径。可能有其他原因,例如版本不同,在这种情况下也会出现类似的错误。

    【讨论】:

    • 我已安装 2007 Microsoft Office System Update,我的版本已更改为 14.0 版
    • 好的,所以在这种情况下,您应该拥有与本地计算机完全相同的 DLL 版本才能使其工作。请安装相同的 Office 版本,或者您可以将相同的 DLL 保留在本地路径并从 GAC 中删除 DLL,如果有的话,这也应该有效。
    • @Nil23 你能提供一个正确的 12.0 版本链接吗,因为我也没有得到那个链接。我已经下载了同样的问题,并将它们转换为 14.0
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-07
    • 1970-01-01
    相关资源
    最近更新 更多