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

Could not load file or assembly 'Microsoft.Office.Interop.Excel, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c'

我正在尝试在 Windows Server 2008 R2 的 IIS 上发布网站。我的网站具有下载 excel 文件以应用一些编辑然后再次上传的功能。 访问要下载的 excel 文件时出现此错误:"Could not load file or assembly 'Microsoft.Office.Interop.Excel, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' or one of its dependencies. The system cannot find the file specified."

获取文件的代码:

clsExcel = new ApplicationClass();
    clsExcel.Visible = false;
    clsWorkbook = clsExcel.Workbooks.Open(Server.MapPath("/file path ... "), 2, false, 5, "", "", true, XlPlatform.xlWindows, "", false, true, 0, false, true, XlCorruptLoad.xlNormalLoad);
    // get worksheet 4 ...
    clsWorksheet = (Worksheet)clsWorkbook.Worksheets[4];
    clsWorksheet.get_Range("A2", "D1000").EntireRow.Delete();
     clsWorkbook.Save();
        clsWorkbook.Close(false, "", false);
        // release...
        clsExcel.Quit();

我确定我的代码很好,因为我在我的个人电脑上 运行 它有 Windows 10 OS 和 Office 2013,它运行完美。 我想我错过了服务器上必须存在的一些配置或文件。

经过几天的搜索,我找到了很多解决方案,但它们对我不起作用,例如: - 安装 Office 2010 - 在 DCOM 配置中自定义 Microsoft Excel 应用程序以允许访问 IIS_User 和网络服务 - 添加 Microsoft.Office.Interop.Excel 作为参考 - 从 web.config

评论流水线

我该怎么办?

提前致谢

如果您不打算在您的网络服务器上安装 Office 2013,那么您将需要在发布您的网站时复制这些库。在您的 Visual Studio 项目中,您需要将 Interop 程序集的 Copy Local 设置为 True。这样,当您发布网站时,引用的库将与您的网站一起复制,并从复制的文件中引用。

您可能需要检查的其他事项是您的应用程序池中的启用 32 位应用程序设置为 True。

我发现的另一种方法在尝试后解决了:

  1. 在本地 PC 上安装 Office 2010。
  2. 添加对您的项目的引用 来自 visual studio > COM > Microsoft office 14.0 Object Libaray。
  3. 建立并发布网站。
  4. 将旧的已发布文件夹替换为
    新的。
  5. 确保你的服务器有相同的office版本 您在本地 PC 上安装的“2010”。
  6. 终于成功了

1: 在客户端机器上安装 Microsoft Office 2:检查 Microsoft.Interop.Office.Excel 是否存在您的 bin 目录中的错误版本。