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 反之,所以在调试中所见即所得。
Vs .Net Framework 灵活配置的更多相关文章
- 【FICO系列】SAP 参数(条件表)灵活配置GS01/GS02/GS03
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[FICO系列]SAP 参数(条件表)灵活配 ...
- 前端快闪三:多环境灵活配置react
你已经使用Create React App脚手架搭建了React应用,现在该部署了. 一般会使用npm run build或者yarn build构建出静态资源, 由web服务器承载. 您会体验到 多 ...
- robot framework 安装配置
robot framework 是一款专门用作自动化测试的框架,提供了丰富的内置库,与第三方库,也支持用户自己编写的库,robot framework +library 可以 用来做ui的自动化测试, ...
- 参数(条件表)灵活配置GS01/GS02/GS03
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- Hush Framework框架配置
在写这篇文章的时候,楼主已经饿的不行了,因为我从3点开始就在折腾Hush Framework,走了很多弯路,打铁要趁热,先把基本的过程记录下来,留待以后翻阅,同时记录其中容易走弯路的地方,特别是对于一 ...
- 关于Entity Framework关系配置,提示列名XXXX_Id无效的问题
问题描述 : 数据库中有两张表,如下: Member(会员)表有外键RoleId,对应的是Role(角色)表的主键Id,业务逻辑是Member表的RoleId必须与Role表的Id对应(但在设计数据表 ...
- Hush Framework框架配置(续) 转自《Android和PHP最佳实践》官方站
图书资源下载 Xampp 开发环境下载:http://pan.baidu.com/share/link?shareid=531771&uk=773037279 微博实例完整源码包下载:http ...
- Hush Framework框架配置(转)
在写这篇文章的时候,楼主已经饿的不行了,因为我从3点开始就在折腾Hush Framework,走了很多弯路,打铁要趁热,先把基本的过程记录下来,留待以后翻阅,同时记录其中容易走弯路的地方,特别是对于一 ...
- Kali之Metasploit Framework环境配置
运行Metasploit Framework 依照Kali Linux网络服务策略,Kali没有自动启动的网络服务,包括数据库服务在内.所以为了让Metasploit以支持数据库的方式运行有些必要的步 ...
随机推荐
- Android快速实现二维码扫描--Zbar
Android中二维码扫描的最常用库是zxing和zbar,上一篇<Android快速实现二维码扫描–Zxing>介绍了Zxing.这次说Zbar,Zbar速度极快,我就比较常用,项目地址 ...
- Docz 用 MDX 写 React UI 组件文档
Docz 用 MDX 写 React UI 组件文档 前言 为了提升开发效率,创建一套 UI 组件库是一种较为有效的方式之一:可以减少重复工作.提高可复用,所以现在越来越多团队开始创建自己的 UI 组 ...
- SpringCloud学习1-服务注册与发现(Eureka)
由于样式兼容性问题,本文后半部分被截断,可到个人博客找到本文: https://blog.rmiao.top/springcloud-eureka/ 前言 Oracle转让Java,各种动态语言的曝光 ...
- Linux下lz4解压缩命令小结
lz4是一个让"人见人爱.花见花开"的压缩算法,能够在多核上很好的扩展.lz4在压缩率上略微逊色, 但是在解压速度上有着惊人的优势 (大概是gzip的3倍(多次测试对比)).因为压 ...
- Authorization With Pundit
rails 权限管理gem PunditAuthorization With Pundit
- Asp.net webform scaffolding结合Generic Unit of Work & (Extensible) Repositories Framework代码生成向导
Asp.net webform scaffolding结合Generic Unit of Work & (Extensible) Repositories Framework代码生成向导 在上 ...
- 前后端分离demo 旅馆管理系统
模型设计 旅馆管理系统,主要涉及到登记入住,退房以及客房和客人信息管理:经过分析抽像出涉及到的实体以及各实体之间的关系: 可以看出整个业务以客房为中心,入住,退房,定价,收费都是以客房为基本单 ...
- Python 判断文件/目录是否存在
使用 os 模块 判断文件是否存在 os.path.isfile(path) 判断目录是否存在 os.path.isdir(path) 判断路径是否存在 # 使用 path 模块 os.path.ex ...
- [转]Windows下配置Node.js和Cordova
本文转自:https://blog.csdn.net/weixin_37730482/article/details/74388056?locationNum=3&fps=1 本文讲解在win ...
- .net敏捷开发框架 力软(learun) 让开发变的更简单
版本:6.1.6.2 体验地址:www.fishcmonkey.com 联系QQ:6539471