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.
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.
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
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