我想在我的 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 的:
我的引用:
每个库的属性:
我的所有 dll 文件夹:
每个库的属性:
最佳答案
在看到问题的更新并就他的具体案例与 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/