我有一個ASP Classic應用程序引用了一些VB6 COM對象。其中一個VB6 COM OBJECTS引用另一個第三方.Net DLL。如何在沒有gacutil的情況下注冊64位DLL
第三方.Net DLL需要在Windows Server 2008 R2 x64機器上註冊。
我已經使用PowerShell(參考:http://weblogs.asp.net/adweigert/archive/2008/10/31/powershell-install-gac-gacutil-for-powershell.aspx)發現腳本註冊在GAC中的DLL沒有GACUTIL
現在我需要註冊程序集。我在本地開發機器(x86)上同時使用了GACUTIL和REGASM。但是當我嘗試在測試服務器上獲取DLL時,我遇到了問題。
第一個問題:NO GACUTIL
沒有在服務器上沒有GACUTIL,我得到了周圍使用腳本上面提到的。我知道它可以使用SDK安裝,但我不想「污染」環境。
第二期:REGASM CAN NOT FIND ASSEMBLY
32位.Net框架沒有找到DLL下的REGASM。錯誤報告:「RegAsm:錯誤RA0000:無法找到輸入程序集'C:\ Windows \ System32 \ xxxxx.dll'或其依賴項之一。」
所以我使用了RegAsm的64位變體,並且工作。
我擔心的是,這是一個誤判,因爲它沒有被32位RegAsm註冊,所以ASP經典程序沒有找到該程序集。
我運行我的應用程序我在事件日誌中收到錯誤:「ActiveX組件無法創建對象」。一般來說,發生這種情況是因爲它找不到要創建的對象,這意味着託管對象的DLL未正確註冊。
所以我現在要做的是找出是否有一個替代方法使用的PowerShell註冊程序集在32位範圍內的REGASM。
有沒有人知道這是可能的,以及腳本會是什麼使它正確?
感謝您的信息...我正在調查它。 – 2011-03-30 06:58:15
嗨JP,請閱讀我的回答,以獲取更多信息,瞭解最終的問題。感謝您的幫助和有趣的閱讀。肯定會保持UAC虛擬化。 – 2011-03-30 08:03:27