Web Deploy和Parameters.xml:如何在多个项目之间共享参数

时间:2012-12-05 15:20:44

标签: asp.net xml iis parameters msdeploy

我在套件中有很多网络应用程序。我使用Web Deploy发布我使用Visual Studio构建的部署包。有了这些软件包,就会出现一个SetParameters.xml文件,可用于修改web.config中的值。自动完成多个值,例如连接字符串,但可以将一个parameters.xml文件添加到项目中,以指定应该可参数化的值:

 <?xml version="1.0" encoding="utf-8" ?>
     <parameters>
         <parameter name="Sharepoint service principal name"
                    description="The principal name of the Sharepoint service."
                    defaultValue="host/108.125.111.137">
              <parameterEntry kind="XmlFile"
                              scope="\\Web\.config$"
                              match="/configuration/system.serviceModel/client/endpoint/identity/servicePrincipalName/@value"/>
         </parameter>
    </parameters>

我的问题是:如果我的所有网络应用都在web.config中有一个应用设置,并且我想在部署时修改相同的密钥和值,那么如何避免在每个parameters.xml文件中复制特定参数?有没有办法将此标记放在一个位置,并让每个parameters.xml引用该公共位置?

1 个答案:

答案 0 :(得分:6)

如果您使用的是VS2010 RTM Web Publishing,请选择否。

但是,如果您使用的是VS2012(或VS2010 + Azure SDK),则只需在项目文件中定义参数文件,声明其他ParametersXMLFiles,wpp.targets或发布配置文件:

<ItemGroup>
  <ParametersXMLFiles Include="$(SolutionDir)\CommonParameters.xml" />
<ItemGroup>

这些将与每个项目根目录中的Parameters.xml以及使用MsDeployDeclareParameters在“包”发布配置文件中声明的任何参数合并。