Преобразование web.config во время развертывания не создается

Я хочу знать, как выполнить следующие

  • Создайте и упакуйте веб-сайт ASP.NET в файловую систему.
  • Возможность развертывания веб-сайта в одной или нескольких средах. Я хочу, чтобы преобразования конфигурационного файла происходили в точке развертывания, а не в точке построения. Таким образом, мой код не перекомпилируется для каждого развертывания, и не возникает риска внесения новых изменений.

Из моего собственного чтения я не уверен, как это сделать. WebDeploy, кажется, упаковывает, преобразует и развертывает на основе конфигурации, но Im unsure, как эти шаги могут быть разделены, чтобы избежать необходимости перекомпилировать код из исходного элемента управления.

Есть ли у кого-нибудь опыт в решении этой проблемы?

Ответ 1

Вы можете использовать функцию параметризации веб-развертывания a.k.a MSDeploy. Вам нужно будет использовать файл parameters.xml и файл setParameters.xml для динамического изменения настроек, поскольку вы не будете преобразовывать свой пакет во время сборки.

Во время развертывания вы можете передать любой файл .xml, чтобы установить параметры, указанные вами в файле parameters.xml. Так как параметр .xml находится в корне вашего решения проекта (например, см. Ссылку на пример, куда поместить файл), то во время сборки он запекается в ваш веб-пакет. Однако теперь у вас есть возможность изменить эти значения, передав в файле setParms.xml из командной строки во время развертывания. Это отличается от преобразования значений во время сборки на основе настроек конфигурации.

Вот пример командной строки msdeploy для передачи в ParamFile для промежуточной среды.

msdeploy -verb:sync -source:package="c:\packages\mypackage.zip" -dest:auto,computername=StagingServer1 -setParamFile="c:\StagingParameters.xml"

См. приведенные ниже ссылки для примеров и технической информации MSDN:

Развертывание веб-развертывания в действии

Параметризация против преобразования Web.Config

Развертывание параметров работы в Интернете

fooobar.com/info/147343/...