D J Code Ответов: 1

Как применить современный плоский пользовательский интерфейс в наборе инструментов wix?


Мне нужно, чтобы получить новый пользовательский интерфейс, используя WIX или WixEdit. Возможно ли это? Если да, то как?

Кроме того, я хочу активировать установщик с помощью моего сервера(ключ активации). Как это можно сделать в наборе инструментов Wix или с помощью WixEdit?

Что я уже пробовал:

Я попробовал майские сторонние инструменты, такие как Installforge & Inno Setup. Но я столкнулся с Wix как с полностью настраиваемым создателем установщика. Поэтому я обратился к Виксу.

Richard MacCutchan

Проверьте документацию.

MadMyche

Лучше всего было бы прочитать документацию и найти несколько учебных пособий. Google может быть полезен.

D J Code

@MadMyche: я уже искал в интернете, google, а также на форумах. Я также попытался найти документацию, связанную с настройкой пользовательского интерфейса в Wix. Но я не смог найти ничего полезного. Не могли бы вы прокомментировать мне какую-нибудь ссылку на документацию Wix, связанную с моим вопросом?

frostcox

Привет, мы использовали wix в течение нескольких лет, но в конечном итоге отошли от него из-за того, как трудно было его настроить. Затем мы просто купили бессрочную лицензию на установку Shield за 50 баксов, и она в 100 раз проще в использовании и сэкономила нам бесчисленное количество часов.

johannesnestler

