无法加载文件或程序集'Microsoft.Office.Interop.Word,Version = 12.0.0.0,Culture = neutral,PublicKeyToken = 71e9bce111e9429c'

时间:2014-01-01 08:35:30

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

我正在尝试将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:主互操作程序集可再发行组件”,但是当我按照我的步骤将它转换为“Version = 12.0.0.0”到“Version = 14.0.0.0”时之前已经告诉过你“点击添加参考 - &gt;点击COM ........”

4 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

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

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

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

默认情况下,应用程序会先将DLL找到GAC,然后再找到本地路径。还有其他原因,比如版本不同,在这种情况下你也会得到类似的错误。

答案 2 :(得分:0)

你错过了dell版本。

请下载正确的dll版本。

答案 3 :(得分:0)

在C#Projects中使用Word的正确程序是:

  1. 添加对Word Interop Library(程序集)的引用
  2. using部分
  3. 中添加Excel
  4. 现在在编码中使用它。
  5. 如果您的PC中安装了Office(Word),则第一步将起作用。如果没有那么安装。然后添加对所需版本的Microsoft.Office.Interop.Word的引用。

    一个。如果列表没有显示所需的版本,那么您可能有另一个Office安装Word的愿景。通过The Way,你可以使用任何。

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

    ℃。如果您在参考文献中已经使用黄色三角形标记Microsoft.Office.Interop...,请先将其删除。

    之后第二步将完全奏效:using Word=Microsoft.Office.Interop.Word;

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