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

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

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

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


person Brian Low    schedule 06.04.2014    source источник


Ответы (1)


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

Вам нужен параметр MSDeploy. Предполагая, что вы используете профиль публикации pubxml, сгенерированный пакет автоматически будет иметь параметр с именем «Name -Web.config Connection String» (где «Name» совпадает с атрибутом name в 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>
person Richard Szalay    schedule 27.04.2014
comment
Name-Web.config просто подать заявку на строку подключения? Что произойдет, если я захочу изменить атрибут AppSettings? - person Robert; 04.01.2017