0

可能重复:
#if Not Debug in c#?

我没有上传到服务器的权限,所以我无法测试#else 部分。我想知道这是否是根据是否处于调试(测试模式)或生产模式(#else 部分)有条件地选择要使用的驱动器号的理想方法

    #if (DEBUG)
     string driveLetter = "C:\\";
    #else
      string driveLetter = ConfigurationManager.AppSettings["ProdDrive"]; 
    #endif
4

4 回答 4

1

作为替代方案,考虑因为您使用的是配置文件,只需根据调试与否修改配置文件。虽然调试版本通常不会部署在生产环境中,但它们可以用来追踪其他不可重现的问题。

于 2013-01-02T16:47:43.410 回答
0

是的你可以。

这是我从这个 msdn 链接中提取的一些示例代码:

// preprocessor_if.cs
#define DEBUG 
#define MYTEST
using System;
public class MyClass 
{
    static void Main() 
    {
#if (DEBUG && !MYTEST)
        Console.WriteLine("DEBUG is defined");
#elif (!DEBUG && MYTEST)
        Console.WriteLine("MYTEST is defined");
#elif (DEBUG && MYTEST)
        Console.WriteLine("DEBUG and MYTEST are defined");
#else
        Console.WriteLine("DEBUG and MYTEST are not defined");
#endif
    }
}
于 2013-01-02T16:45:01.777 回答
0

您可以添加此代码

#define ANOTHERVALUE

注意:删除#define DEBUG

于 2013-01-02T16:47:49.153 回答
0

扩展@Mike.Beeler 的答案,我强烈建议您为此使用Slow Cheetah。Slow Cheetah 根据当前构建配置为您的项目提供任何 XML(包括 .config)文件的 XML 转换。

最常见的用途是自动设置正确的数据库连接字符串,但您也可以使用它来设置应用程序设置。

这是 Microsoft 员工提供的免费 VS 扩展

http://visualstudiogallery.msdn.microsoft.com/69023d00-a4f9-4a34-a6cd-7e854ba318b5

于 2013-01-02T17:34:47.157 回答