2015-09-04 100 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

相關問題