Visual studio 2010 选择“时进行多次重建”;调试“启动新实例”;
我有一个大型的VisualStudio2010解决方案(~110个C#项目)。一个项目(我们称之为“A”)是一个控制台应用程序,它对其他项目和一些第三方程序集有大约6个依赖项 如果我构建项目“A”,它会按照预期构建依赖项 如果我右键单击项目“A”并选择Debug | Start new instance,它首先构建项目,然后继续构建大量其他项目。观察“输出”窗口,就好像它一直在重新启动这些其他项目及其依赖项的构建过程 问题在于,原始项目“A”在启动调试器之前不依赖于Visual Studio正在生成的这些其他项目(直接或间接) 这意味着启动调试器需要很长时间 我在其他一些项目中自定义了.csproj文件,但没有自定义“A”项目 通过msbuild生成的命令行都正常运行Visual studio 2010 选择“时进行多次重建”;调试“启动新实例”;,visual-studio-2010,msbuild,Visual Studio 2010,Msbuild,我有一个大型的VisualStudio2010解决方案(~110个C#项目)。一个项目(我们称之为“A”)是一个控制台应用程序,它对其他项目和一些第三方程序集有大约6个依赖项 如果我构建项目“A”,它会按照预期构建依赖项 如果我右键单击项目“A”并选择Debug | Start new instance,它首先构建项目,然后继续构建大量其他项目。观察“输出”窗口,就好像它一直在重新启动这些其他项目及其依赖项的构建过程 问题在于,原始项目“A”在启动调试器之前不依赖于Visual Studio正在
什么会导致Visual Studio执行此操作?这是由于MSBuild的引用链引起的。项目A依赖于项目B,项目B依赖于项目C,依此类推 您有两种选择:
Copy Local=true
。这个过程是构建过程中最耗时的过程之一。有时,只有最顶层的项目(.exe文件)具有“复制本地”属性是有意义的,因为lib项目无论如何都不会从它们自己的输出文件夹中运行属性
->配置属性
-默认情况下,每个项目都标记为生成。您可以从生成中取消选中不相关的项目。此设置将保存在.sln文件中,因此请确保您没有签入此修改-这可能会使您的CI生成失败- 要进一步分析生成过程,请增加MSBuild详细程度:
工具
选项
项目和解决方案
生成并运行
并设置为MSBuild项目生成输出详细程度
或详细
。这将帮助您跟踪构建输出的细微差别诊断
devenv-your.sln/build-Debug/out-vside.log
来持久化IDE输出。这只是一个命令行构建—与从内部构建解决方案的过程相同,而我描述的场景仅在您右键单击解决方案中的项目并选择“调试启动新实例”时发生。您找到解决此问题的方法了吗?我有完全相同的问题,我已经浪费了一天的时间试图解决这个问题?不是完全解决。我似乎通过从头开始重新创建一些项目(并重新添加项目引用)解决了这个问题。我这样做的理论是,.sln文件中的一些元数据可能被弄乱了。