无法加载文件或程序集’Office,Version = 15.0.0.0′

我用的是Vs2013。 我创建了应用程序,其中我使用Excel文件作为输入并从文件中获取联系人。 一切都在我的电脑里工作。 我有Vs2013。 Windows 8.1,Ms office 2007和2013。
当我在任何其他计算机上运行我的应用程序时,它会抛出

无法加载文件或程序集’office,Version = 15.0.0.0,Culture = neutral,PublicKeyToken = 71e9bc111e9429c’或其依赖项之一。 该系统找不到指定的文件

根据我的应用程序要求,我需要使用Office 2007到2013的Excel文件。

我已经提到了几个StackOverflow链接,但我没有得到结果。 我被卡住了。 请建议我如何解决这个问题。

您的其他计算机需要安装相应版本的Office。 15.0.0.0应对应于Office 2013 – 需要在目标计算机上安装(其他版本的Office可能无法运行)。 这几乎可以肯定意味着您正在使用MSOffice互操作库,这些库仅在安装了Office且适用于相同版本时才有效。

或者,您可以重构代码以直接读取Excel XML。

我通过更改Excel.dll版本获得了解决方案。 我使用的是15.0.0.0,现在我将其更改为12.0.0.0并且工作正常。 我从Add reference > Browse > C: > Windows > assembly > GAC > Microsoft.Office.Interop.Excel > 12.0.0.0_etc > Microsoft.Office.Interop.Excel.dll

我创建了一个批处理文件来解决此问题。 见下面的脚本:

  echo off cls color 1f echo Checking for Administrator elevation. openfiles>nul 2>&1 if %errorlevel% EQU 0 goto isadmin COLOR 4f echo. You are not running as Administrator. echo. This tool cannot do it's job without elevation. echo. echo. You need run this tool as Administrator. echo. echo.Press any key to continue . . . pause>nul exit :isadmin if exist c:\windows\assembly\GAC_MSIL\office\16.0.0.0__71e9bce111e9429c\OFFICE.DLL set officever=16 if exist c:\windows\assembly\GAC_MSIL\office\15.0.0.0__71e9bce111e9429c\OFFICE.DLL set officever=15 if exist c:\windows\assembly\GAC_MSIL\office\14.0.0.0__71e9bce111e9429c\OFFICE.DLL set officever=14 md c:\windows\assembly\GAC_MSIL\office\12.0.0.0__71e9bce111e9429c xcopy c:\windows\assembly\GAC_MSIL\office\%officever%.0.0.0__71e9bce111e9429c c:\windows\assembly\GAC_MSIL\office\12.0.0.0__71e9bce111e9429c /s/y pause