Как преобразовать пользовательские разделы Web.config с помощью MSDeploy?
Есть ли способ преобразовать значения пользовательских разделов web.config при использовании MSDeploy?
<configSections>
<sectionGroup name="myGroup">
<section name="data" type="MyApp.DataConfigurationSection, MyApp.Data" />
</sectionGroup>
</configSections>
<myGroup>
<data interval="3" useCache="true" />
</myGroup>
В соответствии с конфигурацией сборки мне нужно для примера изменить значение "useCache".
2 ответа
Записать преобразование в файл конфигурации config (web.config.release)
<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<myGroup>
<data useCache="false" xdt:Transform="SetAttributes(useCache)" />
</myGroup>
</configuration>
Да, MSDeploy поддерживает это довольно легко.
При создании пакета развертывания вы хотите использовать -declareParm
возможность создать заменяемый параметр в вашем пакете развертывания. Вы бы использовали что-то вроде:
-declareParam:name=UseCache,kind=XmlFile,scope=web.config,match="/configuration/myGroup/data/@useCache"
Затем при развертывании пакета вы должны использовать -setParm
Команда для замены параметра во время развертывания. Что-то вроде:
-setParam:name=UseCache,value="false"
Этот пример заменит параметр UseCache, который указывает на атрибут useCache в файле web.config, на "false".
Вы можете объявить любое количество параметров для замены, и MSDeploy поддерживает использование файлов для хранения параметров. Файлы представляют собой простые XML-файлы, которые вы затем используете -setParamFile:<filename>
а также -declareParamFile:<filename>
синтаксис.