Как я могу запретить 'Publish Web' перезаписывать файлы конфигурации? - PullRequest
15 голосов
/ 11 мая 2010

Когда я публикую свой веб-сайт Asp.Net MVC на производственном сервере (через VS2008), файлы web.config & castle.xml перезаписываются. Содержимое этих файлов, очевидно, отличается между моей локальной средой разработки и рабочим сервером.

Как предотвратить публикацию этих файлов?

Ответы [ 3 ]

24 голосов
/ 11 мая 2010

В обозревателе решений Visual Studio перейдите в свойства вашего файла web.config. Убедитесь, что «Build Action» имеет значение «None», а «Copy to Output Directory» - «Do not copy».

Если вы захотите обновить его в будущем, вам придется сделать это вручную или изменить «Build Action» обратно на «Content». В следующий раз, когда вы создадите (или опубликуете), он будет перезаписан.

2 голосов
/ 28 декабря 2018

Я решил это, добавив это исключение:

<ExcludeFilesFromDeployment>Web.config</ExcludeFilesFromDeployment>

в файл проекта (.csproj или .vbproj), внутри этих узлов:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">

и

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">

См. Веб-развертывание: исключая файлы и папки из файла проекта веб-приложения .

0 голосов
/ 11 мая 2010

Никогда не публикуйте напрямую из Visual Studio на рабочем сервере!

Публикация на тестовом сервере для проверки QA, а затем копирование из QA в производственную среду (для существующего веб-сайта без изменений iis это просто вопрос копирования файлов).

Где я нахожусь, мы также отдельно держим эти опубликованные файлы под контролем версий, поэтому, когда QA подписывает сборку, процесс развертывания просто извлекает файлы из системы контроля версий на рабочем сервере.

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