200を超えるプロジェクトと数千のファイルを含む非常に大きなソリューションがあります。それにもかかわらず、ソリューションは2012年と同様にVisual Studio 2010でも非常に迅速にロードされていました。しかし、SVNリポジトリ全体を別の場所にコピーした後、ソリューションのロードとクローズに突然時間がかかりました。 (私はここで30-60分話しています!)
自分で解決策を見つけたので、ここでそれを共有したいと思いました。誰かの研究にかなりの時間を費やすことを期待し、「解決策の準備...」ダイアログを見つめました。
Process Monitorを使用してdevenv.exeプロセスを調べると、.svn
ディレクトリへのアクセスが非常に忙しいことがわかりました。ここに私がやったことがあります(そしてこれが何らかの形で問題を解決しました):
*.suo
ファイルを削除します。これは、ソリューション自体と同じフォルダーにあります。 注:現在開いているファイル、ブレークポイント、ブックマーク、現在のソリューション構成とプラットフォーム(例:デバッグx86)など、ソリューションのいくつかの設定が失われます。これらの手順のどれが実際に問題を解決したのかわかりません。おそらく、これらのすべての手順が必要というわけではありませんが、どの手順を省略できるかを見つけるために問題を再現したくありませんでした。 :)
それらのどれも私を助けてくれませんでした、私がやったこと...私はsysinternalsのProcMonで監視し、devenvをフィルタリングし、fussionlogのエントリをたくさん見ました。私は数週間前にデバッグ目的でfussionlogを有効にしていたので、それを無効にすることを考えていませんでした。 fussionlogを無効にするだけで、ソリューションがより速く開きました。
Visual Studioをセーフモードで開き、プロジェクトを開いた後にプラグインとソース管理の設定を確認できます。セーフモードとは、「Visual Studioを起動し、既定の環境とサービスのみを読み込む」ことを意味します。
どうやって :
devenv /SafeMode
またはあなたの道に従って
"C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe" /SafeMode
私の場合、以下の手順は介入ステップを示唆することなく機能しました。
私の場合、設定を変更したりファイルを削除したりする必要なしに、問題解決策を非常に迅速にロードするのにこれですべてでした。
ちなみに、これは遅いエントリであることがわかりましたが、多数のブレークポイントを削除(削除)するだけで、過剰なロード時間とコンパイル時間を解決できることがわかりました。このアクションにより、.suoファイルのサイズが214MBから977KBに縮小されました。 VSに.suoファイル自体を処理させます。 35のプロジェクトを含むソリューションでは、コンパイルとロードに5〜10分ではなく1分未満かかります。 Visual Studio 2012 Pro、アップデート4。
上記を試しましたが、問題は解決しませんでした。
この問題をどのように回避したかを以下に示します。うまくいけば、一部のユーザーにもうまくいくと思います。
他の答えはどれも私にとってはうまくいきませんでした。 CIのコンパイル時間は問題ありませんでしたが、Visual Studioでソリューションをロードするのに2分近くかかりました。 VSは、次にソリューションを閉じて開くまで正常に動作します。 VSの異なるバージョンはすべて同じ問題を示し、セーフモードとsuoの削除の両方は役に立ちませんでした。
最終的に http://geekswithblogs.net/akraus1/archive/2014/04/30/156156.aspx のアドバイスに従って、Windowsパフォーマンスレコーダーを使用してVSをインスツルメントし、問題を見つけました。 「CPU Usage(Sampled)」セクションの下にあるWindows Performance Analyzerを見て、「Stack(Frame Tags)」列を追加することで、devenv.exe
の使用状況を調べることができました。
Microsoft.VisualStudio.Platform.WindowManagement.ni.dll
23がコールダウンし、最終的にはMicrosoft.VisualStudio.ServerExplorer.dll
とMicrosoft.VisualStudio.Data.Package.dll
を呼び出したカウントによりホットパスが判明します。そのため、UIのサーバーエクスプローラーを見て、[データ接続]タブを開くようになりました。そこで、debug web.config
のConnectionStringセクションから誤って追加された何百もの接続を見つけました。これらをweb.config
から削除すると、個々のプロジェクトの負荷が90秒以上からほぼ瞬時に減少しました。
Visual Studio 2015を使用して、新しいソリューションを作成し、既存のプロジェクトを追加しました。
Gehhoの回答から* .suoを削除することは以前は役に立ちましたが、この場合は役に立ちませんでした。ソリューションのルートにある隠し.vsフォルダーには、別の.suoファイルもあります。
Visual Studio 2015については他にも回答があります Visual Studio 2015は非常に遅いです