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

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

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

しかし、ハックとして使用せずに、NuGet 依存関係をビルド成果物として含め、ビルド フォルダーに出力する方法がわかりませんdotnet publish。.csproj ファイル (プロジェクト ファイル) でこれを指定する方法はありますか?


読者の注意: この質問(および似たもの) そしてドキュメントこの問題のコンテキストでは「プラグイン dll」について話す必要があります。これは、この非コピーはライブラリ プロジェクトでのみ発生するためです。アプリがある場合は、Nuget とその他の依存関係をすべてコピーする必要があります (そうしないと、デバッグできなくなります)。

ベストアンサー1

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

<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>

ただし、ビルド出力 ( bin/Release/netcoreapp*/*) は移植可能で配布可能であるはずではなく、 の出力が移植可能で配布可能であることにdotnet publish注意してください。ただし、この場合、アセンブリをビルド出力にコピーすることは、テスト目的で非常に役立つ可能性があります。ただし、DependencyContextローカル ディレクトリを列挙する代わりに、API を使用して、アプリケーションの依存関係グラフの一部である DLL とその場所を解決することもできることに注意してください。

おすすめ記事