即使在调试期间选择了不同的活动配置,Visual Studio 也始终从基本 Web.config 文件中读取配置

问题描述 投票:0回答:1

我有一个面向 .NET 4.8 的 ASP.NET MVC 项目。该项目有 2 个调试配置,即调试和测试调试。我已经为测试调试创建了调试转换 (

web.test-Debug.config
),我还可以看到测试调试配置的预览,并且我的所有转换都按预期工作。

当我在 Visual Studio 中选择 test-debug 作为活动调试配置并尝试调试该项目时,Visual Studio 从

web.config
文件读取配置,并且该文件具有调试配置。

如何强制 Visual Studio 读取测试调试活动构建配置的配置?我在 Visual Studio 2019 和 2022 中尝试过此操作,但没有成功。非常感谢任何帮助。

以下是我的配置在 Visual Studio 中的外观

Web.config

-
Web.test-debug.config

c# .net asp.net-mvc visual-studio web-config-transform
1个回答
0
投票

Visual Studio 仅在 Web 项目的发布操作期间执行转换,而不是在构建期间执行转换。

这是有道理的,因为如果 Visual Studio 根据选定的构建配置转换 web.config 文件,开发人员可能会无意中最终将转换后的 web.config 作为基本配置签入。

这篇文章介绍了可用的最佳修复方法。以下是文章的详细信息。

  1. 卸载项目

  2. 编辑.csproj

  3. 将以下内容添加到

    之前的文件末尾
  4. 保存.csproj并重新加载

  5. 打开配置管理器

  6. 添加新的配置名称:Base。复制设置:Release

  7. 复制 web.config 的内容

  8. 右键单击 Web.Config > 添加配置转换

  9. 用剪贴板的内容覆盖 web.base.config

从现在开始,Web.Config 将被使用转换覆盖。

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v12.0\WebApplications\Microsoft.WebApplication.targets" />
<Target Name="BeforeBuild">
    <TransformXml Source="Web.Base.config" Transform="Web.$(Configuration).config" Destination="Web.config" />
</Target> 
© www.soinside.com 2019 - 2024. All rights reserved.