将 WinForms 应用程序与本机 DLL 一起打包

Packaging WinForms application along with native DLL

试图找出如何使用 Visual Studio 2017 Desktop Bridge(应用程序打包项目)打包以下解决方案:

  1. .NET 库 DLL。
  2. WinForms 可执行文件引用 1.
  3. 本机 C++ DLL 使用 [DllImport] 导出 1 和 2 使用的一些函数。

我将项目 2 添加到包的应用程序部分并对其进行了编译。在目标文件夹中,我有 EXE(来自项目 2)和 DLL(来自项目 1)。

问题是:如何将项目3(原生c++库)正确添加到包中?我有这个 DLL 的 x86 和 x64 项目配置。

操作方法如下 - 请参阅下面的屏幕截图以了解说明:

1) 在 Winforms 项目中创建一个文件夹作为本机 DLL 的目标

2) 添加一个 post-build 事件步骤以将本机 DLL 复制到该文件夹​​

3) 在该文件夹中,将 DLL 标记为项目的一部分

4) 确保属性设置为 "Content" 和 "Copy to output"

5) 现在打包项目将获取本机 DLL 并将其包含在包中