C# preprocessor directives 可以在代码文件以外的地方使用吗?
我知道如何在代码文件中使用它们,这是MSDN-Pages中的示例:
// 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
}
}
是否可以在XML(或其他非代码)文件中使用#if
来为调试和发布提供不同的数据?例如:
<coustomXml>
#if DEBUG
<item>debugdata</item>
#else
<item>releaseData</item>
#endif
</coustomXml>
我用我项目的app.config尝试了这个,但编译器忽略了这些标志。
答案 0 :(得分:2)
不可能使用编译器指令,但您可以根据构建类型使用config transofrmations: