0
C# preprocessor directives可以在代碼文件中使用嗎?預處理指令是否可以在代碼文件之外使用?
我知道如何在代碼文件中使用它們,這裏是從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
}
}
是否可以使用XML #if
(或其他非代碼)的文件有不同調試和發佈的數據?例如:
<coustomXml>
#if DEBUG
<item>debugdata</item>
#else
<item>releaseData</item>
#endif
</coustomXml>
我試過這與我的項目的app.config,但編譯器忽略標誌。
如果您的XML處理器已經擴展了C#預處理,然後是。但是,因爲這不太可能,不。你可以編寫一個xslt變換來做到這一點。 – KevinDTimm
我不使用xml處理器,xml文件是我的visual-studio項目的一部分。 – Turbofant