4

我在一个套件中有许多网络应用程序。我使用 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 应用程序在 web.config 中都有一个应用程序设置,并且我想在部署时修改相同的键和值,我怎样才能避免在每个 parameters.xml 文件中重复特定参数?有没有办法将此标签放在一个位置并让每个 parameters.xml 引用该公共位置?

4

1 回答 1

6

如果您使用的是 VS2010 RTM Web Publishing,那么没有。

但是,如果您使用的是 VS2012(或 VS2010 + Azure SDK),您可以简单地定义参数文件ParametersXMLFiles,在项目文件 wpp.targets 或发布配置文件中声明一个附加项:

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

这些将与每个项目根目录中的 Parameters.xml 以及使用MsDeployDeclareParameters.

于 2012-12-06T03:13:27.897 回答