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

Mar*_*Chu 4 xml asp.net 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>
Run Code Online (Sandbox Code Playgroud)

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

Ric*_*lay 6

如果您使用的是VS2010 RTM Web Publishing,则不会.

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

<ItemGroup>
  <ParametersXMLFiles Include="$(SolutionDir)\CommonParameters.xml" />
<ItemGroup>
Run Code Online (Sandbox Code Playgroud)

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