Зарегистрируйте COM dll в GAC с помощью WiX - PullRequest
2 голосов
/ 05 декабря 2010

Приветствую всех,

Я работаю над сценарием установки WiX для моей программы.Мне нужно установить C # DLL в GAC, а затем зарегистрировать его.Итак, я помечаю файл Assembly=".net", чтобы WiX GAC предоставил его мне, а затем у меня есть отложенное настраиваемое действие, настроенное на выполнение до InstallFinalize, которое вызывает Assembly.Load для загрузки сборки из GAC, а затем RegistrationServices.RegisterAssembly чтобы зарегистрировать его.

Должно быть идеально, за исключением одной проблемы: очевидно, dll на самом деле не записывается в GAC до фазы фиксации, поэтому при выполнении моего настраиваемого действия Assembly.Load выбрасывает, потому что ононе могу найти файл.Где это находится?Это вообще доступно до фазы фиксации?Или есть лучший способ сделать это полностью?Похоже на такую ​​тривиальную вещь ...

Пожалуйста, не предлагайте использовать heat.exe;Я бы очень хотел этого избежать.У моей программы есть ComRegisterFunction, который хотел бы выполнить на компьютере пользователя, если это вообще возможно.

1 Ответ

0 голосов
/ 05 декабря 2010

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

Кроме того, вы не устанавливаете свою сборку только в GAC, не так ли? Укажите вашу регистрацию COM на местоположение, не относящееся к GAC.

...