asp.net - MSDeploy setParameter.xml 不转换 web.config

标签 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>

然后我进入 parameters.xml 里面的 mydeploy.zip 并看到它也在那里:

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

最佳答案

这个:

add[@name='my.config']

必须更改为:

add[@key='my.config']

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

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

关于asp.net - MSDeploy setParameter.xml 不转换 web.config,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49761166/

相关文章:

Javascript 更改 asp :textbox visible property to true

msbuild - 如何使用 MSBuild 构建 Visual Studio 2017 VSIX

c++ - 如何使用指定的 CPU 计数在 MSBuild 中设置/MP

asp.net - 如何通过MsDeploy在部署过程中排除Web.Config

iis-7.5 - msdeploy将mvc转换为Windows7并获得ERROR_DESTINATION_NOT_REACHABLE和404

C# 在站点主控中添加控件不会在 asp 中引用 :loginView

javascript - 使用 Handler.ashx 获取图像

asp.net 是否可以从静态类读取 cookie 的值?

delphi - 使用 msbuild 构建时从 dproj 中排除搜索路径

msbuild - 如何从 MSbuild 指定 MSDeploy 参数