gpt4 book ai didi

xpath - MSDeploy setParameter 不起作用

转载 作者:行者123 更新时间:2023-12-03 15:23:01 26 4
gpt4 key购买 nike

我们正在尝试在我们的构建部署系统中集成“一次构建,随处部署”的模型。

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 表达式,结果与任何其他工作参数完全相同,但上述内容似乎从未改变。

有没有人看到我在这里遗漏了任何明显的东西?

最佳答案

服务地址

我在这里找到了这个问题的答案:

Replace web.config elements with MSDeploy

我在 XPath 表达式的末尾缺少“text()”,正确的 XPath 是:

/configuration/applicationSettings/aim.Web.Properties.Settings/setting[@name='ai‌​m_Web_AddressService_Address']/value/text()



自定义错误模式

对于 customErrorsMode 问题,我在 XPath 表达式的开头缺少一个“/”。正确的表达是:
/configuration/system.web/customErrors/@mode  



连接字符串

这个真的让我着迷,这是我想出来的最后一个。在做了一些挖掘之后,我发现 MSDeploy 会自动参数化某些元素,连接字符串就是其中之一,更多信息在这里:

Configuring Parameters for Web Package Deployment

我对相关连接字符串的参数声明应该是:
<parameter name="DbConnectionString-Web.config Connection String" defaultValue="">
<parameterEntry kind="XmlFile" scope="\\web.config$" match="/configuration/connectionStrings/add[@name='DbConnectionString']" />
</parameter>

我的 setParameter 定义应该是这样的:
<setParameter name="DbConnectionString-Web.config Connection String" value="Data Source=dbserver;Initial Catalog=DB1;Trusted_Connection=no;User ID=user1;Password=pass*9;" />

关于xpath - MSDeploy setParameter 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24428870/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com