web-dev-qa-db-ja.com

ファイルまたはアセンブリ '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'またはその依存関係の1つを読み込めませんでした。システムは、指定されたファイルを見つけることができません

アプリケーション要件に従って、Office 2007から2013までのExcelファイルを使用する必要があります。

StackOverflowリンクをいくつか紹介しましたが、結果が得られません。ハマった。これを解決する方法を教えてください。

12
NJ Bhanushali

他のマシンには、対応するバージョンのOfficeがインストールされている必要があります。 15.0.0.0はOffice 2013に対応している必要があります-ターゲットマシンにインストールする必要があります(他のバージョンのOfficeは動作しない可能性があります)。これはほぼ確実に、MSOffice相互運用ライブラリを使用していることを意味します。これは、Officeがインストールされており、同じバージョンに対してのみ機能します。

または、Excel XMLを直接読み取るようにコードをリファクタリングすることもできます。

9
Dan Field

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からDLLを取得しました

5
NJ Bhanushali

この問題を修正するためにバッチファイルを作成しました。以下のスクリプトを参照してください。

    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
2
Moses Hull