我们有一个用 C# 构建的 ActiveX DLL;DLL 用于 VB6 应用程序(它也将被经典的 ASP 应用程序使用)。
DLL 是一个 C# 类库项目
- 源代码中的类和接口 Guids 属性
- 项目中的 COM 相关属性/设置
- 源代码中的 progid 属性
所有显然都正确设置。
证明是,我们已经使用 regasm /codebase /tlb:xxxxx 注册了 DLL,并且 VB6 dev env 可以在引用窗口中看到 COM 对象。
将 COM DLL 引用添加到项目后,Intellisense 工作并看到一切正常,应用程序编译正确。
问题是,如果我们不将 DLL 的副本与已编译的应用程序 exe 文件放在同一文件夹中,则在尝试实例化 DLL 中的类的实例时会失败;返回的错误是“系统找不到指定的文件”。如果 DLL 的副本与应用程序 exe 位于同一位置,则一切正常。
我发现了对类似问题的引用,但没有关于如何解决的提示或线索。
马里奥