0

我有一个包含第三方 VB6 DLL 的 VB.NET Windows 窗体(不要笑!!!) ClickOnce 安装。该项目安装没有任何问题,但是当我到达调用该 VB6 DLL 的代码时,我收到一条错误消息,指出 .DLL 未注册。DLL 包含在 SomeApp.exe.manifest 文件中。但是,它不在 SomeApp.manifest 文件中。两者都需要吗?还是我在其他地方搞砸了?我确实注意到第 3 方 VB6 DLL 没有签名,如果这很重要的话。我主要是从较早的 MSDN 杂志文章开始,但参考最新的 MSDN 文档。

http://msdn.microsoft.com/en-us/magazine/cc188708.aspx http://msdn.microsoft.com/en-us/library/ms165432.aspx

4

2 回答 2

0

解决方案资源管理器 > 项目名称 > 我的项目 > 参考选项卡 > 选择 V​​B6 DLL > 属性窗口 > 复制本地 = TRUE 和隔离 = TRUE。

于 2013-01-25T00:56:43.463 回答
0

原来我们试图添加的第 3 方 DLL 是一个 Excel 加载项。

http://msdn.microsoft.com/en-us/library/ms165432(v=vs.90).aspx

在那篇文章中,MSFT 指出“并非每个组件都适合免注册 COM。如果满足以下任何一项,则该组件不适合:该组件旨在用作加载项或管理单元- “

虽然我们不将文件与 Excel 一起使用,但我认为这可能是它在运行时无法识别的原因。我们已要求供应商提供兼容的无注册 COM 文件。同时,我们需要将该文件添加到先决条件脚本中。不像我想要的那样封装。

在我选择这个作为答案之前,我想看看是否有其他人同意这可能是问题所在。

于 2013-01-25T23:28:29.330 回答