.net - 有没有更好的方法将 native dll 复制到 bin 文件夹?

我有从 native (C++) dll 调用函数的 C# 包装器代码。目前,我可以添加对 C# dll 的引用并将“复制本地”选项设置为 true。但是,作为依赖项的 native dll 不能作为引用添加 - 因此没有“复制本地”选项。

我尝试了以下方法

  1. 使用构建后事件将本地 dll 从 Libs 文件夹复制到 $(TargetFolder)

    复制 "$(ProjectDir)Libs\NQuantLibc.dll""$(TargetDir)NQuantLibc.dll"

  2. 将 native dll 作为现有项目包含在项目中(添加 -> 现有项目 -> 包含 dll)。此选项允许我使用“复制本地”选项。这种方法的缺点是 dll 总是显示为项目项。

我还尝试了“显示所有文件”,这让我可以看到 Libs 文件夹。然后我在项目中包含 NQuantLibc.dll 文件,它允许我设置“复制本地”选项。然而,这给了我一个意想不到的结果。它在 bin 文件夹中创建了一个包含 dll 的 Libs 子文件夹(例如 bin/debug/Libs/NQuantLibc.dll)。不理想,因为 C# dll 不存在,因此无法正确调用 native dll。

以上两个选项都有效。有没有更好的方法将 native dll 复制到 bin 文件夹,以便始终解决依赖关系?或者,这种情况有不同的方法吗?

最佳答案

使用 Project + Add Existing Item 并选择 DLL。在解决方案资源管理器窗口中选择添加的文件。在“属性”窗口中,将“复制到输出目录”设置更改为“如果较新则复制”。

关于.net - 有没有更好的方法将 native dll 复制到 bin 文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3863419/

相关文章:

xcode - 如何将编译源中的文件从一个目标复制并粘贴到另一个目标?

php - 在 ubuntu 上构建 php5.3.8,得到错误 : configure: erro

android - 使用-sdk :minSdkVersion 15 cannot be small

android - 指示 Android Gradle 脚本删除未对齐的 apk 并清理 Artif

linux - 在 Debian 或 Ubuntu 下自动获取构建依赖项的 Debian 方式是什么

c - C语言的sublime text 2构建系统

makefile - cmake和并行构建与 "make -jN"

build - 如何在 VSTS/VSO Build vNext 中创建 Web 部署包?

javascript - 通过 grunt 任务更新 json 文件中的文件引用

time - Jenkins——使用 "Build Time Trend"获取 "Remote Ac