Мы используем msdeploy (или веб-развертывание, если хотите) для упаковки и развертывания веб-приложений. Объявляя время пакета параметров, мы можем предоставить значения во время развертывания (для замены строк соединения среди прочего).
Проблема, с которой мы сейчас сталкиваемся, заключается в замене значений в разделах applicationSettings в нашей веб-конфигурации. Мы не можем заставить msdeploy заменить значение, потому что содержимое, которое мы хотим заменить, это текст внутри элемента xml, а не значение атрибута (мы получаем предупреждение: «Невозможно установить значение для типа узла« Элемент »»).
Соответствующий конфиг выглядит так:
<applicationSettings>
<Name.Of.Assembly.Properties.Settings>
<setting name="someSetting" serializeAs="String">
<value>I wanna be replaced</value>
</setting>
</Name.Of.Assembly.Properties.Settings>
</applicationSettings>
и параметр объявления XML выглядит следующим образом:
<parameter name="XX" defaultValue="default">
<parameterEntry kind="XmlFile"
scope="Web\.config$"
match="/configuration/applicationSettings/Name.Of.Assembly.Properties.Settings/setting[@name='someSetting']/value" />
</parameter>
Поддерживает ли msdeploy только замену значений атрибутов или я что-то не так делаю?