[VS.NET]條件式編譯符號(Conditional compilation symbols)

使用條件式編譯符號(Conditional compilation symbols)時,RELEASE居然沒效?
是什麼問題呢?

我們在程式中可以使用 條件式編譯符號 ,例如,當專案是debug時,要做什麼事;而Release時,要做那些事。

以下用簡單的Code來說明,

private void button1_Click(object sender, EventArgs e)
{
	var s = string.Empty;
	#if DEBUG
		s = "debug";
	#elif RELEASE
		s = "release";
	#else
		s="non-debug and non-release";
	#endif
	Console.WriteLine(s);
}

筆者專案預設是Debug,所以s的值會是"debug",如下,

image

 

當我們將專案切換到Release時,您會發現,s的值居然變成了"non-debug and non-release",如下,

image

 

那是因為,專案中,Release時,並沒有設定條件式編譯符號

image

image

所以這時,我們可以開啟專案屬性,切到Build的Tab,然後將RELEASE填入,如下,

image

 

存檔後,再切到Source檔來看,就會發現s字串的值,已經變成了"release"了,如下,

image

 

參考資料

C# Tips and Traps

條件式編譯符號

Hi, 

亂馬客Blog已移到了 「亂馬客​ : Re:從零開始的軟體開發生活

請大家繼續支持 ^_^