我在套件中有很多网络应用程序。我使用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引用该公共位置?
答案 0 :(得分:6)
如果您使用的是VS2010 RTM Web Publishing,请选择否。
但是,如果您使用的是VS2012(或VS2010 + Azure SDK),则只需在项目文件中定义参数文件,声明其他ParametersXMLFiles
,wpp.targets或发布配置文件:
<ItemGroup>
<ParametersXMLFiles Include="$(SolutionDir)\CommonParameters.xml" />
<ItemGroup>
这些将与每个项目根目录中的Parameters.xml以及使用MsDeployDeclareParameters
在“包”发布配置文件中声明的任何参数合并。