当前位置:  开发笔记 > 编程语言 > 正文

可以在Release中构建后执行#if DEBUG吗?

如何解决《可以在Release中构建后执行#ifDEBUG吗?》经验,为你挑选了2个好方法。

正在进行安全性讨论,以确定下面的以下DEPLOYED代码是否可以到达或"提升"到......即使它是在RELEASE模式下构建的.

思考?

编辑:
我在DotPeek中"看到"它 - 即使在发布后构建.

但是,该文件是"灰显的"

这是否意味着它不会执行?

DotPeek只是"反编译"代码......它没有显示它内置的模式中存在什么代码......对吗?

代码看起来像:

    using System;
    using System.ServiceProcess;

    static class Program
    {
        /// 
        /// The main entry point for the application.
        /// 
        static void Main()
        {
#if DEBUG
            var myservice = new StpListener();
            myservice.OnDebug();

            //KEEP the service alive
            System.Threading.Thread.Sleep(System.Threading.Timeout.Infinite);
#else
            ServiceBase[] ServicesToRun;
            ServicesToRun = new ServiceBase[] 
            { 
                new StpListener() 
            };
            ServiceBase.Run(ServicesToRun);
#endif
        }
    } 

Jamiec.. 5

不要将调试/发布配置与条件代码混淆.完全可以将DEBUG条件属性应用于释放模式配置.

看,我是邪恶的!

在此输入图像描述

请参阅:#if DEBUG运行时



1> Jamiec..:

不要将调试/发布配置与条件代码混淆.完全可以将DEBUG条件属性应用于释放模式配置.

看,我是邪恶的!

在此输入图像描述

请参阅:#if DEBUG运行时



2> Damien_The_U..:

这是一个编译时功能.一旦编译器完成了它的工作,你就可以#if和之间使用代码,#else 或者#else和之间使用代码#endif.

你永远不会(只要你留下这些项目)产生一个包含两组代码的二进制文件.


您还应该补充一点,DEBUG仍然可以在项目配置中的Release下定义,因此它实际上是可行的.
推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有