将不确定变为确定~为什么发布项目时用release环境更好些
2013-01-22 15:03
281 查看
之前写过类似的文章,今天决定在简单的说说,在很多时候,我们在发布项目时,直接就发了,没有什么讲究,但我要说的是,VS为我们提供了一些工具,它可能希望我们在发布项目时要讲究一些,呵呵!
调试模式
发布(生产,运营)模式
这就是VS为我们提供的两个模式,当然你也可以根据团队的需要去建立其它的模式,但我和小微认为没那个必要了,呵呵,下面来看看这两种模式在什么时候会用。
首先,如果你在代码中没有用到debug,release,那事实上它们在发布时,这两种模式没有区别,但如果你的代码中用到了,那就不同了,可能一个方法在调试时用,但运营环境时就不需要了,如果调试日志的写入,可能只是调试时用,但运营时就不需要了,但运营时,可能对关键点也需要有日志记录。
看代码:
而这时,你在debug模式下,运行程序,如果调用了Logger方法,它会正确加载,但如果你使用release去发布或者调试,那么,Logger方法将不会
被执行,这种特性在我们开发中,经常用到。
感谢微软为我们开发者想的如何周到,呵呵。
调试模式
发布(生产,运营)模式
这就是VS为我们提供的两个模式,当然你也可以根据团队的需要去建立其它的模式,但我和小微认为没那个必要了,呵呵,下面来看看这两种模式在什么时候会用。
首先,如果你在代码中没有用到debug,release,那事实上它们在发布时,这两种模式没有区别,但如果你的代码中用到了,那就不同了,可能一个方法在调试时用,但运营环境时就不需要了,如果调试日志的写入,可能只是调试时用,但运营时就不需要了,但运营时,可能对关键点也需要有日志记录。
看代码:
/// <summary> /// 在调试时使用日志来记录所发生的事件 /// </summary> /// <param name="fmt"></param> /// <param name="args"></param> [Conditional("DEBUG")] static void Logger(string fmt, params object[] args) { Console.WriteLine("{0}", String.Format(fmt, args).Trim()); }
而这时,你在debug模式下,运行程序,如果调用了Logger方法,它会正确加载,但如果你使用release去发布或者调试,那么,Logger方法将不会
被执行,这种特性在我们开发中,经常用到。
感谢微软为我们开发者想的如何周到,呵呵。
相关文章推荐
- 将不确定变为确定~老赵写的CodeTimer是代码性能测试的利器
- Linux下的环境部署和项目发布
- JAVA_WEB项目(结合Servlet+jsp+ckEditor编辑器+jquery easyui技术)实现新闻发布管理系统第一篇:前期环境准备
- 在win 2008 R2环境下如何使用iis7.0正确发布ASP。NET项目
- 将不确定变为确定~transactionscope何时提升为分布式事务~SQL2005与SQL2008不同
- Linux 环境下用Tomcat 发布项目
- 将不确定变为确定~SQLSERVER是否可以进行位运算?
- Web.Config/Web.Debug.Config/Web.Release.Config 根据发布环境转换Web.Config
- 为什么发布到tomcat服务器上webapps里的文件名和项目名称不一样,该怎么修改??
- 利用ansible-playbook从测试环境获取tomcat中java项目新版本发布到生产环境
- 旧版本jboss6的部署环境的配置项目发布路径
- 项目发布Debug和Release版的区别
- 将不确定变为确定~LINQ查询包含对不同数据上下文上所定义项的引用
- 将不确定变为确定~接口应该是什么
- 将不确定变为确定~Razor视图中是否可以嵌套JS代码
- 将不确定变为确定~static被翻译成静态,你是否赞同
- 将不确定变为确定系列~目录(“机器最能证明一切”)
- 项目发布到服务器时为什么要将端口号改为80
- 为什么同样是pom文件里面的架包jar,显示的图标不一样。以及maven中snapshot快照库和release发布库的区别和作用
- LNMP 环境发布项目