【问题标题】:How to use Regasm.exe to Completely Unregister a AssemblyFile如何使用 Regasm.exe 完全注销 AssemblyFile
【发布时间】:2011-10-10 04:07:54
【问题描述】:

我尝试了以下命令来注销 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"

那么,有没有办法自动删除左侧条目?谢谢

【问题讨论】:

    标签: .net dll frameworks .net-assembly regasm


    【解决方案1】:

    程序集本身实际上负责注册和注销,因此实际程序集中可能存在未删除这些条目的问题。

    您的问题的答案完全取决于上下文。对于卸载程序,我建议只使用代码手动删除这些条目,因为您知道它们会在那里。

    我有一个安装程序,我曾经在其中调用 RegAsm 来注册/取消注册,但我认为在安装程序中包含代码来添加/删除注册表项比使用 RegAsm 更容易,这实际上是同一件事。

    【讨论】:

    • Chris(或任何其他对此了解的人)能否详细说明哪些问题可能导致程序集无法删除 CLSID 条目?我们现在遇到了这种情况,我无法找到有关如何正确构建程序集以便它可以在取消注册时删除其 CLSID 条目的任何信息。
    猜你喜欢
    • 2015-10-02
    • 1970-01-01
    • 2013-09-24
    • 2013-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多