我为遗留应用创建了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(找不到文件)
这里有什么不对?
答案 0 :(得分:2)
尝试:
/codebase
选项指定包含.Net COM对象的程序集的绝对路径。您也可以尝试将程序集复制到路径上的某个位置或VBScript文件旁边,但我不知道这是否有效。
您还应该考虑使用Fusion日志记录来记录程序集绑定失败 - 这可能会为您提供一些线索。