【问题标题】:ASP.NET and web.config transforms not working when developingASP.NET 和 web.config 转换在开发时不起作用
【发布时间】:2019-04-24 05:26:15
【问题描述】:

我正在开发一个 ASP.NET C# 项目,我想在其中使用 web.config 转换。

因此我安装了扩展“配置转换”并添加了Web.Debug.configWeb.Release.config

Web.config 中,我没有声明任何特定于我的应用程序的内容。调试配置包含我的测试/开发设置,而发布配置包含令牌#{someVar}#,稍后将被 TFS 替换。

当我发布我的应用程序时,Web.config 会根据配置(调试/发布)正确创建。 Preview config transform 也给出了正确的结果(除了换行符)。

但是,当使用调试配置从 Visual Studio 2017 中启动应用程序时,它会抱怨缺少标记。

为什么会这样,我该如何解决?

Web.config

<!-- Does not contain the request tag -->

Web.Debug.Config

<request xdt:Transform="Insert">
    <mysetting>MyDevelopmentSetting</mysetting>
</request>

Web.Release.config

<request xdt:Transform="Insert">
    <mysetting>#{MyTokenThatWillGetReplacedByTFS}#</mysetting>
</request>

【问题讨论】:

    标签: c# asp.net web.config-transform


    【解决方案1】:

    Web 配置转换不在 Visual Studio 中运行(当您按 F5/在 VS 中运行应用程序时)。它们仅在发布时在构建上运行。

    由于您的 web.config 没有设置并且应用程序正在等待它,因此它正确地抱怨缺少标签。

    您需要将此标签添加到您的 web.config。

    【讨论】:

    • 感谢您的回复。我想这会使我的web.debug.config 过时,因为我的调试/开发设置必须升级到web.config
    • 如果您有部署到开发服务器,那么调试可能仍然有意义。您的 web.config 中的设置可能适用于您的本地机器。例如,到本地数据库的连接字符串。但是,如果您没有,那么是的,您的 web.config 可能是您的“开发/调试”设置,然后您只有一个用于生产的发布转换。 :-)
    • 现在...话虽如此。从技术上讲,可以在构建期间进行转换,但它会产生更多的复杂性并且也有缺点,所以如果你真的需要它,有办法。我没有提供它们中的任何一个,因为您的问题非常直截了当,“为什么在 VS 中调试时我的转换不运行”。 :-)
    • 看看这个和其中一个答案中的博客文章......stackoverflow.com/questions/35559289/…
    猜你喜欢
    • 2014-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多