在 C# 上使用非 clr dll

using non-clr dll on C#

本文关键字:clr dll      更新时间:2023-10-16

我正在使用许可库(c ++ dll)来开发C#应用程序。

我没有那个库的任何代码,那不是clr。

但我可以使用 pInvoke 在 c# 上导入它的方法,如下所示。

[DllImport("FaceFinding.dll", ExactSpelling = true, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
unsafe internal static extern int EnrollmentGalleryDBOneToOne(StringBuilder currentFolderPath);

它在调试模式下完美运行。

但这里有问题。

当我制作Visual Studio Installer项目时,我无法在安装程序上导入该dll文件,因为它是非clr。

有没有办法在 C# 安装程序项目上导入非 CLR DLL?

将所有非托管 DLL(包括 FaceFinding.dll)放在安装程序项目的文件系统编辑器的输出文件夹中。这样,它们将与您的应用程序一起发布。

作为旁注,我还建议确保此第三方 DLL 的许可证允许您通过检查其许可协议将其与您的应用程序一起分发。