2

現在、.NET 4.5 を対象とする NuGet パッケージがあります。次のバージョンは、代わりに .NET 4.5.2 をターゲットにします。私は両方のフレームワーク バージョンをサポートすることに関心はありません (これらのパッケージは内部でのみ使用されます)。現在、NuGet は 4.5 プロジェクトが私のパッケージをインストールできるように見えますが、(net45 用にインストールする DLL がないため) no-op になります。

私の質問は、このエクスペリエンスを改善するにはどうすればよいですか? 理想的には、targetFramework が間違っている場合にインストールを失敗させたいと考えています。それがなければ、エラー メッセージのようなもので解決します。

4

1 に答える 1

0

これを行うには、パッケージ内のすべてが新しいバージョンを対象としていることを確認する必要があります。次に、NuGet は次のメッセージでインストールに失敗します。

パッケージ 'XXX' をインストールできませんでした。このパッケージを '.NETFramework,Version=v4.5' をターゲットとするプロジェクトにインストールしようとしていますが、そのフレームワークと互換性のあるアセンブリ参照またはコンテンツ ファイルがパッケージに含まれていません。詳細については、パッケージの作成者にお問い合わせください

私の問題は、自分の DLL が net452 をターゲットにしていると思っていたとしても、nuspec ファイル (コンテンツ ファイルなど) にまだ net45 をターゲットにしている他の要素があったことです。NuGet はこれを私のパッケージがマルチターゲットであると解釈し、.NET 4.5 プロジェクトでインストールを続行できるようにします (DLL 参照を追加するステップを黙ってスキップします)。

于 2016-04-13T17:50:59.373 に答える