3

NuGet を使用して依存関係を管理しています。

ソリューションの新しい Git クローンを作成したところ、アセンブリ参照の問題に気付きました。

ここで提案されているように、パッケージの復元を有効にして設定を確認しましたが、さまざまなアセンブリ参照にこれらの黄色の警告アイコンがまだあります。

参考文献

たとえば、以前に NuGet を介して AutoMapper を追加したことがあるのに、なぜここで壊れているのか、なぜ私の に表示されないのかpackages.config:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="bootstrap" version="3.0.0" targetFramework="net45" />
  <package id="EntityFramework" version="6.1.1" targetFramework="net45" />
  <package id="jQuery" version="1.10.2" targetFramework="net45" />
  <package id="Modernizr" version="2.6.2" targetFramework="net45" />
</packages>
4

4 に答える 4

1

これは通常、プロジェクト内の参照が、ディスク上に見つからないアセンブリを参照していることを意味します。この問題を修正するための最も直接的な解決策は、存在する参照を確認し、それらを削除してから再度追加することです。NuGet を使用して依存関係を管理しているため、作業ははるかに簡単です。次のことを行うだけです。

  1. すべての NuGet パッケージを削除します (「パッケージ マネージャー」を使用)。
  2. ソリューション全体で壊れたアセンブリ参照が残っている場合は削除します
  3. NuGet パッケージを必要とするすべてのプロジェクトに再追加します (再びパッケージ マネージャーを使用)。

あなたの説明に基づいて、一部のプロジェクトには NuGet パッケージが追加されていないように思われます。おそらく、開発者が NuGet パッケージ フォルダーからアセンブリを「相互参照」した可能性があります。これは間違いです。代わりに、パッケージに依存するすべてのプロジェクトに NuGet パッケージを追加する必要があります。(たとえば、NuGet によって管理されているため、アセンブリ参照を AutoMapper に手動で追加する必要はありません。)

これらが nuget フェッチの前に表示されるバグが時々あり、ソリューション エクスプローラーで参照ノードを選択すると、オーバーレイ グリフ (黄色の警告記号) 自体が削除されます (つまり、通常は「パッケージの復元」によって、参照がロード後に解決されたことを意味します)。 '.)

これは、ほとんどの場合、プロジェクト作成者が標準以外の場所にあるアセンブリへの不適切な参照または直接参照を作成したために発生します。そのため、パッケージの復元では参照の問題が解決されず、通常、パッケージの更新後に参照が壊れます。

HTH

于 2015-03-04T20:02:56.227 に答える
0

横に黄色のマークが付いているすべての参照を手動で削除してから、1 つずつ追加し直しました。このようにして、彼らも現れ始めましたpackages.config

以前は表示されなかったpackages.configのは、開発のずっと後の段階で [Restore nuget packages] オプションをオンにしたためだと思います。プロジェクトを開始してすぐにこれを行っていたら、packages.config.

PS。パッケージがnugetで利用可能かどうか、またはそれがフレームワークアセンブリであるかどうかを調べるために、nugetのWebサイトで検索を使用しました。

于 2015-03-06T08:53:08.843 に答える
0

以下を使用して、プロジェクト内のすべてのパッケージを再インストールする必要があります。

Update-Package -ProjectName MyProject -Reinstall
于 2015-10-26T09:21:49.647 に答える