经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 软件/图像 » Visual Studio » 查看文章
Visual Studio C# 多环境配置 Web.config
来源:cnblogs  作者:VipSoft  时间:2023/7/12 10:58:12  对本文有异议

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

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

  1. <!--最简单,最麻烦的做法-->
  2. <configuration>
  3. <appSettings>
  4. <!--正式-->
  5. <!--<add key="DbConnection" value="Data Source=10.176.1.2;Initial Catalog=vipsoft;User ID=sa;Password=....;" />-->
  6. <!--测试-->
  7. <!--<add key="DbConnection" value="Data Source=172.16.0.1;Initial Catalog=vipsoft;User ID=sa;Password=123456;" />-->
  8. <!--开发-->
  9. <add key="DbConnection" value="Data Source=172.16.0.2;Initial Catalog=vipsoft;User ID=sa;Password=666666;" />
  10. </appSettings>
  11. </configuration>

好的做法。

添加解决方案配置

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

添加配置转换

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

添加应对的配置

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

  1. <appSettings>
  2. <add key="Environment" value="Dev" />
  3. </appSettings>

Web.Test.config

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

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

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

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

image

预览转换

image

发布

修改发布配置
image
image

只对生成项目生效

image

代码区分

  1. #if TEST
  2. #else
  3. #endif

image

原文链接:https://www.cnblogs.com/vipsoft/p/17543169.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号