Vs .Net Framework 灵活配置

背景:我们开发和部署项目时都是通过注释某些配置项

比如:

在调试时就注释掉生产的配置项,在生产时又要改回来,只有一个还好,如果多的话就会非常容易出错。

问题1:在发布时容易出错,需要控制发布时根据配置(debug 、release、etc) 自动生成对应的配置。

问题2:在调试时以最少修改切换配置。

以上两个问题拆解出下面的需求:

1、debug 配置和 release 配置分成两个文件。

2、保证debug 配置和 release 配置,配置项的数量相等。(需求 1 引发的二级需求)

3、可以看到所有配置项都有哪些。(需求 1 引发的二级需求)

4、在编译成功后自动应用指定的配置。

5、在发布成功后自动应用指定的配置。

6、最少修改切换配置。

搜集到的解决方案

1、使用 TransformFile发布时 转换 web.config 文件。ps:TransformFile 文件指如 App.config 存在子依赖文件 App.Debug.config 且 在.csproj 文件中被标记为 IsTransformFile  的特定配置文件。

2、使用 SlowCheetah 插件+ TransformFile 在编译是转换 *.config 文件。SlowCheetah 添加所有 *.config 文件的转换文件。

3、使用  configSource="other.config" 特性 使用其他 .config 文件替换 *.config 文件中的 appSettings 或 connectionStrings节点(可在调试中手动修改other.config )。

4、使用 生成事件-生成成功后事件 添加 Cmd 命令如: copy /y $(ProjectDir)App.$(ConfigurationName).config $(TargetPath).config 在生成成功后拷贝自定义配置文件覆盖输出的配置文件。

5、添加自定义配置 DebugRelease 继承 Debug 配合 2 添加 TransformFile 配合 5 在项目生成前事件拷贝 Release TransformFile 到 DebugRelease  TransformFile  文件中。实现调试生产环境。

7、添加一个 bat 文件手动调用修改 TransformFile 。

8、手动修改 项目属性-Release 配置-优化代码-取消勾选以 release 方式启动项目达到调试生产环境配置的效果。和 5 大同小异。  

9、参考 .net framework 配置文件架构 https://docs.microsoft.com/zh-cn/dotnet/framework/configure-apps/file-schema/ 使用配置文件 配置 指定语言提供程序设置 如:

<configuration>
    <system.codedom>
         <compilers> 
        <!-- zero or more compiler elements --> 
            <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" compilerOptions="/optimize" warningLevel="1" />
       </compilers> 
    </system.codedom> 
</configuration>    

  在 debug 情况也下会优化 cs 代码(compilerOptions="/optimize"),相当于 debug 配置的 release 效果 。

最后关于 Debug和 Release 

所谓配置 debug release ,它们仅仅是缺省的两个配置而已,自己也可以添加更多。

debug 和 release 的重要区别在于 debug 默认是不优化代码,release 反之,所以在调试中所见即所得。

 

转载于:https://www.cnblogs.com/zhuwansu/p/9262561.html

.NET Framework是由微软公司开发的一种基于Windows操作系统的应用程序框架。它提供了一个统一的编程模型、一系列预先编写好的类库和工具,帮助开发人员创建和运行各种类型的应用程序。.NET Framework使用的主要编程语言是C#C#是一种面向对象的高级编程语言,它结合了C和C++的特点,并添加了一些现代化的特性。C#的语法简洁易懂,容易学习和使用,同具备很高的灵活性和可扩展性。它支持面向对象编程、事件驱动编程和组件编程,可以用于开发各种类型的应用程序,包括桌面应用程序、Web应用程序和移动应用程序等。 .NET Framework提供了许多重要的功能和特性,包括多语言互操作性、自动垃圾回收、安全性和可靠性等。它还提供了一套完整的类库,包括用于用户界面、数据访问、网络编程、安全性和多媒体等方面的类库,使开发人员可以更快地开发出高效、可靠的应用程序。 此外,.NET Framework还提供了一系列强大的开发工具,包括可视化开发环境Visual Studio和命令行编译器等。它们提供了丰富的开发工具和调试功能,帮助开发人员更快地编写、测试和调试代码。 总之,.NET Framework是为开发Windows平台应用程序而设计的一种强大的框架,它结合了C#编程语言提供了丰富的功能和工具,使开发人员能够更加高效地创建出高质量的应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值