在我的“myconfig”配置文件的web.config中,我在appSettings下进行了转换,代码如下:
当我使用此转换进行msbuild时,该值会被正确转换。现在我想构建一个msdeploy包,并在部署时转换此值。
我将此parameters.xml文件放在项目根目录中:
我正在构建我的软件包。
<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
我查看了我的deploy.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 Deploy文件?