Nano Hash - криптовалюты, майнинг, программирование

Настроить WixUI_Minimal на WiX 3.11 / Visual Studio 2017

Я пытаюсь настроить диалоговое окно WixUI_Minimal, установленное на WiX 3.11, с помощью Visual Studio.

Следуя руководству, здесь, больше не работает, так как оно сообщает о большом количестве повторяющихся символов. Например:

Duplicate symbol 'ControlEvent:VerifyReadyDlg/Back/NewDialog/WelcomeDlg/Installed AND PATCH' found. This typically means that an Id is duplicated. Check to make sure all your identifiers of a given type (File, Component, Feature) are unique

(Этот вопрос о переполнении стека столкнулся с той же проблемой )

Пробуем использовать решения в этом вопросе тоже не помог, так как он выдавал различные коды ошибок (отличные от упомянутых в вопросе).

Этот вопрос и этот тоже не помог.

Вроде в Wix 3.11 / Visual Studio 2017 что-то сломалось. Кому-нибудь удалось понять, как исправить? Я отчасти опасаюсь, что WiX потеряет поддержку со стороны своих авторов ...



Ответы:


1

Я не уверен, почему вы думаете, что WiX теряет поддержку. Здесь и в списке рассылки wix-users предоставляется много бесплатной поддержки. Они также предлагают варианты платной поддержки с соглашениями об уровне обслуживания и исправлениями. Другие консультанты, такие как я, также оказывают бесплатную и платную поддержку.

WiXUI - это простой в использовании стандартный набор пользовательского интерфейса с ограниченными возможностями переопределения / преобразования. Вы можете делать такие вещи, как вставка диалога в последовательность цикла мастера, но для этого требуется, чтобы вы понимали, как оцениваются строки в области таблицы ControlEvent.

Вы можете увидеть пример здесь:

https://github.com/iswix-llc/iswix/blob/master/Application/IsWiXNewAddIn/MSISolutionTemplate/SetupProjectTemplate/UI.wxs

Моя раскомментирующая строка 10 заставляет его использовать этот фрагмент:

https://github.com/iswix-llc/iswix/blob/master/Application/IsWiXNewAddIn/MSISolutionTemplate/SetupProjectTemplate/UI-CustomDialog.wxs

Строки 33-34 вставляют в таблицу ControlEvent строки, которые имеют приоритет над существующими строками на основании:

https://docs.microsoft.com/en-us/windows/desktop/msi/controlevent-table

Если это слишком ограничивает ваши потребности, вы можете не использовать расширение пользовательского интерфейса и просто скопировать все его файлы отсюда и делать с ними все, что захотите:

https://github.com/wixtoolset/wix3/tree/develop/src/ext/UIExtension/wixlib

Наконец, если это не соответствует вашим потребностям, вы всегда можете создать собственное приложение-загрузчик для Burn и использовать WPF / MVVM, чтобы делать все, что вы, возможно, захотите.

FWIW, я пишу установщики 23 года и использую MSI 16 лет. Я автор проекта FOSS IsWiX, который предоставляет шаблоны и конструкторы для упрощения автоматизации большей части этой работы. Вы можете получить представление о том, как работает IsWiX, здесь:

https://github.com/iswix-llc/iswix-tutorials

Для заинтересованных лиц доступны 1 час бесплатных консультаций. Просто напишите мне электронное письмо или отправьте мне приглашение в LinkedIn.

11.03.2019
  • Спасибо @christopher - никакого вреда :) Просто просмотр форумов заставил меня почувствовать, что многое было перенесено в будущую версию 4.0, хотя это не произойдет в ближайшее время - это я мог видеть. Я взял из install_dir в настоящее время и заставил его работать с другими вопросами здесь, но я уверен, что ваш вклад будет ценен для других (или для меня в будущем) 18.03.2019
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

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

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..