相关疑难解决方法(0)

VBCSCompiler.exe的大量实例

我刚刚下载并安装了Visual Studio Professional 2015(14.0.23107.0).我第一次打开解决方案(28个项目)并执行构建 - >重建解决方案时,我的开发机器出现了绝对的爬行现象.CPU的最大值为100%,构建从未完成 - 即使在> 10分钟后也是如此.

我打开了Windows任务管理器并注意到:> 10个VBCSCompiler.exe任务正在运行.合并后,这些任务使CPU> 90%.

知道为什么有这么多这些任务在运行吗?有什么方法可以阻止这种情况发生?

这是我能遇到同样问题的其他人最接近的事情:https://github.com/dotnet/roslyn/issues/2790

更新(8/7)

-Hans Passant,很棒的想法.我的经理向我提供了这个版本(14.0.23107.0).这是"官方发布"的正确版本吗?我并没有故意安装任何Visual Studio 2015的每个版本.我不认为有任何beta版本.

-Kyle Trauberman,我对Visual Studio环境中的环境变量并不熟悉; 然而,我天真地跑了set DisableRosyln=true在VS(和MSBuild)命令提示符窗口中运行.这似乎没有任何影响.即使重启VS2015,VBCSCompiler.exe也会显示正确的备份.

我修复了我的VS2015安装并执行了重启.这没有用.

更新第2部分(8/7) Passant,非常令人印象深刻的写作!虽然这次问题没有发生,但我看了你描述的事情:

至于加载了VBCSCompiler.exe的模块,这就是我所拥有的:

在此输入图像描述

有趣的是,我们的.NET核心程序集有不同的版本.你的赔率是4.06.79,而我是4.06.81.

我的"客户端dll"(位于C:\ Program Files(x86)\ MSBuild\14.0\Bin\Microsoft.Build.Tasks.CodeAnalysis.dll)与您的版本和时间戳相同: 在此输入图像描述

奇怪的是,当我查看ILSpy中的代码时,我看到一些略有不同的东西 - 也许是优化?

    private static NamedPipeClientStream TryAllProcesses(string pipeName, int timeoutMs, CancellationToken cancellationToken, out string newPipeName)
{
    string str = pipeName;
    int num = 1;
    while (File.Exists(string.Format("\\\\.\\pipe\\{0}", pipeName)))
    {
        NamedPipeClientStream result;
        if ((result = BuildClient.TryConnectToProcess(pipeName, timeoutMs, cancellationToken)) != null)
        {
            newPipeName = pipeName; …
Run Code Online (Sandbox Code Playgroud)

.net c# roslyn visual-studio-2015

58
推荐指数
3
解决办法
3万
查看次数

标签 统计

.net ×1

c# ×1

roslyn ×1

visual-studio-2015 ×1