【发布时间】:2020-06-22 16:48:12
【问题描述】:
我有一个具有以下结构的 nuget:
Lib
-> net45
-> MyDll.dll
Runtimes
-> win10-x64
-> native
dependency1.dll
dependency2.dll
dependency3.dll
我将此 nuget 添加到我的一个项目中。每当我构建该项目时,我都希望将所有 dll 复制到输出目录中。但是,只有“MyDll.dll”会被复制,而本机运行时文件夹中的所有 dll 都不会。我已经看到这篇文章解释了如何使用 .targets 文件来完成此操作:Add native files from NuGet package to project output directory。但是,我找不到有关如何添加 .targets 文件的具体信息,而且这篇文章已有 6 年历史。现在肯定存在一些新的/更好的东西吗?
基本上,将本机 dll 复制到构建的输出目录中的最佳方法是什么?
【问题讨论】:
-
我假设您正在尝试生成 .zip 或其他输出,以便您可以部署项目,如果是这样,您需要运行“发布”而不是仅运行“构建” . “发布”目标将确保您的应用程序运行所需的所有文件都位于输出文件夹中。根据您构建此项目的方式(通过 CLI、Visual Studio、dotnet.exe 进行 MSBuild),有几种方法可以完成此任务。尝试从 NuGet 包中提取文件会带来很多麻烦,希望您不必去那里。
标签: c# dll build msbuild nuget