为什么visual studio 2017不能选debug和release?

??有大佬知道怎么回事吗?... ??
有大佬知道怎么回事吗?
展开
 我来答
heart阿飞55
2018-10-22 · TA获得超过1086个赞
知道大有可为答主
回答量:3030
采纳率:82%
帮助的人:555万
展开全部
在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的数据库的地址等。
---------------------
dibigan0
2018-10-20 · 超过14用户采纳过TA的回答
知道答主
回答量:103
采纳率:28%
帮助的人:29.4万
展开全部
赠内人(张祜)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式