1. ホーム
  2. c#

[解決済み] .NET Core プロジェクトで NuGet 参照をビルド出力にコピーするにはどうすればよいですか?

2022-05-09 23:34:25

質問

.NET Coreでプラグインシステムを作ろうとしていますが、要件の1つは、プラグインDLLとその依存関係をユーザーに配布してインストールできるようにすることです。

しかし、NuGet の依存関係をビルドアーティファクトとしてインクルードし、ビルドフォルダに出力させる方法が分かりません。 dotnet publish をハックしています。.csprojファイル(プロジェクトファイル)で指定する方法はないでしょうか?

どのように解決するのですか?

に追加することができます。 <PropertyGroup> csproj ファイル内で、NuGet アセンブリをビルド出力にコピーするように強制します。

<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>

ただし、ビルド出力( bin/Release/netcoreapp*/* ) の出力は、ポータブルで配布可能であることは想定されていません。 dotnet publish です。しかし、あなたの場合、ビルド出力にアセンブリをコピーすることは、おそらくテスト目的には非常に便利です。しかし、注意すべきは DependencyContext api を使用して、ローカルディレクトリを列挙する代わりに、アプリケーションの依存関係グラフの一部である DLL とその場所を解決します。