0

net40NuGet互換性シムのみを対象とするNuGetパッケージである.NET Core 3.1プロジェクトから参照しようとしています。パッケージはプロジェクトに追加されますが、net40依存関係は追加されません。

パッケージは次のように構成されています。

lib\
  net40\
    AssemblyA.dll

nuspec: 
  <dependencies>
    <group targetFramework="net40">
      <dependency id="PackageB" version="1.0" />
    </group>
  </dependencies>

Visual Studio の Package Manager には依存関係が一覧表示されますが、インストールすると、依存関係は VS の [変更のプレビュー] ウィンドウに表示されず、実際にはインストールされません。PackageBも対象となりnet40ます。

次の場合は機能します。

  • 依存関係を「Any」(空白) 依存関係グループとその下に含めます。net40
  • 依存関係グループを削除し、パッケージをフラット リストとしてnet40直下にリストします。<dependencies>
  • net40アンダーを削除しlib\てフラット リストを使用する

これらは、ターゲット フレームワークの本質をわかりにくくするため、理想的ではありません。最後の 2 つは で生成NU5128されpackます。今後の参考のために、これらのシナリオが機能するためには、ローカル キャッシュから依存関係を削除する必要があることを言及する必要があります (確かにバグですか?)。

そのようなパッケージから依存関係を引き出す方法についてのアイデアはありますか? これは単にサポートされていないのでしょうか? これの良いテスト例は、「Polly.Net40Async」パッケージです。

(VS: 16.6.5、dotnet: 3.1.302、PackageReference、Windows 10)

4

1 に答える 1