【发布时间】:2011-05-20 10:50:03
【问题描述】:
我有一个使用 VS2010 用 C# 生成的 COM DLL,在 VS2910 中使用它,它工作正常,但是当我尝试使用 Delphi 7 中的 DLL 时,导入了 .tlb 文件,一些函数工作正常,但是一个似乎会产生以下错误。Could not load file or assembly 'InnovateCV, Version=1.0.0.0, Culture=neutral, PublicKeyToken=c06107b7da48b1da' or one of its dependencies. The system cannot find the file specified.
不幸的是,它不知道是什么无法加载,InnovateCV 是我的 DLL,并且已加载,从数据值为“系统”的异常中获取更多信息.Collections.ListDictionaryInternal'。不幸的是,我的 COM DLL 正在调用第三方 .NET DLL,这是引发异常的地方。有没有办法找到它无法加载的内容。
我已经尝试使用 Depends.exe,并且没有任何可以看到的 DLL 丢失。
任何帮助将不胜感激。
【问题讨论】:
-
有没有可能它失败的函数是一个相当新的添加,并且 delphi 代码没有引用程序集的最新版本?
-
不,系统上只有一组 DLL,因此 Delphi 和 C# 应用程序与相同的应用程序通信。 COM DLL 被重新注册,当我更改它以尝试调试正在发生的事情时。
-
您使用 RegAsm 注册了 DLL? DLL 是否在 GAC 中注册?
-
是的,DLL 在 RegAsm 中注册并在 Delphi 类型库导入向导中显示良好,未在 GAC 中注册,Delphi 7 对 GAC 一无所知。
-
是所有对第三方 DLL 的调用都抛出这个异常还是只有一些?第三方DLL和你的DLL和Delphi-EXE在同一个目录?
标签: c# delphi dll com delphi-7