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

Asp.net Web Deploy和Parameters.xml:如何在多个项目之间共享参数,asp.net,xml,iis,parameters,msdeploy,Asp.net,Xml,Iis,Parameters,Msdeploy,我在一个套件中有许多web应用程序。我使用WebDeploy发布使用VisualStudio构建的部署包。这些包附带一个SetParameters.xml文件,可用于修改web.config中的值。有几个值是自动完成的,例如连接字符串,但可以向项目中添加parameters.xml文件,以指定应可参数化的值: <?xml version="1.0" encoding="utf-8" ?> <parameters> <parameter

我在一个套件中有许多web应用程序。我使用WebDeploy发布使用VisualStudio构建的部署包。这些包附带一个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应用程序在web.config中都有一个应用程序设置,该设置的键和值与我在部署时要修改的键和值相同,那么如何避免在每个parameters.xml文件中重复特定参数?有没有办法将此标记放在单个位置,并让每个parameters.xml引用该公共位置?

如果您使用的是VS2010 RTM Web发布,则没有

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

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


这些将与每个项目根目录中的Parameters.xml合并,并与使用
MsDeployDeclareParameters
在“包”发布配置文件中声明的任何参数合并。谢谢,Richard。不幸的是,我们正在使用VS2010。但是我只是快速浏览了一下Microsoft.Web.Publishing.targets文件,我不明白为什么相同的解决方案不起作用。我应该注意到,我正在构建服务器上查看它,该服务器上只有一个VisualStudioShell。所有的构建/部署都是通过使用自定义构建脚本调用MSBuild来完成的。是的,它也适用于我的VS2010 RTM。我把它放进了我的项目文件中,它就像一个符咒。最后谢谢仅供参考,查找此类新内容的最佳方法是在
%programfiles%\msbuild\Microsoft\VisualStudio\v11.0\Microsoft.Web.Publish.targets
中搜索最接近您所知的内容(“Parameters.xml”)。更新:目标文件位于“C:\Program Files(x86)\VS 2010 SP1中的MSBuild\Microsoft\VisualStudio\v11.0\Web\Microsoft.Web.Publishing.targets