Не удалось загрузить файл или сборку "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" или одну из ее зависимостей. Система не может найти файл указано

в соответствии с моим требованием к приложению мне нужно использовать файл Excel с Office 2007 по 2013.

Я упомянул несколько ссылок StackOverflow, но я не получаю результат. Я застрял. Пожалуйста, предложите мне, как это решить.

3 ответов


на другой машине должна быть установлена соответствующая версия Office. 15.0.0.0 должен соответствовать Office 2013 - который должен быть установлен на вашем целевом компьютере (другие версии Office могут не работать). Это почти наверняка означает, что вы используете библиотеки взаимодействия MSOffice, которые работают только в том случае, если office установлен и против той же версии.

в качестве альтернативы, вы могли бы реорганизовать код, чтобы просто напрямую читать формат XML.


Я получил решение, изменив 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


Я создал пакетный файл, чтобы исправить эту проблему. См. сценарий ниже:

    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.0.0.0__71e9bce111e9429c\OFFICE.DLL set officever=16
    if exist c:\windows\assembly\GAC_MSIL\office.0.0.0__71e9bce111e9429c\OFFICE.DLL set officever=15
    if exist c:\windows\assembly\GAC_MSIL\office.0.0.0__71e9bce111e9429c\OFFICE.DLL set officever=14

    md c:\windows\assembly\GAC_MSIL\office.0.0.0__71e9bce111e9429c
    xcopy c:\windows\assembly\GAC_MSIL\office\%officever%.0.0.0__71e9bce111e9429c c:\windows\assembly\GAC_MSIL\office.0.0.0__71e9bce111e9429c /s/y
pause