2015-09-04 230 views
4

我使用Vs2013。我创建了一个应用程序,使用Excel文件作为输入并从文件中获取联系人。 一切都在我的电脑上工作。我有Vs2013。 Windows 8.1中,微软Office 2007 & 2013年
当我运行我在任何其他计算机应用程序,它会抛出无法加载文件或程序集'Office,版本= 15.0.0.0'

无法加载文件或程序集“办公室,版本= 15.0.0.0,文化=中立,公钥= 71e9bc111e9429c'或它的一个依赖关系。该系统找不到指定的文件

按我的应用需求,我需要使用Excel文件从Office 2007到2013年

我刚才提到几个StackOverflow上的联系,但我没有得到结果。我被卡住了。请告诉我如何解决这个问题。

+1

如果您想支持2007,则您的目标是错误版本的Office。至少没有针对.NET 4.0也是一个错误,嵌入互操作类型功能非常可取。 Anyhoo,您现在要做的方式是,您必须在您的机器和目标机器上安装Office 2007主互操作程序集。 –

+0

你操纵你的excel文件还是只读取数据? –

+0

如果我更改Excel 12.0.0.0,它是否适用于所有Ms office 2007到2013版本? –

回答

3

您的其他机器需要安装Office。这几乎肯定意味着您正在使用MSOffice互操作库,只有在安装Office时才能使用。

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

+0

我已经在2台电脑上试过了。它在Ms office 2013的计算机上工作正常。但它不适用于具有Ms office 2007的其他计算机。由于应用程序处于边缘,我无法更改机制。我必须找到解决办法。在这种情况下你能请教我吗? @Dan Field –

+0

对,它需要office 2013.如果你想要它与Office 2007兼容,你必须确保针对这些库(nto版本15.0.0.0) –

+1

谢谢。我已经将版本更改为12.0.0.0,现在工作正常。 –

5

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

0

我创建了一个批处理文件来解决这个问题。请参阅下面的脚本:

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 
+0

请提供您的解决方案的解释。我们不是代码编写服务,请分享您的知识并描述您是如何创建该解决方案的。非常感谢你。 – creyD

相关问题