12 個のプロジェクトがあり、そのうち 7 個のプロジェクトで NuGet パッケージの復元が有効になっているソリューションで、ビルドが非常に遅いという問題があります。通常、診断出力には次のように表示されます。
[...]
9 ms ResolveProjectReferences 1 calls
18 ms _CleanGetCurrentAndPriorFileWrites 1 calls
32 ms CoreClean 1 calls
56 ms ResolveAssemblyReferences 1 calls
77 ms _CopyFilesMarkedCopyLocal 1 calls
400 ms CoreCompile 1 calls
9082 ms RestorePackages 1 calls
これは典型的です。通常、RestorePackages はすべてのプロジェクトで 9 ~ 10 秒かかります。7 つのプロジェクトでは、ビルド時間が 70 秒も長くなります。同じソリューションを構築している同僚で、この問題を抱えている人はいません。すべての拡張機能を無効にしました。Visual Studio (2012) は最新です。
CodePlex に問題を提出しましたが、クイックフィックスがある場合はこの知識豊富なコミュニティに質問し、この問題のトラブルシューティングの助けを求めたいと思っています。
編集: NuGet を完全に削除しました。RestorePackages ターゲットはまだ実行中で、まだ 10 秒かかります。これを解消するには、csproj ファイルでRestorePackages = falseを手動で設定する必要があります。
編集 2:NuGet.targets の RestorePackages タスクの内容をコメント アウトすると、問題も解決します。このような:
<Target Name="RestorePackages" DependsOnTargets="CheckPrerequisites">
<!--<Exec Command="$(RestoreCommand)"
Condition="'$(OS)' != 'Windows_NT' And Exists('$(PackagesConfig)')" />
<Exec Command="$(RestoreCommand)"
LogStandardErrorAsError="true"
Condition="'$(OS)' == 'Windows_NT' And Exists('$(PackagesConfig)')" />-->
</Target>
CheckPrerequisites ターゲットを削除しても違いはありません。
編集: Windows 8.1 をインストールしましたが、問題は発生しなくなりました。