Visual studio 在启动项目进行调试时,为什么VisualStudio要构建整个解决方案而不仅仅是项目?

Visual studio 在启动项目进行调试时,为什么VisualStudio要构建整个解决方案而不仅仅是项目?,visual-studio,unit-testing,debugging,Visual Studio,Unit Testing,Debugging,在VisualStudio中,如果选择“启动调试”或“启动而不调试”来运行当前选定的启动项目,VisualStudio将始终生成整个解决方案。这似乎没有必要,因为它真正需要做的就是构建您希望启动的项目及其依赖项 例如,如果您有一些单元测试项目,则在所有单元测试项目也编译之前,您无法运行启动项目。至少,构建所有这些单元测试项目是浪费时间的,因为希望运行的项目无论如何都不会依赖它们 有可能改变这种行为吗?是的,你可以改变这种行为(出于你描述的确切原因,我总是这样做) 转到Tools>Options>

在VisualStudio中,如果选择“启动调试”或“启动而不调试”来运行当前选定的启动项目,VisualStudio将始终生成整个解决方案。这似乎没有必要,因为它真正需要做的就是构建您希望启动的项目及其依赖项

例如,如果您有一些单元测试项目,则在所有单元测试项目也编译之前,您无法运行启动项目。至少,构建所有这些单元测试项目是浪费时间的,因为希望运行的项目无论如何都不会依赖它们


有可能改变这种行为吗?

是的,你可以改变这种行为(出于你描述的确切原因,我总是这样做)


转到
Tools>Options>Projects and Solutions>Build and Run
。然后选中“仅在运行时生成启动项目和依赖项”。

在我的例子中,这已经被选中,但仍然没有生成。VS 2012只构建了主(启动)项目,但没有任何依赖项。它发现这是因为
ConfigurationManager
中的
activeconfiguration
设置为仅构建主(启动)项目

转到
Build
ConfigurationManager

确保选中了要构建的所有项目,如下面的屏幕截图所示


Visual Studio 2012 RTM中的仅供参考现在默认选中了此选项。事实上,我刚刚发现我和我的一些同事在VS 2012上未选中此选项。可能是在安装VS之后,因为我们都不记得用这个设置做过任何事情。我认为这与所问的问题无关。