Обновление DLL в Производстве папка мусорного ведра веб-сайта ASP.NET

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

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

Вот вопрос: Как я могу обновить DLL на производственном веб-сайте, не повреждая приложение и не повторно развертывая все файлы?

12
задан starblue 31 March 2010 в 17:28
поделиться

3 ответа

Следует помнить, что существуют веб-сайты и веб-приложения, если рассматривать Visual Studio и ASPNET.

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

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

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

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

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

9
ответ дан 2 December 2019 в 22:22
поделиться

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

0
ответ дан 2 December 2019 в 22:22
поделиться

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

1
ответ дан 2 December 2019 в 22:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: