前提問題:VB6到COM可調用.NET包裹 - 發現.NET庫
- 寫了COM-調用包裝(CCW)在C#編寫由VB6代碼調用。
- C#代碼包含必須使用的.NET庫(第三方)。
- 包裝的C#類實例化罰款,正確地引發事件,正確地採取方法調用。
問題:
- 的VB6代碼,運行C#代碼時,當C#代碼試圖訪問上述附加.NET庫得到一個錯誤。
過程進行測試:
- C#代碼包裹完成。
- 編寫VB6代碼,引用創建的COM DLL。
- 當C#代碼嘗試從內部訪問.NET庫時收到「文件未找到...」錯誤。
- 將第三方.NET庫複製到VB6代碼的主文件夾中(也放到system32文件夾中)。
- 仍「找不到文件...」錯誤。
- 寫了一個C#Windows窗體測試項目。引用了C#打包的代碼。
- 收到與VB6代碼相同的錯誤。
- 在C#Windows Form測試項目中,引用了 C#包裝代碼使用的.NET庫。
- 該程序運行得很好。
結論/問題:
- 能VB6呼叫/使用引用其他第三方.NET庫一個COM可調用包裝的C#程序?
嘗試將第三方dll放在GAC中 – albertjan
使用fuslogvw.exe排除程序集解析問題。 –
異常信息是有用的,也許你忘了「copy local == true」 –