我的工作环境是我在Visual Studio中有两个解决方案。每个解决方案都将构建不同的应用程序。他们每个人都有启动项目,即每个项目的UI,两个解决方案都使用相同的项目(来自其他存储库)作为功能的基础结构。
然后每个解决方案都包含一个UI项目,以及一个构建DLL的非UI项目。
由于应用程序不同(每个应用程序都是针对不同的客户),并且每个应用程序都将启用某些功能,但不是所有功能,并且我不想使用所有代码编译非UI DLL ,我需要能够只使用每个应用程序所需的代码来编译解决方案。
更准确地说,假设基础项目(DLL)有三个特征:A,B和C. 我希望能够配置解决方案,因此UI项目1仅使用功能A和B编译DLL,而UI项目2仅编译启用了功能C的DLL。
你能指出我正确的方向来实现这个目标吗?
先谢谢大家!
答案 0 :(得分:0)
试着看看这个。
带#elif,#else和#endif指令的#if指令控制源文件各部分的编译。如果您编写的表达式(在> #if之后)具有非零值,则紧跟在#if指令>之后的行组将保留在翻译单元中
来自MSDN
#if defined(FEATUREONE)
feature1();
#elif defined(FEATURETWO)
feature2();
#else
Default();
#endif