Как сделать так, чтобы установщик WIX адаптировался к доступной версии установщика Windows — например, элемент управления «Гиперссылка»

Установщик Windows 5 добавил поддержку элемента управления Hyperlink, который я хотел бы использовать, если он доступен. Я не могу установить зависимость от установщика Windows 5 (не поддерживает WinXP), но я хотел бы, чтобы мой установщик мог использовать элемент управления гиперссылкой, если установщик Windows 5 доступен при запуске установщика.

Как вам это удается? Условный импорт файлов фрагментов на основе версииMsi имущество? поиск кода Google или обычный поиск в Google не выявил многих образцов.


person tronda    schedule 16.02.2011    source источник


Ответы (2)


Вы захотите прочитать эту статью:

Осторожно с этой гиперссылкой (в диалоговом окне MSI)

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

person Christopher Painter    schedule 16.02.2011
comment
Добавив к этому немного, вам не нужен условный импорт фрагментов (время сборки), если только вы не хотите создавать множество файлов .msi. Вместо этого вам нужны условия внутри одного .msi, который вы создаете, какой ключ от свойства VersionMsi во время выполнения. В этом случае, как говорит Крис, в событиях управления диалогом будет выбор одного из двух диалогов. - person Michael Urman; 16.02.2011
comment
Любые указатели на то, как я буду делать это с WIX? Могу ли я встроить оба диалога в один и тот же файл WXS, не рискуя ошибкой во время выполнения, поскольку диалог не будет использоваться, если версия Msi ниже 5.0? - person tronda; 16.02.2011
comment
@tronda, где вы размещаете диалоги в своих файлах WXS, не имеет большого значения. Важно то, что у вас есть условие для ваших тегов Publish, которое предотвращает появление диалога с гиперссылкой, если свойство VersionMsi не является достаточно высоким. - person heavyd; 16.02.2011
comment
Извините, я использую WiX UI только тогда, когда мне нужен Minimal без каких-либо настроек. Когда мне нужна тяжелая работа с пользовательским интерфейсом, я использую InstallShield. - person Christopher Painter; 16.02.2011
comment
tronda обнаружила предостережение для этого решения в этом вопросе, поскольку диалоговое окно «Выход» является особым случаем. - person Rob Hunter; 16.10.2012
comment
Вы можете использовать динамический пользовательский интерфейс для внедрения элемента управления гиперссылкой, только если он поддерживается. blog.deploymentengineering.com/2008/07/ - person Christopher Painter; 16.10.2012

Я использую WIX Installer и использовал этот код. Wix — это бесплатный инструмент с открытым исходным кодом, такой же, как и другие дорогостоящие инструменты. Я использовал этот код для гиперссылки, и он отлично работает

        <Control Id="MyHyperlinkControl1" Height="20" Width="100" Type="Hyperlink" X="5" Y="105">
          <Text><![CDATA[<a href="http://www.stackoverflow.com/">Stackoverflow</a>]]></Text>
        </Control>
person Sunil Agarwal    schedule 30.05.2011
comment
Я не понимаю, как вы решаете основную проблему, заключающуюся в том, как обращаться с установщиками, когда версия MSI не поддерживает гиперссылки. - person tronda; 30.05.2011