Visual Studio C# 多环境配置 Web.config

visual,studio,c#,环境,配置,web,config · 浏览次数 : 1423

小编点评

## 代码配置添加 **1. 创建解决方案配置** 在 Visual Studio 中创建一个新的解决方案配置文件(.slnconfig)。 **2. 配置转换** 右键单击项目,选择“配置转换”。 **3. 添加配置转换** 在“添加配置转换”窗口中,选择“添加”。 **4. 添加应对的配置** * 创建一个新的配置转换。 * 在“配置项”中添加以下属性: * Key:`Environment` * Value:`Dev` * 创建另一个配置转换。 * 在“配置项”中添加以下属性: * Key:`Environment` * Value:`Test` * Transformation:`SetAttributes` * Attribute Name:`Environment` * Attribute Value:`Test` **5. 添加应对配置** 创建一个新的配置转换。 * 在“配置项”中添加以下属性: * Key:`Environment` * Value:`Dev` * 创建另一个配置转换。 * 在“配置项”中添加以下属性: * Key:`Environment` * Value:`Test` * Transformation:`Replace` * Expression:`if ($environment == 'Dev') { return 'InternalError.htm'; } else { return 'GenericError.htm'; }` * Target Name:`customErrors` **6. 保存并运行预览转换** 保存解决方案配置,然后执行预览转换。 **7. 发布代码** 发布代码时,预览转换只对生成项目生效代码区分。

正文

开始以为像SpringBoot 那样,运行时也行效的,结果发现只对发布生效,VS里运行时不生效,凑活着用。
.Net Core appsettings.json 改进了

Visual Studio 为多环境配置 Web.config
不同的环境,存在不同的配置,如:数据库连接字符串,通过多配置,方便做环境切换,配置的修改

<!--最简单,最麻烦的做法-->
<configuration>
  <appSettings>

    <!--正式-->
    <!--<add key="DbConnection" value="Data Source=10.176.1.2;Initial Catalog=vipsoft;User ID=sa;Password=....;" />-->
    <!--测试-->
    <!--<add key="DbConnection" value="Data Source=172.16.0.1;Initial Catalog=vipsoft;User ID=sa;Password=123456;" />-->
    <!--开发-->
    <add key="DbConnection" value="Data Source=172.16.0.2;Initial Catalog=vipsoft;User ID=sa;Password=666666;" />

  </appSettings>
</configuration>

好的做法。

添加解决方案配置

生成 -> 配置管理器
image
image
image
image

添加配置转换

右击 Web.config -> 添加配置转换
image
image

添加应对的配置

将不同环境的配置项,添加至对应的配置文件中
Web.config

<appSettings>
    <add key="Environment" value="Dev" />
</appSettings>

Web.Test.config

<appSettings>
    <add key="Environment" value="Test" xdt:Transform="SetAttributes" xdt:Locator="Match(key)"/>
</appSettings>

属性值 xdt:Transform “SetAttributes” 指示此转换的目的是更改 Web.config 文件中现有元素的属性值。 xdt:Locator属性值“Match (键) ”指示要修改的元素是其key属性与此处指定的属性匹配的key元素。 元素的唯一其他属性 add 是 value,这就是部署 的Web.config 文件中将发生更改的内容。 此处显示的代码会导致 value 元素的属性 EnvironmentappSettings 在部署的 Web.config 文件中设置为“Test”。

  <system.web>
    <compilation xdt:Transform="RemoveAttributes(debug)" />
    <!--
      
      在下例中,“Replace”转换将替换 
      web.config 文件的整个 <customErrors> 节。
      请注意,由于 
      在 <system.web> 节点下仅有一个 customErrors 节,因此不需要使用“xdt:Locator”特性。
      
      <customErrors defaultRedirect="GenericError.htm"
        mode="RemoteOnly" xdt:Transform="Replace">
        <error statusCode="500" redirect="InternalError.htm"/>
      </customErrors>
    -->
  </system.web>

xdt:Transform="RemoveAttributes(debug)" 属性指定要 debugsystem.web/compilation 已部署 的 Web.config 文件中的元素中删除该属性。 每次部署发布版本时,都会执行此操作。

image

预览转换

image

发布

修改发布配置
image
image

只对生成项目生效

image

代码区分

#if TEST

#else

#endif

image

与Visual Studio C# 多环境配置 Web.config相似的内容:

Visual Studio C# 多环境配置 Web.config

Visual Studio 为多环境配置 Web.config 不同的环境,存在不同的配置,如:数据库连接字符串,通过多配置,方便做环境切换,配置的修改

FFmpeg开发笔记(三十九)给Visual Studio的C++工程集成FFmpeg

​《FFmpeg开发实战:从零基础到短视频上线》一书的“第11章 FFmpeg的桌面开发”介绍了如何在Windows环境对Qt结合FFmpeg实现桌面程序,那么Windows系统通过Visual Studio开发桌面程序也是很常见的,下面就介绍如何在Visual Studio的C++工程中集成FFm

在 Visual Studio 2022 (Visual C++ 17) 中使用 Visual Leak Detector

VLD(Visual Leak Detector)是 Windows 平台上优秀的内存泄露检测工具。本文介绍在 Visual C++ 2022 中使用 VLD 的方法。

Visual Studio Code安装C#开发工具包并编写ASP.NET Core Web应用

前言 前段时间微软发布了适用于VS Code的C#开发工具包(注意目前该包还属于预发布状态但是可以正常使用),因为之前看过网上的一些使用VS Code搭建.NET Core环境的教程看着还挺复杂的就一直没有尝试使用VS Code来编写.NET Core。不过听说C# 开发工具包提供了一系列功能和扩展

Visual Studio Code调试和发布ASP.NET Core Web应用

前言 上一篇文章主要讲了Visual Studio Code安装C#开发工具包并编写ASP.NET Core Web应用有兴趣的同学可以去看看,今天咱们主要是要讲讲如何在VS Code中调试和发布ASP.NET Core Web应用。 Visual Studio Code安装C#开发工具包并编写AS

将编译过的C++库迅速部署在Visual Studio新项目中

本文介绍在Visual Studio中,通过属性表,使得一个新建解决方案中的项目可以快速配置已有解决方案的项目中各类已编译好的C++第三方库的方法~

【译】使 Visual Studio 更加可视化

任何 Web、桌面或移动开发人员都经常使用图像。你可以从 C#、HTML、XAML、CSS、C++、VB、TypeScript 甚至代码注释中引用它们。有些图像是本地的,有些存在于线上或网络共享中,而其他图像可能仅以 base64 编码字符串的形式存在。我们在代码中以多种方式引用它们,但总是作为字符

Visual Studio常用快捷键(附带免费PDF)

前言 对于开发者而言,熟悉快捷键的使用,能够起到事半功倍的作用,提高工作效率。以下是我整理的一份Visual Studio常用快捷键清单,希望能够帮助到你。 常用快捷方式 快捷键功能 Ctrl + K + C 注释选定内容 Ctrl + K + U 取消注释选定内容 Ctrl + K + D 代码格

C# 7.0 添加和增强的功能【基础篇】

C# 7.0 版是与 Visual Studio 2017 一起发布。 虽然该版本继承和发展了C# 6.0,但不包含编译器即服务。

C# 12 中的新增功能

新的 C# 12 功能在预览版中已经引入. 您可以使用最新的 Visual Studio 预览版或最新的 .NET 8 预览版 SDK 来尝试这些功能。以下是一些新引入的功能: 主构造函数 集合表达式 默认 Lambda 参数 任何类型的别名 内联数组 拦截器 使用nameof访问实例成员 主构造函