【发布时间】:2018-04-10 19:03:07
【问题描述】:
在我的 web.config 的“myconfig”配置文件转换中,我在 appSettings 下有这个:
<add key="my.config" xdt:Transform="SetAttributes" xdt:Locator="Match(key)" value="derp" />
当我使用此转换进行 msbuild 时,值被正确转换。现在我想构建一个 msdeploy 包并在部署时转换这个值。
我将这个 parameters.xml 放到我的项目根目录中:
<?xml version="1.0" encoding="utf-8" ?>
<parameters>
<parameter name="my.config" description="sdfsdfsdfsd" defaultValue="fart">
<parameterEntry kind="XmlFile"
scope="\\Web\.config$"
match="/configuration/appSettings/add[@my.config]/@value/text()" />
</parameter>
</parameters>
我构建我的包
msbuild app.csproj /T:Package /p:Configuration=myconfigprofile;PackageLocation=mydeploy.zip
我查看 mydeploy.SetParameters.xml
<?xml version="1.0" encoding="utf-8"?>
<parameters>
<setParameter name="IIS Web Application Name" value="Default Web Site/myApp_deploy" />
<setParameter name="my.config" value="fart" />
</parameters>
然后我进入 mydeploy.zip 中的 parameters.xml 并在那里查看它:
<parameters>
<parameter name="my.config" description="sdkflsdjfldfj" defaultValue="fart">
<parameterEntry kind="XmlFile" scope="\\Web\.config$" match="/configuration/appSettings/add[@name='my.config']/@value/text()" />
</parameter>
</parameters>
到目前为止看起来不错,然后我部署:
mydeploy.deploy.cmd /Y /M:server1
我查看了部署服务器上的 web.config 并且值没有被转换。我也没有看到任何错误,我该如何调试呢?
当我使用 parameters.xml 运行 msbuild 时,那里会发生什么神奇的事情?包如何准备能够通过参数将 web.config 转换为 web 部署?
【问题讨论】:
标签: asp.net msbuild msdeploy webdeploy microsoft-web-deploy