Hi DJ Code - I also use wix to make installers, I changed the Mondo_UI a Little (not quite what you have in mind though). Have a look at the wix tutorial how to customize your UI (not so easy...) but it was a great help to just look at (and copy Code) from the Mondo_UI Code (see https://github.com/wixtoolset/wix3). Don't listen to others suggesting "cheap" alternatvie like InstallShield (it's just a better copy tool, doesn't realy solve real "Installation" Problems, doesn't work great with sourcecontrol, ... - but i agree that for most people this is "enough" until problems occure..). I think wix is a great tech ;) - but to if i really Need an "designed" installer UI I would proably make a custom application to "Control" normal msi-packages (which you can create with wix) - just an idea…

С уважением Йоханнес



D J Code

@johannesnestler: Спасибо за ваш ответ. Я довольно новичок в использовании набора инструментов Wix. Не могли бы вы помочь мне настроить установщик Wix в соответствии с моими потребностями? Обратите внимание на необходимость активации через сервер(мне нужно подключиться к своему серверу и проверить введенный ключ активации). Я попробовал использовать InstallForge, который имеет встроенную функцию последовательного ключа, но самое смешное, что ключ никогда не истекал!! Я мог буквально использовать ключ снова и снова.

johannesnestler

Привет еще раз, было бы довольно трудно провести вас через весь процесс. Если вы новичок в wix, вы должны посмотреть на простые учебники, wix не очень сложно, если вы "получите" основную идею. Но имейте в виду, что создание хороших настроек для клиентов никогда не бывает "легким", но если вы сделаете это "один раз" правильно, у вас будет профессиональное развертывание для ваших приложений (Если вы получили его, сделайте из него проект шаблона VisualStudio, чтобы вы могли повторно использовать его для других приложений и никогда не оглядываться назад).

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

Что касается UI-части: это действительно трудно сделать правильно, и весь процесс довольно неуклюж, я думаю, что он достаточно хорош для добавления нескольких страниц, пользовательских конфигураций и так далее, но действительно перепроектировать один из стандартных UI - это большая работа, поэтому я бы рассмотрел другие решения (как я уже упоминал-может быть, что-то вроде этой идеи https://www.codeproject.com/Articles/5773/Wrapping-the-Windows-Installer-2-0-API)

Если у вас есть конкретные проблемы, не стесняйтесь спрашивать, у меня есть некоторый опыт работы с большинством частей wix (но есть много в этом, посмотрите на очень полезные расширения!)

С уважением Йоханнес


D J Code

@johannestler: Спасибо за ответ. Как я уже писал в этом вопросе, я уже просматривал веб-страницы в поисках примеров, связанных с этим. Возможно, я могу добавить еще один диалог, посмотрев на сценарий, но я понятия не имею, как написать пользовательское действие с помощью c#. На самом деле я уже занимаюсь программированием на c#, но никогда серьезно не занимался Wix.

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

Как вы, возможно, знаете, документация Wix довольно длинна, и просмотр более чем 40 статей на веб-сайте может стоить мне очень много времени. Не могли бы вы немного помочь мне или указать конкретно на какую-нибудь статью, которая поможет мне добавить пользовательский диалог и написать пользовательское действие подключения к моему серверу?

Не стесняйтесь привести мне короткий пример, так как это не составит труда сделать так, чтобы программист-гик понял!

С уважением,
ДИДЖЕЙ

johannesnestler

смотрите мое "решение"

D J Code

@johannestler: Спасибо за решение! Вы опубликовали отличные примеры, и я надеюсь, что теперь моя установка будет работать нормально. Я все еще работаю над своим установщиком, и у меня есть довольно хорошее представление о работе Wix. И да, вы совсем не похожи на рекламодателя! Wix обладает отличной функциональностью, и даже я согласен с этим. Надеюсь, что в будущем Wix выпустит несколько хороших учебников. Если я столкнусь с какой-либо проблемой впереди(надеюсь, что их нет) Я отвечу на ваш комментарий. Спасибо за вашу помощь!

D J Code

Спасибо! Я уверен в успехе проекта.

1 Ответов

Рейтинг:
8

johannesnestler

Это ответ на ваш последний комментарий - потому что это своего рода "решение".

@Wix: Tutorial: я думаю, что это довольно "хорошо", потому что у вас есть небольшие "фрагменты" с примерами для конкретных требований - не обязательно читать его как "целое".

@CustomActions: смотрите учебник по адресу Дополнительные Действия[^] в качестве ссылки.
Начните добавлять "C# Custom Action Project for Wix v3" из VisualStudio (wix установил все шаблоны проектов для вас)
это должно быть легко - он предварительно генерирует код для одного действия-просто заполните свой код для проверки лицензии, и все будет хорошо.
Вы также можете использовать Setup-переменные (должны быть прописными, чтобы быть "глобальными" в wix) для связи "назад" к установке с объектом "сеанс". (пример взят из одного из моих действий, которое может читать и редактировать файлы app.config)

session.Log(strFilePath);
  if (File.Exists(strFilePath))
  {
      session["CONFIGURATION_FOUND"] = "1";

      ExeConfigurationFileMap map = new ExeConfigurationFileMap();
      map.ExeConfigFilename = strFilePath;
      if (map == null)
      {
          session.Log("map null");
          session["CONFIGURATION_INVALID"] = "1";
          return ActionResult.Success; // don't break the custom action here
      }


"Трудная" часть состоит в том, чтобы найти правильное "место" в последовательности настройки, я думаю, что хорошее место для вашей проверки лицензии может быть после "FindRelatedProducts" в начале настройки... (но это зависит от того, когда вы хотите это сделать)
<InstallUISequence>
      <Custom Action='MyLicenceCheckAction' After='FindRelatedProducts'>LICENSEOK</Custom>


@Custom UI: вы можете получить представление об основных функциях пользовательского интерфейса установщика здесь Один Диалог[^] - как я уже упоминал ранее (в комментариях), взгляните на код ниже wix3/src/ext/UIExtension/wixlib at Development · wixtoolset/wix3 · GitHub[^] чтобы изменить (например) Mondo_UI. Затем вы будете "публиковать" свои диалоги всегда с одним и тем же (неуклюжим, подверженным ошибкам процессом)-находите место, где ваш диалог должен появиться в последовательности (это может зависеть от условий), меняете "публикацию" диалогов до и после Нового, чтобы правильно перемещаться "назад" и "далее".

Пример из моей кодовой базы: (у меня есть диалоговое окно пользовательской конфигурации "injected" после выбора "пользовательская установка"

Публикация моего диалога выглядит следующим образом:
<Publish Dialog="DialogUpdatingConfiguration" Control="Next" Event="NewDialog" Value="VerifyReadyDlg">WixUI_InstallMode = "InstallCustom"</Publish>
      <Publish Dialog="DialogUpdatingConfiguration" Control="Back" Event="NewDialog" Value="DialogSetupOptions">1</Publish>


Публикация диалога перед этим изменилась на:

<Publish Dialog="DialogSetupOptions" Control="Next" Event="NewDialog" Value="DialogUpdatingConfiguration" Order="2">EDIT_CONFIGURATION = 1</Publish>


и публикация диалогового окна после того, как мой пользовательский (по умолчанию VerifyReadyDlg) изменился на
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="DialogSetupOptions" Order="5">WixUI_InstallMode = "InstallCustom"</Publish>
      <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="DialogUpdatingConfiguration" Order="6">EDIT_CONFIGURATION = 1</Publish>


Вы видите, что в случае EDIT_CONFIGURATION == 1 я знаю, что пришел из своего "DialogUpdatingConfiguration", так что "назад" означает вернуться к этому диалогу, в более поздних случаях я вернусь к другим диалогам, для каждого условия/навигации вы должны добавить запись "опубликовать" …
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="SetupTypeDlg" Order="2">WixUI_InstallMode = "InstallTypical" OR WixUI_InstallMode = "InstallComplete"</Publish>
      <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="CustomizeDlg" Order="3">WixUI_InstallMode = "Change"</Publish>
      <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg" Order="4">WixUI_InstallMode = "Repair" OR WixUI_InstallMode = "Remove"</Publish>
      <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg" Order="2">WixUI_InstallMode = "Update"</Publish>


Если вы дошли до этой точки, я думаю, что отсюда все просто больше похоже на то же самое. Не стесняйтесь задавать дополнительные вопросы, я постараюсь помочь ;)
Просто поиграйте немного с wix - я надеюсь, что вы придете к тому же выводу, что и я: Wix великолепен, и он так или иначе решил все мои проблемы с настройкой. Я не нашел "шоу-стоппером", что не дал мне понять, что я хотел (брандмауэры, com-сервер регистрации, ТИК-чеки, заказ-конфигурация, локализация установок, зависимостей проверяет, и множество других вещей, где программы-установки на основе "решений", найти их границы ;) - извините за звучание, как рекламодатель (я не связан или работы на Wix в любом виде) - я думаю, что в моей текущей кодовой базы у меня около 50 на Wix на основе установок :D (не настолько мал, программное обеспечение-люкс)

С уважением Йоханнес


D J Code

Спасибо за решение! Я отвечу на ваш комментарий, если какие-либо проблемы сохранятся.

johannesnestler

добро пожаловать - удачи вам в вашем проекте!