У меня есть веб-приложение MVC 5, которое я предпочел бы сэкономить время при запуске, предварительно скомпилировав его при публикации. Однако, когда я выбираю «Предварительно скомпилировать во время публикации», я получаю следующую ошибку:
Error 5082 Could not load file or assembly 'DotNetOpenAuth.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=2780ccd10d57b246'
or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040).
error ASPRUNTIME 0 0 USIS
В Web.Config есть перенаправление привязки для этой ссылки.
<dependentAssembly>
<assemblyIdentity name="DotNetOpenAuth.Core" publicKeyToken="2780CCD10D57B246" culture="neutral" />
<bindingRedirect oldVersion="1.0.0.0-4.1.0.0" newVersion="4.1.0.0" />
</dependentAssembly>
Это строится и развертывается нормально, если у меня не отмечен этот параметр предварительной компиляции, и Интернет работает нормально без проблем. Я просто не могу публиковать с включенной опцией предварительной компиляции.
Мне бы очень хотелось, чтобы веб-сайт компилировал все представления и т. Д. Только при публикации и никогда не перекомпилировал на рабочем сайте. Некоторая документация, которую я просматривал, предполагала, что это было предложение этих функций ... но мне не повезло.
EDIT: я добился некоторого успеха. Я понял, что намеренно не развертывал файл Web.Config, чтобы разработчик случайно не повредил конфигурацию производственной среды, но оказалось, что сборка перед компиляцией копировала файлы во временное расположение, и без файла Web.Config. развернут, там не было файла Web.Config, что означает отсутствие переводов зависимостей.
Итак, теперь похоже, что мне придется развернуть Web.Config, если я хочу предварительно скомпилировать (я установил его действие сборки с «Содержание» на «Нет», и теперь я снова установил его .) Это означает, что мне нужно будет изучить преобразования Web.Config и т. д.
Спасибо, Грег