Visual Studio 2012打开时编译速度慢

Sam*_*les 12 c# visual-studio-2010

下午所有,

我有一个非常奇怪的问题.当VS 2012打开时,编译时间非常慢.通过VS和/或直接通过命令行中的csc.exe构建时,此编译时间较慢.

要测试:使用以下项创建一个文件夹:

批处理文件(compile.bat)包含:

echo %time%
csc /target:library class1.cs
echo %time%
Run Code Online (Sandbox Code Playgroud)

和class1.cs包含:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ClassLibrary1
{
    public class Class1
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

现在打开visual studio命令提示符.导航到上面的文件夹并运行批处理命令,而不打开VS. 在我的机器上,这大约需要10毫秒,非常完美.

我现在打开VS 2012,打开没有解决方案,除了打开应用程序以便devenv正在运行之外什么都不做.

现在通过运行批处理文件重复测试,编译时间现在是10000ms(10秒).

我已经检查了事件查看器,查看当VS打开时发生的任何事情,但是当它关​​闭时,使用procmon和filemon查找文件访问并检查VS是否在打开时启用任何服务,所有这些都没有成功/影响.

我甚至尝试卸载并重新安装VS,这解决了前几个版本的问题,但随后又重新出现了.重新启动机器无效.我在VS中没有安装插件.

我的同事机器不显示此问题,并且它们具有相同的设置.这一切都在16GB RAM,64位win 7和SSD的机器上运行.

有人有任何线索吗?

Sam*_*les 13

我已经弄清楚了.我相信这是一些恶意软件的结果.我通过以下步骤诊断出问题.

  1. 下载ProcMon(http://technet.microsoft.com/en-gb/sysinternals/bb896645.aspx)
  2. 在进程名称上为ProcMon添加过滤器:csc.exe
  3. 然后我从命令行运行编译,打开visual studio.花了大约10秒,太长了!看一下ProcMon窗口中的输出,我注意到看起来csc.exe暂停5秒,一次朝向跟踪的开始,一次到达结束.请参阅以下屏幕:

开始:

开始

结束:

结束

似乎RegLoseKey到HKLM\SOFTWARE\Wow6432Node\5c28f8fbc6fe942导致csc.exe等待5秒,两次.

REGKEY:

REGKEY

然后我决定重命名这个条目(将_old添加到结尾),然后重新编译.... BINGO,它编译时间不到30ms!

在研究了这个密钥中包含的条目和一些google之后,结果发现这个reg密钥是一些恶意软件的结果.我使用以下指南删除了恶意软件,现在问题已经彻底解决了.

http://www.explosiveknowledge.net/main/2012/08/19/browsemngr/

请注意,上面的指南不包含正确的reg条目,我认为病毒必须在某个时候进行了调整,我找不到指南中提到的reg条目,只是删除了我找到的那些.

请注意,reg键的5c28f8fbc6fe942部分似乎是随机生成的.如果你有这个问题可能会有所不同,但其中包含的值仍将讨论"浏览器管理器".

希望这有助于某人!