4.5をターゲットとするクラスライブラリ(ProjectA)があります。必ずしも4.5固有の機能を使用するとは限りません。私は4.0と4.5のアセンブリをビルドする必要があります。両方のアセンブリバージョン(4.0 + 4.5)を持つ単一のNuGetパッケージを作成する必要があります。 4.5をターゲットとする別のクラスライブラリ(ProjectB)によって消費されます。.NET 4と45のプロジェクト間のシームレスなNuGetバージョンの統合
同じことをProjectBで行い(4.0と4.5の出力アセンブリをビルドする)、両方をサポートする単一のNuGetパッケージを作成する必要があります。
は、私は両方PROJECTAとProjectBのプロジェクトに4.0のための追加的なビルド構成を追加しました:
がProjectBのは、私も使用されている.nuspecファイルに追加の依存関係やファイルを追加しましたPROJECTAからNuGetのdependecyを定義するには:
PROJECTAはうまく構築し、上のバイナリ(4.0用との両方を持っているNuGetの.nupkgを生成しますeは4.5)。 ProjectBがProjectAを使用すると、ProjectAから4.5アセンブリが取り込まれます。 ProjectBがそれ自身のアセンブリの4.5バージョンをコンパイルすると、すべて正常です。
ここでは物事が厄介になる。 ProjectBを4.0ビルド構成に切り替えると、ProjectAへの参照が4.5で、ProjectBのビルド構成4.0でビルドできないというVisual Studioが表示されます。
ビルド構成がProjectBで4.0に変更されたときに、ProjectAから4.0アセンブリを自動的に使用するようにVisual Studioを設定します。
4.5から4.0にダウングレードして、すべてをよりシームレスにすることはできません。最終的に、ProjectCは両方のライブラリ4.0アセンブリを使用します。 ProjectCは4.0をターゲットとしており変更できません。
ProjectBがどのビルド構成を使用しているかに応じて、ProjectBがProjectAから適切なアセンブリ(4.0/4.5)を使用するように、ProjectBをProjectAで使用する方法を教えてください。
あなたは、2つの異なる構成、.NET 4.0用と.NET 4.5のための1つを作成してみてください、その後、csprojに条件付きの参照を使用することができます。例:http://stackoverflow.com/questions/6523008/visual-studio-2010-conditional-references – MistyK
@Zbigniewありがとう。あなたのコメントはすごく助けになりました。 2つの異なる参考文献を作成しなければならないことも分かっていなければなりませんでした。私はあなたのコメントをupvoted。これを詳細として回答として提出すれば(私のものを盗むのは自由です)、私はあなたの答えを記入してうれしいです。 –
問題はありませんが、すべての詳細が含まれているので、回答を回答としてマークします。 – MistyK