2010-10-10 4 views
6

У меня есть сборка, в которой много старых зарегистрированных версий.Отмена регистрации старых версий сборки .net

Единственная dll, у меня есть последняя.

Как я могу отменить регистрацию всех версий сборки?

Спасибо.

EDIT: Я хочу сделать это во время выполнения, поэтому я хочу что-то вроде regasm -u ... или другого решения для скрипта-y.

ответ

3

EDIT: Я предполагаю, что есть связанные записи реестра, которые вы пытаетесь удалить.

Regasm может выводить REG-файл.

Вы можете использовать/RegFile опцию сгенерировать REG-файл, содержащий записи реестра вместо внесения изменения непосредственно в реестр. Вы, , можете обновить реестр на компьютере , импортировав REG-файл с помощью редактора реестра (Regedit.exe).

Если вы хотите удалить старые версии во время выполнения, предположительно, вы можете:

1) Создайте файл рег для текущей сборки (для справочных целей).

2) Написать заявление в котором анализировался реестр для подобных ключей (возможно, с разными номерами версий?)

3) Используйте Regasm для отмены регистрации, соответствующие сборок. При необходимости удалите COM-объекты с помощью regsvr32.

4) ВНИМАТЕЛЬНО удалите эти ключи программно.

5) Зарегистрируйте новую сборку.

6) gacutil недавно зарегистрированная сборка (при необходимости).

Мой COM/Interop немного ржавый, поэтому, пожалуйста, оставьте комментарий, если это не сработает.

+0

Извините, что не ясны. Я хочу сделать это во время выполнения. –

+2

Затем используйте сценарий, чтобы сделать это (перечислите файлы в этой папке и запустите 'regasm/u' на тех, которые вы хотите удалить. –

+0

@Allon - хорошая точка ... все равно будут ссылки COM, чтобы иметь дело с –

Смежные вопросы