Как использовать Regasm.exe чтобы полностью отменить регистрацию файла сборки

#.net #dll #frameworks #.net-assembly #regasm

#.net #dll #фреймворки #.net-сборка #regasm

Вопрос:

Я попробовал следующую команду для отмены регистрации файла сборки:

 regasm "AssemblyFilePath" /unregister /silent
  

Тем не менее, он по-прежнему оставляет такие записи реестра:

 Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINESOFTWAREClassesCLSID{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_MACHINESOFTWAREClassesCLSID{0039733E-1312-4535-B292-68A5137FE367}InprocServer3210.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"
  

Итак, есть ли способ автоматически удалить оставленные записи? спасибо

Ответ №1:

Сама сборка фактически отвечает за регистрацию и отмену регистрации, поэтому, возможно, в самой сборке есть проблема, из-за которой эти записи не удаляются.

Ответ на ваш вопрос полностью зависит от контекста. В случае деинсталлятора я бы предложил просто использовать код для ручного удаления этих записей, поскольку вы знаете, что они там будут.

У меня есть установщик, в котором я вызывал RegAsm для регистрации / отмены регистрации, но я решил, что гораздо проще просто включить код в установщик для добавления / удаления записей реестра вместо использования RegAsm, что фактически одно и то же.

Комментарии:

1. Крис (или кто-либо еще, кто знает об этом) не могли бы вы подробнее рассказать о том, какие проблемы могут привести к сбою сборки при удалении записей CLSID? Сейчас мы сталкиваемся с этой ситуацией, и у меня возникают проблемы с поиском какой-либо информации о том, как правильно собрать сборку, чтобы она могла удалять свои записи CLSID при отмене регистрации.