Wix: изменение аргументов в зависимости от ОС - PullRequest
2 голосов
/ 02 февраля 2009

Следуя совету wcoenen, я решил попробовать использовать COM без регистрации. Это прекрасно работает, за исключением, конечно, на машинах до XP. Идея, которая, как мне показалось, была бы неплохой, заключалась в добавлении к некоторым файлам SelfRegCost='[var]'. Вполне вероятно, что это не The Right Thing ™ , но я все еще хочу знать, как это сделать, хотя бы для удовлетворения моего собственного любопытства. Я предполагаю, возможно, неправильно, что SelfRegCost='[var]' не вызовет саморегистрацию, если var - пустая строка. Но это может быть неправильно.

Это похоже на "WIX: Как изменить ключ реестра в зависимости от ОС, на которой работает установщик?" , но в моем случае я понимаю, что могу (и, вероятно, должен) использовать другой компонент и просто не волнует.

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

Ответы [ 2 ]

2 голосов
/ 05 февраля 2009

У меня не было установки COM с WiX (слава богу). Но из документации и этой ветки звучит так, будто SelfRegCost просто для того, чтобы дать MSI представление о том, сколько места необходимо проверить, чтобы проверить, доступно. Я предполагаю, что пробел либо будет ошибкой, либо будет рассматриваться как ноль, и все равно установить DLL.

Я бы определенно пошел с несколькими компонентами.

1 голос
/ 11 февраля 2009

Вам необходимо использовать условные компоненты для установки по-разному в разные ОС.

То, что вы предлагаете, это часть установки не удалась, но, мы надеемся, молча.

Используя пользовательское действие, вы можете сделать это!

<CustomAction Id="YourId" Directory="INSTALLDIR" ExeCommand='regsvr32.exe /s "[INSTALLDIR]YourCOM.dll"' Return="ignore" />

Это, конечно, не рекомендуется по ряду причин, которые предоставляет Роб Меншинг.

...