4

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 をインストールしましたが、問題は発生しなくなりました。

4

2 に答える 2

0

昨日のように、痛々しいほど遅くなることもあります。
サービスの状況はこちらで確認できます。

于 2014-01-30T09:53:17.640 に答える
0

ビルドの問題ではないと思います。from コマンド ラインで NuGet.exe を手動で実行してみてください。おそらく同じ時間がかかることがわかります。

過去に、「出力ディレクトリにコピー」が「常にコピー」に設定されているプロジェクトにリソース ファイル (画像など) がある場合、常に NUGet パッケージがコンテンツをダウンロードするという問題がありました。これがある場合は、「新しい場合はコピー」に変更してみてください。

于 2014-01-21T10:28:09.703 に答える