Обновление DLL-файл в веб-сайте ASP.NET папку bin

Я хочу, чтобы обновить библиотеку классов (один DLL файл) в web-приложение. Это веб-приложение предварительно скомпилировано (опубликовано). Я прочитал ответ на StackOverflow (извините ,больше не могу его найти, потому что функция поиска работает не очень хорошо), что заставило меня поверить, что я могу просто вставить новую DLL в папку bin, и она будет подобрана без проблем (это заставит WP перерабатывать, что меня устраивает, потому что мы не используем сеанс InProc государство.)

однако, когда я попробовал это, мой сайт взрывается и дает FileLoadException о том, что определение манифеста сборки не соответствует ссылке на сборку. Что это такое?! Обновление DLL в Visual Studio и повторное развертывание всего сайта работает нормально, но это огромная боль сзади. Какой смысл иметь отдельную DLL, если вам нужно повторно развернуть весь сайт для реализации каких-либо изменений?

вот вопрос: Как я могу обновление библиотеки DLL на рабочем веб-сайте без нарушения приложения и без повторного развертывания всех файлов?

3 ответов


нужно помнить, что есть сайты и web-приложений что касается Visual Studio и ASPNET рассматривается.

веб-сайты обычно имеют все файлы aspx и vb, опубликованные на живом сервере, и рабочий процесс ASPNET перекомпилирует приложение каждый раз перед презентацией.

на другом конце находится веб-приложение, где весь ваш код за файлами компилируется до одного файла DLL, и вы просто развертываете ваши страницы aspx и папка bin с файлом DLL для производства.

существует также "гибрид", известный как"Думаете" (см. ссылку для официального обзора MSDN), где у вас нет единого макета DLL веб-приложения, но вся работа по компиляции веб-сайта выполняется за вас. Существует несколько "режимов" в зависимости от ваших потребностей.

Мне кажется, что ваша ошибка вызвана тем, что ваш сайт настроен как веб-сайт с некоторыми вид предкомпиляция на месте. Использование предварительно скомпилированной модели немного более "строгое", то есть предполагает наличие определенных файлов/подписей. Наличие обновленной версии файла DLL вызывает перерыв, так как предварительная компиляция хочет имя и версию файла.

Если возможно, лучше всего было бы преобразовать в веб-приложение, так как вы можете добавить дополнительные DLL в производство без проблем. В противном случае, взгляните на матрица чтобы увидеть, что форма precompilation вам нужна для вашего применения.


посмотрите на это сообщение SO, может быть, вы имеете в виду. определение манифеста сборки расположены не соответствует ссылке на сборку


взгляните на свою ссылку. Говорит ли он "конкретная версия = true"? Установите значение false, повторно опубликуйте приложение (вам нужно сделать это один раз, потому что теперь ваше приложение все еще ищет сборку с определенным манифестом) и повторите попытку.