我有一个VB.NET Windows窗体(不要笑!!!)ClickOnce安装包含第三方VB6 DLL。该项目安装没有任何问题,但当我到达调用该VB6 DLL的代码时,我收到一个错误,说明.DLL没有注册。该DLL包含在SomeApp.exe.manifest文件中。但是,它不在SomeApp.manifest文件中。它需要同时存在吗?或者我在其他地方陷入困境?我注意到第三方VB6 DLL没有签名,如果这很重要的话。我主要是关于MSDN杂志的旧文章,但引用了最新的MSDN文档。
http://msdn.microsoft.com/en-us/magazine/cc188708.aspx http://msdn.microsoft.com/en-us/library/ms165432.aspx
答案 0 :(得分:0)
Solution Explorer>项目名称>我的项目>参考标签>选择VB6 DLL> “属性窗口”>复制local = TRUE和Isolated = TRUE。
答案 1 :(得分:0)
原来我们尝试添加的第三方DLL是一个Excel加载项。
http://msdn.microsoft.com/en-us/library/ms165432(v=vs.90).aspx
在那篇文章中,MSFT声明“并非每个组件都适合免注册COM。如果满足以下任何条件,则组件不合适:该组件旨在用作加载项或一个管理单元,例如Office外接程序或Web浏览器中的控件。这些组件通常需要托管环境定义的某种注册方案,这超出了清单本身的范围。“
虽然我们不将该文件与Excel一起使用,但我认为这可能是它在运行时无法识别的原因。我们已经向供应商询问了兼容的免注册COM文件。与此同时,我们需要将该文件添加到先决条件脚本中。不像我想的那样封装。
在我选择这个作为答案之前,我想看看是否有其他人同意这可能是问题。