0

クラス ライブラリ プロジェクト ( C )への参照を持つWeb プロジェクト ( W ) があります。

W --> C

CはN1を参照します。

C --> N1

N1は、2 つの依存関係を持つカスタム NuGet パッケージです (どちらもカス​​タム NuGet パッケージです): N2 e N3で、それぞれバージョン 2.1 以降と 3.4 以降を対象としています。

N1 ---> N2 (>= 2.1)
   `--> N3 (>= 3.4)

N1パッケージをCに追加したとき、N2には 2.2 バージョンが利用可能だったので、NuGet は 2.1 ではなく、2.2 バージョンを取得することが期待されていました。

問題はここから始まります: Wをビルドすると、N2はWbinフォルダーにコピーされません。少しグーグルで調べたところ、Visual Studio は「ファースト クラスの依存関係」ではない依存関係、つまりCによって直接使用されない依存関係をWの出力フォルダーにコピーしないことがわかりました。以下のメソッドをCの任意のクラスに追加すると、N2がコピーされるため、確認できます。

private void ForceCopyOfN2()
{
    var someObject = new N2.SomeClass();
}

また、上記のハックがなければ、N2のバージョンをN1パッケージの依存関係で指定された同じバージョン(つまり、2.2 から 2.1) にダウングレードすると、N2もコピーされます。

したがって、これは NuGet の問題であると推測しています。誰もこのようなことを経験しましたか?

4

1 に答える 1

-1

4.5 を対象とする VS 2012 ではこれを再現できませんでした。これが私が試したこと
です。 1. 新しい Web アプリケーション プロジェクトを
作成します。 2. 新しいクラス ライブラリを作成します
。 3. Web アプリケーションからクラス ライブラリへの参照を追加します
。 -package windowsAzure.servicebus

依存関係 'Microsoft.WindowsAzure.ConfigurationManager (≥ 1.7.0.0)' を解決しようとしています。Microsoft から Microsoft.WindowsAzure.ConfigurationManager をダウンロードしています。ライセンス契約はhttp://go.microsoft.com/fwlink/?LinkID=235167で入手できます。. パッケージに追加の依存関係がないか確認してください。これには、独自のライセンス契約が付属している場合があります。パッケージと依存関係を使用すると、ライセンス契約に同意したことになります。使用許諾契約に同意しない場合は、関連するコンポーネントをデバイスから削除してください。

「Microsoft.WindowsAzure.ConfigurationManager 1.7.0.3」が正常にインストールされました。Microsoft から WindowsAzure.ServiceBus をダウンロードしています。ライセンス契約はhttp://go.microsoft.com/fwlink/?LinkId=218949で入手できます。. パッケージに追加の依存関係がないか確認してください。これには、独自のライセンス契約が付属している場合があります。パッケージと依存関係を使用すると、ライセンス契約に同意したことになります。使用許諾契約に同意しない場合は、関連するコンポーネントをデバイスから削除してください。「WindowsAzure.ServiceBus 1.8.0.0」が正常にインストールされました。

「Microsoft.WindowsAzure.ConfigurationManager 1.7.0.3」が ClassLibrary1 に正常に追加されました。
「WindowsAzure.ServiceBus 1.8.0.0」が ClassLibrary1 に正常に追加されました。
5. サービス バスが 1.7 以上の構成に依存し、1.8 バージョンの構成管理がインストールされている場合
6. classlibrary をビルドしてから webapplication ソリューションをビルドし、ソリューション エクスプローラーを更新します。私のソリューションでは、classlibrary、servicebus、および configurationmanager が bin フォルダーにドロップされていることがわかりました。(理由はわかりませんが、参照を追加した後にクラスライブラリをもう一度構築しようとした後、ファイルが削除されたのを見ました)

私がここに欠けているものはありますか?

于 2012-12-01T01:39:47.573 に答える