我有一个基础库来维护多个版本。每当我需要在另一个版本上工作时,我都会进行 SVN 切换。
我的测试应用程序解决方案没有多个版本,所以我认为对于不同的版本,我可以进行多个解决方案/项目配置,为版本定义符号,以便在我的测试中拥有特定于版本的代码。
目前我在测试应用解决方案中有以下构建配置:Debug、Release、DebugV10、ReleaseV10、DebugV15、ReleaseV15。在 *V10 和 *V15 配置中,我为具有特定于版本的测试代码的两个项目创建并选择了相应的 *V10 和 *V15 PROJECT 配置(并非针对所有项目,大多数在解决方案 -Vx 中运行正常的调试/发布配置配置)。
在那些项目配置中,我输入了相应的条件编译符号(VERSION10 和 VERSION15)。
现在在我的项目代码中,我喜欢
#if VERSION10
// do v1.0 stuff
#elif VERSION15
// do v1.5 stuff
#else
// do trunk stuff
#endif
但显然 VS 无法识别这些符号。即使是一个简单的#if DEBUG 不再起作用,在所有 Debug* 项目配置中都会检查所有定义的 DEBUG 常量。
这是众所周知的事情吗?我能做些什么呢?