... и если да, то почему я не могу использовать 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 развивается?