可能我们的一个项目(项目是指vs中的项目,即一个工程)会用于多个产品(或部署在多个平台),这时我们可以在解决方案中新建一个解决方案配置,来管理针对不同产品(或不同平台的生成配置),可以参见http://chinazhangsheng.spaces.live.com/blog/cns!AA19ACBAE981AA43!1589.entry?&_c02_vws=1一文。
可能针对不同的产品(或不同的平台),项目中的某些代码会不相同,那要怎样来生成不同的版本呢,如果针对每个版本保存一份源代码,浪费空间不说,上面我们新建的解决方案配置也没多大用处了。有人会说,出现这种情况表明重构的时候到了,这也是一个解决办法,不过有时候不同版本就一两句话的差别,怕是没必要,而且有的地方重构的思想会跟整个解决方案的思想相违背。还有一种办法就是使用编译器指令来生成不同版本。主要是使用#if 以及 #else、#elif、#endif这几个指令。如:
#if DEBUG
Console.WriteLine("Debug version");
#endif
为了能形象区分我们的版本,很多时候我们需要自定义添加编译符号(上例中的“DEBUG”就是条件编译符号)。条件编译符号的设置位置是:项目属性》生成》条件编译符号
如果我们把条件编译符号设为:“AAA”,则上例可以写为
#if AAA
Console.WriteLine("Debug version");
#endif
这样,我们就可以用编译器指令来让不同的解决方案配置编译不同的代码块了