14

nuget を使用するプロジェクトに取り組んでいますが、パッケージの復元は使用しません。(ちなみに、これは私の管理外の決定であるため、パッケージの復元を有効にすることに関する回答は、私が使用できるものではありません。)

ソリューション内のいくつかのプロジェクト (合計 34 のうち 4 つ。WinJS アプリ ストア プロジェクト、2 つの通常の .NET クラス ライブラリ、および私の Azure クラウド プロジェクトの 1 つ) が、この悪名高い警告を報告しています。

...packages\Microsoft.Bcl.Build.1.0.13\tools\Microsoft.Bcl.Build.targets(225,5): warning : All projects referencing Valhalla.Consumer.Core.csproj must install nuget package Microsoft.Bcl.Build. For more information, see http://go.microsoft.com/fwlink/?LinkID=317569.

そのリンクは、パッケージの復元をオンにすることを前提としています。私がこれまでに見つけた、このテーマに関する他のすべてのアドバイスも同様です。

ちなみに、オプション -> パッケージ マネージャー -> 一般設定でパッケージの復元を無効にしてみました。それは役に立ちません (たとえそうであったとしても、それは望ましくないでしょう - 私は他のすべての作業でパッケージの復元を使用します)。

パッケージの復元を使用しないソリューションでこれが発生する理由がよくわかりません。私が理解しているように、それが求めているパッケージの要点は、パッケージの復元をサポートすることです。したがって、パッケージの復元が使用されていないソリューションでは、このパッケージが存在するのは奇妙に思えます。

ただし、他の特定の nuget パッケージにより、これに依存するようです。Microsoft.Bcl何らかの理由で に依存している nuget パッケージを使用する Windows ランタイム コンポーネント プロジェクトがありますMicrosoft.Bcl.Build。(プロジェクトを作成したときに、Visual Studio がMicrosoft.Bclパッケージを追加したようです。おそらく必要です。) 他のプロジェクトはMicrosoft.Bcl.Build、HTTP クライアント ライブラリを介して依存関係を取得しているようです。

どうやら、特定の一般的な nuget パッケージMicrosoft.Bcl.Buildは、パッケージの復元を使用しているかどうかに依存しているようです。

この警告を受け取るすべてのプロジェクトに関連するパッケージを追加するだけで、警告をなくすことができれば問題ありません。しかし厄介なのは、Microsoft.Bcl.Buildパッケージを消費するコンポーネント (WinJS Window Store アプリなど) に追加しても、この警告が表示されることです! (そのため、インストールした後でも nuget パッケージをインストールする必要があると不平を言い続けます。)

この状況でこの警告を解消する方法を知っている人はいますか? それが私に求めていることをするだけでは十分ではないようです。何が欠けていますか?

4

2 に答える 2

7

同じ問題がありました。Microsoft.Bcl.Build パッケージを 1.0.13 から 1.0.14 に更新すると、問題が解決しました。

于 2014-04-29T14:29:52.177 に答える
4

最近、同じ問題が発生しました。Nuget 2.8、BCL ビルド 1.0.14、BCL 1.1.9 を使用して、別のプロジェクト B によって参照される BCL ビルドを使用するプロジェクト A がありました。

短編小説:パッケージが追加されたにもかかわらず、プロジェクトBのコンパイルで前述のエラーが発生しました。解決策は、パッケージを削除して再度追加することでした。最終的に、プロジェクト A と B の両方でそれを行いました。

問題の原因はバージョンの不一致だったと思います。元のプロジェクトは BCL 1.1.8 (作成時の最新バージョン) を参照していましたが、プロジェクト B はより新しい BCL 1.1.9 を自動的に使用していました。

それが関連しているかどうかはわかりませんが、初めてプロジェクト - > NuGetパッケージマネージャーを使用してパッケージを追加し、2回目にNuGetコンソール(ツール - > Nuget - >コンソール)を使用しました。

remove,add により、プロジェクト B の csproj に明確な違いが生じました。次の行が追加されました。

<Import Project="..\..\..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets" Condition="Exists('..\..\..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets')" />

于 2014-06-14T16:16:58.157 に答える