c# - 在我的应用程序中使用 sdk 的 dll 而无需复制和注册

标签 c# dll sdk biometrics

我想在我的 C# 项目中包含所有需要的 dll,因此您无需将它们复制到 system32 并注册它们。

我尝试了 costura.fody 和其他方法,但我无法让它工作...

我在我的项目中创建了一个“libs”文件夹,并复制了所有的 dll。然后我添加一个这个 dll(另一个是依赖项,据我所知)作为引用。

但是我得到这个错误:

An unhandled exception of type 'System.Runtime.InteropServices.COMException' occurred in myapp.exe

Additional information: Could not retrieve COM class generator for component {00853A19-BD51-419B-9269-2DABE57EB61F} Due to the following error: 80040154 Unregistered class (Exception of HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

当我将所有 dll 复制到我的 system32 文件夹并注册其中一个时:

regsvr32 %windir%\system32\zkemkeeper.dll

一切正常...

编辑:

正如我所说,zkteco(生物识别扫描仪)的 sdk 有多个 dll。但我只能添加一个作为引用。其他人给我下一个错误:

无法添加对 XXX.dll 的引用。请确保文件可访问,并且是有效的程序集或 COM 组件

所以我不知道这里有什么问题...

dll 的:

enter image description here

我的引用:

enter image description here

每个库的属性:

enter image description here

我的所有 dll 文件夹:

enter image description here

每个库的属性:

enter image description here

最佳答案


在看到问题的更新并就他的具体案例与 OP 进行了更多交谈之后,我开始意识到我的回答可能不是非常有用,就目前而言。我暂时把它留在这里,以防我想到更多。 :)


Using dlls of sdk inside my app without copy and register

是的,您可以使用独立 COM。从本质上讲,这意味着您的应用程序可以与 COM dll 一起部署,但您的 list 文件可以做到这一点,因此您无需注册 COM dll。

只需单击 COM 引用上的 Isolated 属性,即可更新/创建 list 。

另见

关于c# - 在我的应用程序中使用 sdk 的 dll 而无需复制和注册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42042368/

相关文章:

c# - 将字体大小传递给 Winform C# 项目中的用户控制工具提示

C#方法获取具有相同属性的类型列表

从非托管 C 调用托管代码

ios - 将 Google Analytics v3 和 Google Maps 1.4.3 添加到我的项目时出现重复符号

javascript - 有没有办法从 SoundCloud oEmbed 回调实时搜索时间?

c# - 类型/接口(interface)契约(Contract)的任务 - 指南?

c# - .NET 线程和垃圾收集/幻像进程

适用于 Windows 的 C++ BLE Central 开发

c++ - 从 !DllRegisterServer+0x3ebfa 符号获取 C++ 函数名来解决 'endless wait in critical section' 难题

build - nwjs有办法检查是否使用sdk版本吗?