Является ли dark.exe (из WiX) надежным способом извлечения информации из MSI? - PullRequest
1 голос
/ 11 марта 2011

... и если да, то почему я не могу использовать SelfRegCost="0"?

Так что это может стать немного философским;)

Основная проблема: я должен зарегистрировать DLL ShellExtension во время установки. При использовании простого старого развертывания VS2008 у меня было настраиваемое действие, которое запускало regsvr32 на моей dll. Затем в моей настройке WiX я сделал то же самое, даже с отменой регистрации (/ u) при удалении. Это отлично работает.

До недавнего времени у меня была проблема с некоторыми сторонними DLL, теряющими свою регистрацию после удаления установки Visual Studio. Я обнаружил, что установка перезаписала расположение DLL по умолчанию. Я обнаружил возможность изменить свойство Register с vsdrfCOMSelfReg на vsdrfDoNotRegister, и теперь моя программа установки больше не перезаписывает расположение по умолчанию.

Это заставило меня подумать, что я могу использовать одно и то же свойство для регистрации моей DLL ShellExtension. Итак, давайте используем dark на VS Setup и посмотрим, что означает перевод vsdrfCOMSelfReg. И я обнаружил, что единственным отличием является атрибут SelfRegCost="0" в теге File.

Но в соответствии с этой статьей ( Как зарегистрировать Win32 COM DLL-файл в WiX 3? ) с использованием SelfRegCost - ошибкой, многие вещи идут не так, как надо. Возможно.

Теперь мои рассуждения таковы: либо

a) dark.exe не является реальным способом извлечения информации из MSI или

б) использование SelfRegCost="0" не так плохо, как все притворяются, поскольку Visual Studio развивается?

Ответы [ 2 ]

2 голосов
/ 11 марта 2011

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

2 голосов
/ 11 марта 2011

Visual Studio предоставляет функциональность;это не значит, что это хорошая идея использовать его.Самостоятельная регистрация - это плохо, и ее следует избегать, явно разрешив регистрацию COM с использованием таких элементов WiX, как Class и ProgId.

...