【问题标题】:How to leave certain lines out of build using visual studio?如何使用 Visual Studio 将某些行排除在构建之外?
【发布时间】:2012-07-31 12:16:17
【问题描述】:

我是 C# 和 Visual Studio 的新手,这可能是一个愚蠢的问题,但我必须找到答案。我的问题是,如果我在调试模式下构建某些代码行(在我的情况下为 MessageBox.Show(...)),是否可以区分调试和发布构建,但如果我构建则被忽略在发布模式下?

【问题讨论】:

    标签: c# visual-studio


    【解决方案1】:

    将代码行包装在#if DEBUG 语句中:

    #if DEBUG
        MessageBox.Show("Message");
    #endif
    

    如果您想在发布时做不同的事情,那么您可以:

    #if DEBUG
        MessageBox.Show("Message");
    #else
        // Write to log file
    #endif
    

    Source

    【讨论】:

      【解决方案2】:

      您可以使用编译器指令“#if DEBUG”后跟“#endif”,这样您的代码将仅在调试模式下编译。

      在此处查找更多详细信息:
      http://msdn.microsoft.com/en-us/library/4y6tbswk.aspx

      【讨论】:

        【解决方案3】:

        除了#if DEBUG,您还可以使用System.DiagnosticsDebug 类的Assert 静态方法进行检查,如果值错误则显示消息框。例如:

        Debug.Assert(IsValid);
        

        如果 IsValid 为 false,将在调试版本中显示一条消息。

        【讨论】:

          【解决方案4】:

          您可以在项目的属性中指定不同的条件编译符号(一篇文章hereMSDN documentation for Visual Studio)。然后,使用条件编译很容易包含/排除某些行。像这样:

          #if DEBUG
              MessageBox.Show(...);
          #end
          

          【讨论】:

            【解决方案5】:

            是的,你可以使用

            #if DEBUG
                MessageBox.Show....
            #endif
            

            如果您检查构建版本,您会发现您在项目中定义了变量:DEBUG 仅在调试版本中定义。 如果你愿意,你也可以使用

            来切换行为
            #if DEBUG
                MessageBox.Show....
            #else
                // do something else here in release mode
            #endif
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2019-02-19
              • 1970-01-01
              • 2017-06-13
              • 1970-01-01
              • 2012-06-09
              • 2019-10-04
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多