![]() |
1
2
是的,这是COM组件具有非COM依赖项的问题。windows在搜索依赖dll时不考虑com dll的位置。正常的搜索规则是有效的,先包含exe的文件夹,windows目录,当前工作目录,路径环境。COM服务器的位置不起作用。 假设您不想部署到EXE文件夹,这些都不是存储DLL的好地方,尽管许多安装程序不顾一切地将其存储在C:\ Windows\System32中或修改系统路径环境变量。 在运行dll中的任何代码之前,可以在c代码中执行p/invoke setdlldirectory()。使用assembly.getExecutingAssembly()。location将执行此操作。不过,这并不是一件安全的事情,它可能会改变使用组件的应用程序的搜索规则。 唯一真正的解决方法是在windows并行缓存(winsxs)中安装dll,并在c可执行文件中包含清单。鉴于 the documentation ,我只能祝你好运。 |
![]() |
2
1
在这种情况下,我总是从 Dependency Walker 验证它试图加载的内容是我认为的内容。 |
![]() |
3
0
fuslogvw将告诉您clr在哪里寻找程序集 |
![]() |
4
0
或者使用GAC。 (这是你的角色,stackoverflow) |
![]() |
Cleric · C#运行主动自动化对象-如何源事件? 7 年前 |
![]() |
Daniël J · 使用GUI制作COM服务器的最佳实践是什么? 7 年前 |
![]() |
Toponimo · 从Python访问COM方法 7 年前 |
|
user8666372 · 自动向可用引用添加引用 7 年前 |