MSDeploy setParameter.xml 未转换 web.config

MSDeploy setParameter.xml not transforming web.config

在我的 "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

我看看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,值未转换。我也没有看到任何错误,我该如何调试呢?

当我 运行 msbuild 和 parameters.xml 呈现时,那里发生了什么神奇的事情?包准备如何通过参数将 web.config 转换为 Web 部署?

这个:

add[@name='my.config']

必须更改为:

add[@key='my.config']

但更大的问题仍然存在,我该如何调试?我不得不尝试一百万次,只是猜测,因为我有零 errors/logs 来帮助解决这个问题。是否有详细的日志记录或某种验证器或任何东西?

为了调试 technet 给了我这个试试: msbuild MyProject.proj /t:go /fl /flp:logfile=MyProjectOutput.log;verbosity=diagnostic

如果您使用的是 MSDeploy,则可以使用以下命令获取部署的完整输出:

msdeploy -verb:sync -source:dirpath=C:\WebDeployDemo\Src -dest:dirpath=C:\WebDeployDemo\Dst -setParamFile=C:\WebDeployDemo\ParameterFile.xml -详细 >msdeploysync-verbose.log

如果您使用 -verbose 标志,这有助于调试 VSTS WebRM 部署。

来源: https://docs.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/