我们正在尝试在我们的构建-部署系统中集成“构建一次,随处部署”模型。
MSDeploy 为此创造了奇迹,通过 CRC 校验和比较显着减少了构建时间,并且(在大多数情况下)它在使用参数化根据我们部署到的环境更改应用程序 web.configs 时同样有效。
我已经确定了这些参数中的大部分,但一些元素和属性似乎永远不会改变,无论我在 parameters.xml 文件中以多少不同的方式调用它们。我已经概述了三个示例,这是我要更改的 web.config 文件:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<connectionStrings>
<add name="DbConnectionString" connectionString="Data Source=null;Initial Catalog=null;Trusted_Connection=no;User ID=user1;Password=pass*9;" providerName="System.Data.SqlClient" />
</connectionStrings>
<system.web>
<customErrors mode="On" defaultRedirect="/Library/Error/PageNotFound.aspx">
</customErrors>
</system.web>
<applicationSettings>
<settings>
<setting name="service_Address" serializeAs="String">
<value></value>
</setting>
<settings>
</applicationSettings>
</configuration>
这是parameters.xml文件:
<parameter name="DbConnectionString" defaultValue="">
<parameterEntry kind="XmlFile" scope="\\web.config$" match="/configuration/connectionStrings/add[@name='DbConnectionString']/@connectionString" />
</parameter>
<parameter name="customErrorsMode" defaultValue="">
<parameterEntry kind="XmlFile" scope="\\web.config$" match="configuration/system.web/customErrors/@mode" />
</parameter>
<parameter name="service_Address" defaultValue="">
<parameterEntry kind="XmlFile" scope="\\web.config$" match="/configuration/applicationSettings/aim.Web.Properties.Settings/setting[@name='service_Address']/value" />
</parameter>
这是相应的 setParameters.xml 文件:
<setParameter name="DbConnectionString" value="Data Source=dbserver;Initial Catalog=DB1;Trusted_Connection=no;User ID=user1;Password=pass*9;"/>
<setParameter name="customErrorsMode" value="Off"/>
<setParameter name="service_Address" value="https://myservice.asmx"/>
我已经测试了每个 XPath 表达式,结果与任何其他工作参数完全相同,但上述内容似乎从未改变。
有没有人看到我在这里遗漏的任何明显的东西?