MSDeploy setParameter.xml未能转换web.config

3
在我的“myconfig”配置文件的web.config中,我在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

我查看了我的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文件?

2个回答

4

这个:

add[@name='my.config']

需要更改为这样:

add[@key='my.config']

然而更大的问题仍然存在,如何进行调试?我不得不尝试了无数次并且只是猜测,因为我没有任何错误/日志来帮助排除故障。是否有详细记录或某种验证器或其他任何东西可用?

对于调试,Technet 给了我以下建议:

msbuild MyProject.proj /t:go /fl /flp:logfile=MyProjectOutput.log;verbosity=diagnostic


1
如果您正在使用MSDeploy,可以通过以下方式获取部署的完整输出:
msdeploy -verb:sync -source:dirpath=C:\WebDeployDemo\Src -dest:dirpath=C:\WebDeployDemo\Dst -setParamFile=C:\WebDeployDemo\ParameterFile.xml -verbose >msdeploysync-verbose.log
如果您使用了-verbose标志,这将有助于VSTS WebRM部署调试。

Sources: https://learn.microsoft.com/en-us/iis/publish/troubleshooting-web-deploy/troubleshooting-web-deploy https://blogs.msdn.microsoft.com/spike/2012/10/12/using-msdeploy-to-update-and-remove-sections-in-web-config-a-simple-example/


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接