Преобразование web.config + msdeploy - исключение производственных паролей из системы контроля версий

Нашему web.config нужен пароль базы данных.

Как мы можем указать этот пароль при сборке пакета msdeploy (он же Web Deploy) или при фактическом развертывании?

Мы создаем пакет msdeploy, используя преобразования msbuild (/p:DeployOnBuild=true) и web.config для деталей, специфичных для среды.

1 ответ

Решение

Преобразования Web.config по своей конструкции являются преобразованиями времени сборки. Я склонен использовать их только для изменений "все, кроме отладки".

То, что вы хотите, это параметр MSDeploy. Предполагая, что вы используете pubxml При публикации профиля в сгенерированном пакете автоматически будет указан параметр "Строка подключенияимени-Web.config" (где "Имя" соответствует атрибуту имени в файле web.config), который будет применяться к строке подключения.

Если вы развернете пакет, вы можете изменить строку подключения, указав значение с помощью -setParam:

Website.deploy.cmd /Y ... ^
 -setParam:name="Name-Web.config Connection String",value="connection_string"

При развертывании с использованием профиля публикации вы можете установить значение в pubxml файл путем обновления MSDeployParameterValue значение (вы должны увидеть правильное значение в нижней части файла):

<MSDeployParameterValue Include="$(DeployParameterPrefix)DBName-Web.config Connection String">
  <ParameterValue>connection_string</ParameterValue>
</MSDeployParameterValue>
Другие вопросы по тегам