Мы используем msdeploy (или веб-развертывание, если хотите) для упаковки и развертывания веб-приложений. Объявляя время пакета параметров, мы можем предоставить значения во время развертывания (для замены строк соединения между прочим).
В настоящее время мы сталкиваемся с проблемой замены значений в разделах applicationSettings в нашей веб-конфигурации. Мы не можем заставить msdeploy заменять значение, потому что содержимое, которое мы хотим заменить, - это текст внутри элемента xml, а не значение атрибута (предупреждение, которое мы получаем: "Невозможно установить значение в node типа" Элемент "").
Соответствующая конфигурация выглядит следующим образом:
<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 только замену значений атрибутов или я делаю что-то неправильно?