2011-05-04 55 views
1

創建我創建的COM對象的遺留應用程序(.NET Framework 3.5的)淨的COM對象不能從VBS

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


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

它安裝罰款,一切就OK了註冊表(的ProgID,CLSID) 我可以創建實例,並從.NET應用程序中使用它:

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

但VBS文件

set o = CreateObject("myProgID") 

與錯誤辯論:0x80070002(文件未找到)

這裏有什麼可能是錯誤的?

回答

2

嘗試之一:

  1. 安裝含有淨COM對象到GAC組裝。
  2. 或使用regasm/codebase選項指定包含.Net COM對象的程序集的絕對路徑。

您也可以嘗試將程序集複製到路徑上或VBScript文件旁邊的某個位置,但我不知道這是否可行。

您還應該考慮使用Fusion日誌記錄程序集綁定失敗 - 這可能會給您一些線索。

+0

謝謝@Kragen。原因是組裝我的COM對象referrenced在安裝過程中錯過了。該程序集必須與我的com對象庫位於同一個文件夾中。我的.net客戶端應用程序能夠創建我的com對象實例,只是因爲它引用了該程序集。 – 2011-05-05 06:25:46