2011-10-10 274 views
2

我嘗試下面的命令來註銷AssemblyFile:如何使用Regasm.exe到完全取消註冊AssemblyFile

regasm "AssemblyFilePath" /unregister /silent 

但是,它仍保留着這樣的註冊表項:

Windows Registry Editor Version 5.00 

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{0039733E-1312-4535-B292-68A5137FE367}\InprocServer32] 
" "="Mindjet.MindManager.Interop, Version=10.0.445.0, Culture=neutral, PublicKeyToken=19247b5ea06b230f" 
"Class"="Mindjet.MindManager.Interop.AttachmentClass" 
"RuntimeVersion"="v2.0.50727" 

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{0039733E-1312-4535-B292-68A5137FE367}\InprocServer32\10.0.445.0] 
"Assembly"="Mindjet.MindManager.Interop, Version=10.0.445.0, Culture=neutral, PublicKeyToken=19247b5ea06b230f" 
"Class"="Mindjet.MindManager.Interop.AttachmentClass" 
"RuntimeVersion"="v2.0.50727" 

那麼,有一種方法可以自動刪除左側的條目? thx

回答

4

程序集本身實際上負責註冊和註銷,所以可能在實際程序集中存在一個問題,那就是沒有刪除這些條目。

您的問題的答案完全取決於上下文。在卸載程序的情況下,我會建議使用代碼手動刪除這些條目,因爲您知道它們將在那裏。

我有一個安裝程序,我曾經調用RegAsm來註冊/取消註冊,但我認爲只需在安裝程序中添加代碼即可添加/刪除註冊表項,而不是使用RegAsm,這實際上是相同的事情。

+0

Chris(或者其他知名人士)能否詳細說明哪些問題可能導致程序集無法刪除CLSID條目?我們現在遇到這種情況,並且無法找到關於如何正確構建程序集的任何信息,以便它可以在註銷時刪除其CLSID條目。 –