我已經將類型添加到我用於COM互操作的.NET類中。爲了讓它與我的VB6應用程序一起工作,我取消註冊DLL並重新註冊它(使用regasm
)。然後我卸載並重新安裝到GAC(使用gacutil
)。我是否需要強制GAC重新加載程序集?這可能嗎?
這些類型顯示在VB6對象資源管理器中,但是當我在VB6 IDE中運行該應用程序時,它在實例化新類型的行上發生錯誤:Automation Errror - The System cannot find the file specified
。
我想這個奇怪的,因爲我已經更新了GAC,所以我卸載的dll從GAC並得到了確切的同樣的錯誤,這似乎表明該DLL的舊版本已經在內存和需求被「重新加載」,以便新的DLL在內存中。這是可能的,如果是這樣,我需要做什麼?
我不確定我是否在註冊表的正確位置,但是當我在'CLSID'中查找相應的鍵時,沒有列出特定的DLL,而是一個名爲'InprocServer32'的鍵, '(Default)','Assembly','Class','RuntimeVersion'(這是v4.0.30319)和'ThreadingModel'的值。由於沒有指定DLL(因爲如果我已經使用了'/ codebase'選項和'regasm'),我假設它正在嘗試使用GAC中的文件,但因爲它看起來並不像文件GAC在更改時總是加載到內存中,但我不確定。 – 2010-06-17 15:13:42