【问题标题】:MSDeploy setParameter.xml not transforming web.configMSDeploy setParameter.xml 不转换 web.config
【发布时间】: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


    【解决方案1】:

    这个:

    add[@name='my.config']
    

    不得不改成这样:

    add[@key='my.config']
    

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

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

    【讨论】:

      【解决方案2】:

      如果您使用的是 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 部署调试。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-04-04
        • 1970-01-01
        • 2014-05-18
        • 2019-08-12
        • 2017-11-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多