2个回答
展开全部
在Visual Studio中,最基础的编译模式有2中,Debug与Release.这也是默认的两种方式,在新建一个project的时候,这两种模式就已经存在。
我们也可以点击那个Configuration Manager按钮,去自己创建一个新的编译模式。在创建这个编译模式的时候,会问你是否要继承自现在已有的某个,可以选择Debug或者Release,也可以什么都不选,这个继承指的是一些编译的方式,比如说是否要优化代码什么的。
那么Debug与Release编译模式到底有着什么样的区别?我们可以到Project的属性中查看。在Build选项卡,我们可以看到Debug模式的具体的内容。最主要的是那个Optimize code选项没有勾选,这样就没有压缩dll,也就是说这里还是含有一个调试信息的,可以对程序进行调试。如果选择了Release模式,默认是勾选了这个选项,就会对dll进行压缩,这样之后的dll会变得很小,但是就不能调试了。(当然也可以把Release模式下的压缩dll选项取消,这样做可以,但是没有任何意义了,因为Release模式本应该就是要压缩的,干嘛把默认的取消,非要逆着正常人思维做事。)
看上边这个选项页,还有就是定义了DEBUG与TRACE的常量,这个常量是给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的时候,也会涉及到Debug,Release,或者其他自定义的模式,比如说DeployToQA(继承返举自Release),因为创建VS的一键部署的时候,需要选择一种模式,这样VS才知道把哪种编译的dll放到server上边。
而且,VS最新推出了一种Web.config的transform语法方式,你选择了何种编译模式,就要到Web.config的同一目录下边,找到Web.DeliveryInDev.config文件,然后用相应的语法来编写这个文件,大致意思就是,以Web.config为模板,不过替换其中一些节点的内容,比如说,把database改为QA的数据库的地址等。
---------------------
我们也可以点击那个Configuration Manager按钮,去自己创建一个新的编译模式。在创建这个编译模式的时候,会问你是否要继承自现在已有的某个,可以选择Debug或者Release,也可以什么都不选,这个继承指的是一些编译的方式,比如说是否要优化代码什么的。
那么Debug与Release编译模式到底有着什么样的区别?我们可以到Project的属性中查看。在Build选项卡,我们可以看到Debug模式的具体的内容。最主要的是那个Optimize code选项没有勾选,这样就没有压缩dll,也就是说这里还是含有一个调试信息的,可以对程序进行调试。如果选择了Release模式,默认是勾选了这个选项,就会对dll进行压缩,这样之后的dll会变得很小,但是就不能调试了。(当然也可以把Release模式下的压缩dll选项取消,这样做可以,但是没有任何意义了,因为Release模式本应该就是要压缩的,干嘛把默认的取消,非要逆着正常人思维做事。)
看上边这个选项页,还有就是定义了DEBUG与TRACE的常量,这个常量是给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的时候,也会涉及到Debug,Release,或者其他自定义的模式,比如说DeployToQA(继承返举自Release),因为创建VS的一键部署的时候,需要选择一种模式,这样VS才知道把哪种编译的dll放到server上边。
而且,VS最新推出了一种Web.config的transform语法方式,你选择了何种编译模式,就要到Web.config的同一目录下边,找到Web.DeliveryInDev.config文件,然后用相应的语法来编写这个文件,大致意思就是,以Web.config为模板,不过替换其中一些节点的内容,比如说,把database改为QA的数据库的地址等。
---------------------
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询