MSDeploy setParameter.xml不转换web.config

时间:2018-04-10 19:03:08

标签: asp.net msbuild msdeploy webdeploy microsoft-web-deploy

在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部署?

2 个答案:

答案 0 :(得分:1)

此:

add[@name='my.config']

不得不改为:

add[@key='my.config']

但更大的问题仍然存在,我该如何调试?我不得不尝试一百万次而只是猜测,因为我没有错误/日志来帮助排除故障。是否有详细的日志记录或某种验证器或任何东西?

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

答案 1 :(得分:1)

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

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

如果使用-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/