您所提到的称为#define,一个编译时间常数。这些定义需要被定义。(duh !!),如果未定义,则为空,因此表达式失败。您最初的链接示例是C ++的,因此自然不会在C#中为您定义。
在内部,Visual Studio使用MSBuild进行项目的实际编译(然后,MSBuild调用编译器)。您正在使用的Visual Studio版本不适用于MSBuild。甚至试图用一个预先构建宏将因为那是的MSBuild / TFSBuild的上下文中执行,在那个时间点Visual Studio是不是范围内不工作。
我还应该指出,您已经将Visual Studio版本与编译器版本混淆了-并且编译器版本本身也不能作为定义使用。
你最好的选择是创建和使用自定义的MSBuild / TFSBuild构建定义,然后你可以设置这些#define语句作为参数来构建,你还可以控制被调用哪个编译器(尽管这是太复杂,表现出作为一个答案在这里) 。您将有一个针对C#6编译器的构建定义,而一个针对默认编译器的构建定义。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句