【发布时间】:2013-07-10 15:09:20
【问题描述】:
我最近在使用 Visual Studio 2012 时遇到了一个相当奇怪的问题:
- 项目 A(C++ DLL)引用项目 B(C++ 静态库)。没有 CLR。
- 项目 A 被设置为我的启动项目(它有一个调试命令行集)。
- 更改项目 B 中的文件并按 CTRL+F5 后,VS2012 在启动之前不会构建项目 A。它确实构建了项目 B!
我已经采取的研究步骤:
- 更改项目 C 中的文件后,A 或 B 均未引用该文件后,CTRL+F5 既不构建 A 也不构建 B。这是预期的。
- 更改项目 A 本身中的文件后,CTRL+F5 构建 A。这是预期的。
- 我已经能够通过项目 A' 和依赖项 B' 重现此问题。
- 配置管理器:所有项目都设置为在我的工作配置中构建。
- VS 选项:
- “在运行时,当项目过期时:”=“始终构建”。
- “仅在运行时构建启动项目和依赖项”被选中。没有它,它只会在运行项目 A 时构建我整个庞大的解决方案,这几乎不是我想要的。
我还应该注意到,我们最近从 Visual Studio 2010 升级(我们没有遇到这个问题)。
我的想法很新鲜。有人吗?
【问题讨论】:
-
更改项目 A 中的文件后,CTRL+F5 构建 B。这是意料之中的这完全出乎我的意料。根据您的描述,B 不依赖于 A。因此,A 中的任何更改都不应导致 B 中的重建。
-
@stonemetal,你是绝对正确的。这是一个错字:)