使用来自 VB6 代码的 C# 程序集。一些问题

发布于 2024-08-29 00:05:33 字数 508 浏览 4 评论 0原文

我有一个 C# 程序集,已对其进行了 regasm,但不在 GAC 中。在我的 VB6 代码中,我添加了对生成的类型库(.tlb 文件)的引用。

然后我在 VB6 代码中实例化 C# 库。如果我从 VB6 IDE 运行它,它不起作用。下面代码中的 Set

Dim obj as MyCSharpNamespace.MyCSharpObject
Set obj = New MyCSharpNamespace.MyCSharpObject

会导致此错误:

Automation error 
The system cannot find the file specified

但是,如果我将 VB6 项目编译为 EXE 并运行它,它运行得很好。

我应该补充一点,所有 VB6 项目文件(例如表单、模块等)都与 C# DLL 和 TLB 位于同一文件夹中。

那么为什么我不能从IDE环境运行它呢?

I have a C# assembly, which is regasmed, but is not in the GAC. In my VB6 code, I added a reference to the generated type library (the .tlb file).

Then I instantiate the C# lib in my VB6 code. If I run it from the VB6 IDE, it does not work. The Set in the code below:

Dim obj as MyCSharpNamespace.MyCSharpObject
Set obj = New MyCSharpNamespace.MyCSharpObject

causes this error:

Automation error 
The system cannot find the file specified

However, if I compile the VB6 project to an EXE and run it, it runs perfectly fine.

I should add that all the VB6 project files (e.g. forms, modules, etc...) are in the same folder as the C# DLL and TLB.

So why can't I run it from the IDE environment?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

朦胧时间 2024-09-05 00:05:33

运行 regasm 时使用 /codebase 开关。

Use the /codebase switch when running regasm.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文