Visual Studio中Debug与Release编译模式的区别以及Preprocesor directives的使用

Visual Studio中,最基础的编译模式有2中,DebugRelease.这也是默认的两种方式,在新建一个project的时候,这两种模式就已经存在。



我们也可以点击那个Configuration Manager按钮,去自己创建一个新的编译模式。在创建这个编译模式的时候,会问你是否要继承自现在已有的某个,可以选择Debug或者Release,也可以什么都不选,这个继承指的是一些编译的方式,比如说是否要优化代码什么的。


那么DebugRelease编译模式到底有着什么样的区别?我们可以到Project的属性中查看。在Build选项卡,我们可以看到Debug模式的具体的内容。最主要的是那个Optimize code选项没有勾选,这样就没有压缩dll,也就是说这里还是含有一个调试信息的,可以对程序进行调试。如果选择了Release模式,默认是勾选了这个选项,就会对dll进行压缩,这样之后的dll会变得很小,但是就不能调试了。(当然也可以把Release模式下的压缩dll选项取消,这样做可以,但是没有任何意义了,因为Release模式本应该就是要压缩的,干嘛把默认的取消,非要逆着正常人思维做事。)

 


 

看上边这个选项页,还有就是定义了DEBUGTRACE的常量,这个常量是给Preprocessor使用的,也就是在VS中常见的#开头的那些东西。这里是定义了DEBUG这个常量,那么在Debug模式下编译这个程序,也就是说在Start那个框后边选择了Debug之后,下边的这句Console.WriteLine才会被编译到dll中,才会被CLR执行。如果是Release模式,就不会被编译与执行。

 

#ifDEBUG
    Console.WriteLine("Debugversion");
#endif

 

这是MSDN中所有的Preprocessor的列表:https://msdn.microsoft.com/en-us/library/ed8yd1ha.aspx

 

如果是一个Website的项目,在项目publish的时候,也会涉及到DebugRelease,或者其他自定义的模式,比如说DeployToQA(继承自Release),因为创建VS的一键部署的时候,需要选择一种模式,这样VS才知道把哪种编译的dll放到server上边。

 

而且,VS最新推出了一种Web.configtransform语法方式,你选择了何种编译模式,就要到Web.config的同一目录下边,找到Web.DeliveryInDev.config文件,然后用相应的语法来编写这个文件,大致意思就是,以Web.config为模板,不过替换其中一些节点的内容,比如说,把database改为QA的数据库的地址等。


  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值