无法从vbs创建.Net Com对象

时间:2011-05-04 06:30:11

标签: .net com com-interop legacy

我为遗留应用创建了com对象(.net framework 3.5)

[ComVisible(true), Guid("...")]
[InterfaceType(ComInterfaceType.InterfaceIsDual)]
public interface MyComInterface
{
...
}


[ComVisible(true), Guid("...")]
[ProgId("...")]
[ClassInterface(ClassInterfaceType.None)]
public MyComObject: MyComInterface
{
 ... 
}

它安装正常,注册表中的一切正常(progid,clsid) 我可以创建实例并从.net应用程序中使用它:

var t = Type.GetTypeFromProgID("myProgID");
var o = Activator.CreateInstance(t);

但是vbs文件

set o = CreateObject("myProgID")

提出错误:0x80070002(找不到文件)

这里有什么不对?

1 个答案:

答案 0 :(得分:2)

尝试:

  1. 将包含.Net COM对象的程序集安装到GAC。
  2. 或使用regasm/codebase选项指定包含.Net COM对象的程序集的绝对路径。
  3. 您也可以尝试将程序集复制到路径上的某个位置或VBScript文件旁边,但我不知道这是否有效。

    您还应该考虑使用Fusion日志记录来记录程序集绑定失败 - 这可能会为您提供一些线索。