web-dev-qa-db-fra.com

Impossible de charger le fichier ou l'assembly 'Office, version = 15.0.0.0'

J'utilise Vs2013. J'ai créé une application dans laquelle j'utilise un fichier Excel comme entrée et obtient un contact à partir du fichier. Tout fonctionne dans mon ordinateur. J'ai Vs2013. Windows 8.1, Ms office 2007 et 2013.
Lorsque j'exécute mon application sur un autre ordinateur, 

Impossible de charger le fichier ou le bureau de l'Assemblée, version = 15.0.0.0, Culture = neutre, PublicKeyToken = 71e9bc111e9429c 'ou l'une de ses dépendances. Le système ne peut pas trouver le fichier spécifié

Selon les exigences de mon application, je dois utiliser un fichier Excel d'Office 2007 à 2013.

J'ai référé quelques liens StackOverflow mais je n'obtiens pas de résultat. Je suis coincé. S'il vous plaît, suggérez-moi comment résoudre ce problème. 

8
NJ Bhanushali

Votre autre ordinateur doit avoir la version correspondante d’Office installée. 15.0.0.0 devrait correspondre à Office 2013 - qui doit être installé sur votre ordinateur cible (les autres versions d'Office risquent de ne pas fonctionner). Cela signifie presque certainement que vous utilisez des bibliothèques d'interopérabilité MSOffice, qui ne fonctionnent que si office est installé et avec la même version.

Alternativement, vous pouvez refactoriser votre code pour lire directement Excel XML.

8
Dan Field

J'ai eu la solution en changeant la version Excel.dll. J'utilisais 15.0.0.0 et maintenant je l'ai changé en 12.0.0.0 et cela fonctionne bien . J'ai dll de Add reference > Browse > C: > Windows > Assembly > GAC > Microsoft.Office.Interop.Excel > 12.0.0.0_etc > Microsoft.Office.Interop.Excel.dll

5
NJ Bhanushali

J'ai créé un fichier de commandes pour résoudre ce problème. Voir le script ci-dessous:

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