Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio VisualStudio在构建期间不断挂起_Visual Studio_Visual Studio 2012_Build_Msbuild_Deadlock - Fatal编程技术网

Visual studio VisualStudio在构建期间不断挂起

Visual studio VisualStudio在构建期间不断挂起,visual-studio,visual-studio-2012,build,msbuild,deadlock,Visual Studio,Visual Studio 2012,Build,Msbuild,Deadlock,大概在我构建解决方案的25%到50%的时候,我会看到: “” 我讨厌这扇窗户,我无法形容。它永远不会解决问题,取消按钮永远不会启用,唯一的补救方法是终止devenv进程并再次加载整个解决方案,因为我完全知道我没有修复任何问题,并且在尝试构建时也会看到同样的情况 我的解决方案总共是大约60个项目,其中大部分是C#类库,每个都有一些web应用程序、web服务和控制台应用程序。然而,即使在卸载了大部分(50)项目的情况下构建代码库的一部分,问题仍然存在 我的问题是,输出窗口在冻结时没有告诉我任何信息,

大概在我构建解决方案的25%到50%的时候,我会看到:

“”

我讨厌这扇窗户,我无法形容。它永远不会解决问题,取消按钮永远不会启用,唯一的补救方法是终止devenv进程并再次加载整个解决方案,因为我完全知道我没有修复任何问题,并且在尝试构建时也会看到同样的情况

我的解决方案总共是大约60个项目,其中大部分是C#类库,每个都有一些web应用程序、web服务和控制台应用程序。然而,即使在卸载了大部分(50)项目的情况下构建代码库的一部分,问题仍然存在

我的问题是,输出窗口在冻结时没有告诉我任何信息,我也不知道如何确定锁定的原因。如果我猜猜的话,我会假设这是文件系统中的死锁或其他什么,但我不知道如何证明这一点——更不用说如何防止它了


我能做些什么来诊断并从我的解决方案中消除它,这样我就再也看不到它了?一般来说,如何诊断构建过程中出现的问题?

有人建议建模项目负责冻结。我从我们的解决方案中删除了一个建模项目,从那以后(大约一周)我就没有遇到过冻结的情况。

我在大型项目中看到过这种情况,当时MSBuild正在运行且诊断开关处于打开状态。在VisualStudio中,转到“工具”/“选项”/“项目和解决方案”/“生成并运行”,然后检查MSBuild项目生成输出详细度值。如果未将其设置为最小值,请尝试将其设置为最小值,然后查看您的生成是否能够完成。

遇到类似问题,VS将挂起45秒左右,然后将生成时间设置为4秒并完成。挂起的45秒不会产生任何GUI输出,VS将挂起

使用ProcMon,我可以通过devenv.exe在/packages/文件夹上看到300多万个文件操作,当我构建此项目时(并将在之后继续一段时间)!!构建的第一步,您可以看到它正在检查每个包,以查看是否需要执行包还原(它没有)

由于我倾向于将一切都归咎于NuGet,所以我禁用了Visual Studio->Options->NuGet Package Manager->General下的NuGet Package Restore“允许NuGet下载丢失的软件包”复选框。令我高兴的是,建造速度非常快。总共5秒

事实证明,我们已经启用了“在构建时启用包还原”(我认为现在在VS中默认为启用),并且我们还将包签入了源代码管理。似乎这会导致TFS以某种方式猛击。。。检查还原包必须触发TFS以执行某些源代码管理操作检查

仅供参考,这是VS2013更新4-Nuget版本:2.8.50926.663。。在NumberOfProjects=38的sln上,但我可以重新创建此挂起,只需构建一个具有2个依赖项的csproj

更新:

SccNumberOfProjects=53的Sln上的Localhost“全部重建”时间为7:05,visual studio冻结/无响应时间为2分钟

  • 在2芯i5上降到4:14,无冻结
  • 在4芯i7上降至2:44

另外:这是在一台带有各种文件监视程序安全工具的机器上进行的,可能不会给整个过程增加任何速度。。。这可能要归咎于此。

对我来说,问题在于一个在构建时自动运行T4模板的扩展(AutoT4)。在使用EF解决方案时禁用它解决了这个问题。

在我的案例中,将“并行项目生成的最大数量”设置为1有点帮助(即,从干净状态生成项目会导致1分钟冻结,然后进行正常生成,并且每个后续生成都可以正常工作)


上述设置可以在
工具->选项->项目和解决方案->构建和运行

中设置,就像管理员为我解决了问题一样!(如管理员所见,始终运行程序)

我将我的VS 2008开发平台从Windows 7移动到了Windows 10,并且遇到了这样一种情况:每当我尝试构建大型项目时,Visual Studio都会挂断。我必须构建项目,然后使用任务管理器杀死VS,然后重新启动。不用说,这使得调试非常困难!无论如何,问题是,在移动到Win 10时,VS不再以管理员身份运行(Win 10可能更注重特权)。更改属性以使程序以管理员身份运行解决了此问题。(IngoB——我没有足够的地位对你的帖子发表评论,但感谢你指出这一点!)

我发现Visual Studio在构建更大的项目上悬而未决。原来是雷夏普。关闭后:工具->选项->重新竖琴->立即挂起,一切正常无问题(即使在非常大的解决方案上,100多个项目上)

只需在管理模式下尝试下面的命令。在运行此命令之前,请确保关闭所有VS实例

devenv /resetuserdata
注意:devenv位于C:\Program Files(x86)\Microsoft Visual Studio 14.0\Common7\IDE

,此外,它解决(或几乎解决)了生成的此问题:

除了构建期间的问题外,我还遇到了包管理控制台的问题。等了大约一分钟。使用procmon,我发现每次打开此窗口时都会解析NuGet repository文件夹(非常聪明,Microsoft!)。这个文件夹中大约有1000个包。从上面的文件夹中删除所有内容后,性能问题就消失了


请注意,我的回答与VS 2015有关(可能在下面)。我没有测试,但怀疑在VS 2017中应该可以。对我来说,这与自动运行的npm软件包安装有关。我进入工具>选项>项目和解决方案>外部Web工具并取消选中所有ext