问题
I use Vs2013. I have created application in which I use Excel file as an input and get contact from the file.
Everything is working in my computer. I have Vs2013. Windows 8.1, Ms office 2007 & 2013.
When I run my application in any other computer, it throws
Could not load file or assembly 'office, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bc111e9429c' or one of its dependencies. The system cannot find the file specified
As per my application requirement, I need to use Excel file from Office 2007 to 2013.
I have referred few StackOverflow links but I am not getting result. I am stuck. Please suggest me how to solve this.
回答1:
Your other machine needs to have the corresponding version of Office installed. 15.0.0.0 should correspond to Office 2013 - that needs to be installed on your target machine (other versions of Office may not work). This almost certainly means you're using MSOffice interop libraries, which only work if office is installed and against the same version.
Alternatively, you could refactor your code to just directly read the Excel XML.
回答2:
I got solution by changing Excel.dll version. I was using 15.0.0.0 and now I changed it to 12.0.0.0 and its working fine.
I got dll from Add reference > Browse > C: > Windows > assembly > GAC > Microsoft.Office.Interop.Excel > 12.0.0.0_etc > Microsoft.Office.Interop.Excel.dll
回答3:
I created a batch file to fix this issue. See script below:
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
来源:https://stackoverflow.com/questions/32399420/could-not-load-file-or-assembly-office-version-15-0-0-0