如何为每个项目配置设置不同的项目依赖项?

k0d*_*nd0 6 solution vcproj visual-studio

我想拥有不同的项目依赖项,具体取决于我目前正在构建的项目配置.

例如,我不想在Release配置中构建和链接SomeTestLib.vcproj,但我想在Debug中构建并链接到它.

一种解决方案,即sorta工作,是使用条件编译宏:

#ifdef DEBUG  
#pragma comment( lib, "SomeTestLib" )  
#endif
Run Code Online (Sandbox Code Playgroud)

但在这种情况下,调试器和IntelliSense不适用于SomeTestLib.
是否有我可以使用的.sln或.vcproj hack?
谢谢.

Dan*_*iel 7

在谷歌搜索了几天之后,我终于放弃了找到这个问题的解决方案并且吹了一个VS开发人员,他给了我这个问题的解决方法(实际上,我自己尝试了很多不同的东西来找到它).

显然,IDE不够智能,无法确定您是否已禁用给定配置下的特定库的构建,并且不会将该项目的输出添加到依赖于它的项目的链接器命令行.我相信你知道这一点.

但是,由于它只是将库项目的输出行粘贴到依赖项目的命令行中,因此将输出行设置为""将导致NOTHING被添加到依赖项目的链接器命令行中!

希望将来Visual Studio中可以解决这个问题.我保持乐观,因为它是我最喜欢的IDE,我总是对它支持的功能印象深刻.但是,我见过的一些VS帮助线程说这个bug是"按设计"的,所以也许他们不会修复它.但这似乎很容易做到.

无论如何,总结一下:

  • 在解决方案资源管理器中右键单击库项目,然后单击"属性".
  • 切换到您的库项目不为其构建的"配置/平台"对.
  • 选择"配置属性 - >库管理器 - >常规".
  • 对于"输出文件",键入""(即打开的parens,space,close parens).
  • 单击确定.

请注意,如果您构建或清理已禁用的库项目,此解决方法将为您提供错误.如果您只是构建解决方案,则会在禁用的配置上跳过它,因此您不会收到错误.

希望这可以帮助!

丹尼尔