我有一堆单元测试需要根据 Windows 操作系统版本进行条件编译。
此单元测试正在测试仅在 Windows Vista 及更高版本中可用的 TxF。
#if WIN_OS_VERSION >= 6.0
// Run unit tests
#endif
我认为没有办法根据操作系统版本有条件地编译代码。 #define 的文档指出(重点是我的):
可以使用符号来指定
编译条件。你可以
使用#if 或#elif 测试符号。
您还可以使用条件属性来执行条件编译。
您可以定义符号,但不能为符号指定值。#定义
在使用任何指令之前,指令必须出现在文件中
这也不是指令。
您还可以使用 /define 编译器选项定义符号。你可以
使用#undef 取消定义符号。
使用 /define 定义的符号
或与 #define 不冲突
同名的变量。那是,
不应传递变量名
到一个预处理器指令和一个
符号只能由
预处理指令。
使用#define 创建的符号的范围是定义该符号的文件。
你必须有条件地run相反:
void TestTxF() {
if (System.Environment.OSVersion.Version.Major < 6) {
// "pass" your test
}
else {
// run it
}
}
Update:
这已被问到before https://stackoverflow.com/questions/408908/conditional-compilation-depending-on-the-framework-version-in-c.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)