如何使用MSDeploy转换Web.config自定义部分?

时间:2010-11-30 23:22:16

标签: msbuild msdeploy

使用MSDeploy时,有没有办法转换web.config自定义节值?

  <configSections>
    <sectionGroup name="myGroup">
      <section name="data" type="MyApp.DataConfigurationSection, MyApp.Data" />
    </sectionGroup>
  </configSections>

  <myGroup>
    <data interval="3" useCache="true" />
  </myGroup>

根据构建配置,我需要例如更改“useCache”值。

2 个答案:

答案 0 :(得分:4)

在配置转换文件(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>

答案 1 :(得分:1)

是的,MSDeploy非常容易支持。

创建部署包时,您希望使用-declareParm选项在部署包中创建可替换参数。你会使用类似的东西:

-declareParam:name=UseCache,kind=XmlFile,scope=web.config,match="/configuration/myGroup/data/@useCache"

然后在部署程序包时,您将使用-setParm命令在部署期间替换该参数。类似的东西:

-setParam:name=UseCache,value="false"

此示例将替换UseCache参数,该参数指向web.config文件中带有“false”的useCache属性。

您可以声明要替换的任意数量的参数,MSDeploy支持使用文件来保存参数。文件是简单的Xml文件,然后您将使用-setParamFile:<filename>-declareParamFile:<filename>语法。