Я бы предположил, что это «ограничение» является заданным.
1) Как правило, не требуется уничтожать все данные, которые пользователи вводили в среду при изменении кода.
2) Xcopy файлов базы данных не работает, так как файл заблокирован приложениями, использующими его.
Планируете ли вы также публиковать данные?
Если выхочу публиковать только изменения базы данных (обновленные таблицы / данные, а не данные).Сценарии SQL должны быть сгенерированы / запущены для целевой базы данных.
РЕДАКТИРОВАТЬ - Добавить то, что вы можете сделать:
Вы не можете использовать функцию публикации VS.NET.
Если вы хотите отправить данные.Остановите IIS (или самый близкий логический объект IIS - приложение / пул приложений).Скопируйте mdf с целевого на конечный сервер.
Если вы НЕ хотите передавать данные (просто схема).Во время цикла разработки создайте любые сценарии для: добавления данных (то есть поиска данных), таблицы / Sproc / индексов и т. Д. Обновлений.Будьте внимательны, чтобы скрипты были в правильном порядке.
Перед развертыванием.Получите копию базы данных вашей целевой среды.Протестируйте сценарии SQL
Для развертывания: остановите IIS (или самый близкий логический объект IIS - приложение / пул приложений).Продвигайте изменения кода, как если бы вы использовали функцию «Публикация».
Сделайте резервную копию целевой базы данных среды.Подключитесь к базе данных целевой среды и обновите схему, используя сценарии.Перезапустите IIS
Все это можно автоматизировать, если вы готовы потратить время на разработку необходимых сценариев и создание процесса вокруг него.
Как уже упоминалось, веб-развертывание VS.NET 2010 (msdeploy) пытается сделать это намного проще.Я не использовал эти функции сам.
Удачи