Не удалось загрузить файл или сборку Autofac - PullRequest
0 голосов
/ 07 декабря 2018

У меня есть программа CLI, которая каждую ночь выполняет разные задачи в базе данных.При попытке запустить программу вручную я получаю следующее сообщение об ошибке.Код даже не попал в Program.cs, поскольку при этом некоторые сообщения выводились бы на консоль.

Не удалось загрузить файл или сборку 'Autofac, версия = 4.0.0.0, Culture = нейтральный, PublicKeyToken =17863af14b0044da 'или одной из его зависимостей.Определение манифеста обнаруженной сборки не соответствует ссылке на сборку.(Исключение из HRESULT: 0x80131040)

Однако при отладке с помощью Visual Studio в локальной базе данных проблема не возникает, только на наших тестовых серверах и серверах Prod.Нет несоответствия между версиями Autofac (4.8.1) или отсутствующими ссылками в проекте CLI.

Я смотрел на Не удалось загрузить файл или сборку 'Autofac, Версия = 3.0.0.0 но это не было решением.Я пытался очистить и восстановить, но безуспешно.

У нас раньше не было этой проблемы;это произошло после нашего последнего релиза.Однако мы не внесли существенных изменений в работу Autofac, обновление версий и т. П.

1 Ответ

0 голосов
/ 07 декабря 2018

В конце концов, проблема заключается в несоответствии версий.Программа, похоже, не распознает, какую версию запустить, и по умолчанию вернулась к 4.0.0.0, но она должна работать под управлением 4.8.1.0.

App.config не переносится при сборке для выпуска, но естьдругой .config-файл называется так же, как программа (например, CLIProgram.exe.config).App.config содержит следующие строки, которые не переносятся в CLIProgram.exe.config при сборке:

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Autofac" publicKeyToken="17863af14b0044da" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.8.1.0" newVersion="4.8.1.0" />
      </dependentAssembly>
    </assemblyBinding>
</runtime>

Если я добавлю эти строки в CLIProgram.exe.config вручнуюснова работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...