首页 > 编程语言 >Visual Studio C# 多环境配置 Web.config

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

时间:2023-07-11 19:14:58浏览次数:53  
标签:Web xdt C# 配置 Visual 添加 config 属性

目录

 

开始以为像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)" 属性指定要 debug 从 system.web/compilation 已部署 的 Web.config 文件中的元素中删除该属性。 每次部署发布版本时,都会执行此操作。

image

预览转换

image

发布

修改发布配置
image
image

只对生成项目生效

image

代码区分

#if TEST

#else

#endif

image

        转 https://www.cnblogs.com/vipsoft/p/17543169.html

标签:Web,xdt,C#,配置,Visual,添加,config,属性
From: https://www.cnblogs.com/wl-blog/p/17545690.html

相关文章

  • MqttNet version 4.1.3.563 Basic example
    @@mqttnet4.1.4Theformalenvironmentcannotreceivemessages  Reportthisad1Following this exampleIhavenowthereforebeenrequiredtoupdatetheMQTT.NETfromversion3(thatworksthankstheprovidedhelp)toversion4.Averybasic......
  • 脱发秘籍:前端Chrome调试技巧汇总
    Chrome浏览器调试工具的核心功能:......
  • CSP_J 暑假清北学堂集训 第一天
    数据结构:数据结构:1.怎么写;2.怎么用一、数组1.负数下标是可以定义的:1.变量局部开在栈空间里2.数组全局变量开在堆空间里3.数组越界会出现一些奇奇怪怪到小问题处理方法:inta[1000010];int*b=a+500000;结果:b[-233]->a[500000-233];b[-500000~500000];......
  • CSP_J 暑假清北学堂集训 第二天
    倍增算法:(只往上和)f[i][j]:从ai开始的2的j次方个数的最大值=max(ai+ai+1+......+ai+2^j-1)f[i][0]=ai//切一刀:f[i][j]=max(f[i][j-1],f[i+2^(j-1)][j-1])Q:一个区间内的最大值n<=100000思路:l=2,r=5f[2][2];如果恰好是2的次方......
  • druid报错:com.alibaba.druid.util.JdbcUtils - close connection error
    druid报错:com.alibaba.druid.util.JdbcUtils-closeconnectionerrorERRORcom.alibaba.druid.util.JdbcUtils-closeconnectionerrorjava.sql.SQLRecoverableException:IO错误:Socketreadtimedoutatoracle.jdbc.driver.T4CConnection.logoff(T4CConnect......
  • elementUI远程搜索功能遇到的坑(el-autocomplete) 如果是提前加载出全量数据 去掉v-mode
    elementUI远程搜索功能遇到的坑(el-autocomplete)如果是提前加载出全量数据去掉v-model.trim换为v-model=“nameinputvalue”原文链接:https://blog.csdn.net/CuiCui_web/article/details/95939746本文主要是解决下拉框根据返回值隐藏   动态设置建议列表值等问题结构写......
  • git 合并某个分支上某次commit记录到另外一个分支
    需求:需要将A分支的某次提交记录,合并到B分支 解决步骤:1)gitcheckoutA分支找到提交的commitid可以使用gitlog命令或者右键上次提交的记录copyreversionnumber2)切回到B分支使用gitcherry-pick提交记录ID,回车即可。或者直接用idea选择某个commit,右键......
  • c语言碎碎念(未完待续)
    %g格式符的使用这个格式符可以让浮点数自动舍去后面多余的0做题2.注意传递数组和传递指针的区别一个重要理解: int(*p)[4]; int**m; intb[4]; p=&b;// p=b;b==&b[0]即数组名==数组的第一个元素的地址!=数组的地址,若想获取数组的地址还要在数组名前加&//所以......
  • 论文阅读 | Penetration Testing Active Reconnaissance Phase – Optimized Port Sca
    我们可以使用TCP端口扫描对物联网设备进行分类吗?https://ieeexplore.ieee.org/document/8913346 1介绍在[10]中,我们根据统计属性(如活动周期,端口号,信令模式和密码套件)来表征物联网流量。此外,提出了一个多阶段机器学习模型,使用从配备特殊硬件加速(例如NetFlow)的网络交换机......
  • pycharm git找不到远程服务器新建的分支
    1、从Termianl打开终端,进到.get目录2、执行命令:gitremoteupdateorigin--prune3、从Pycharm编写代码界面的右下角,可以看到一个master的按钮,搜索到最新分支4、checkout就切换到对应分支了......