我目前正在使用.NET 2.0框架使用C#編寫的COM Interop庫的VB6中的應用程序。使用COM Interop的VB6應用程序在IDE中正常工作,但編譯EXE崩潰
我用regasm.exe來使用/ codebase開關從.NET dll註冊tlb文件。然後,我能夠在VB6 IDE中成功構建和運行應用程序,而不存在任何問題。 .NET代碼使用配置文件,所以我將它添加到VB6目錄,並從配置中讀取正確。
然後,我從項目中編譯了一個EXE文件,並在運行它的同一臺機器上運行它。正如我在調試VB6.EXE時所做的那樣,我將EXE與配置文件結合在一起,但是當應用程序對.NET類中的某個方法執行第一次調用時,它會引發運行時錯誤,指示「自動化錯誤「。
在我的聲明中,我從.NET類中實例化了下面的對象,這似乎工作正常。
Private objSession As New Session
Private curFolder As Folder
Private colFolderTemplates As New FolderTemplateCollection
Private objLicense As New License
然而,自動化錯誤執行第一線時在運行時出現:
Call objSession.Configuration.Configure(connectionString)
我嘗試添加的.NET的DLL到同一目錄中推出EXE和重新註冊的tlb文件,但它沒有幫助。關於我可以檢查的任何建議?
有一兩件事我注意到的是,我的公開類型被限定爲ComVisible,但我的程序集不是。如果我將這些程序集標記爲ComVisible併爲它們分配一個GUID,是否會對情況有所幫助? – 2011-01-10 20:07:42