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

StackOverflow https://stackoverflow.com/questions/829844

  •  06-07-2019
  •  | 
  •  

Вопрос

Мне нужен полный сценарий WiX, который можно собрать.

  1. Добро пожаловать
  2. Лицензионное соглашение
  3. Установочная папка
  4. Выбор установки для текущего пользователя или для всех пользователей
  5. Установить
  6. Заканчивать

Мне нужен только один файл wxs, потому что он предназначен для простого приложения.Также мне нужна возможность установить его для текущего пользователя или всех пользователей.

Это было полезно?

Решение

ты проверил WixUI_Advanced Пользовательский интерфейс, встроенный в Wix3?

Вот диалоги, которые у него есть:

  • РасширенныйДобро пожаловатьEulaDlg
  • ОбзорDlg
  • Дисккостдлг
  • ОсобенностиDlg
  • УстановитьDirDlg
  • Инсталлскопедлг (для выбора пользователя или для каждой машины)
  • Инвалиддирдлг

Другие советы

Я также использовал WixUI_InstallDir, но скопировал его и настроил в соответствии со своими потребностями, добавив текст «Что делать дальше» в конце установщика.я использовал это подробное прохождение взять стоковый Wix GUI и поменять пару экранов под свои цели.Для этого вам потребуется получить исходный код Wix, но только с целью получения некомпилированных версий фактического файла Product.wxs, который разработчики Wix включают для запуска установщика WixUI_InstallDir.

Итак, в основном у меня есть что-то вроде этого в решении (с использованием надстройки Votive для VS):

  • МойВеб-проект
  • Проект Wix
    • MyWeb.wxs — очевидно, мой продукт
    • Product.wxs — файл Wix, полученный из источника Wix, который определяет структуру, поток и содержимое WixUI_InstallDir.
    • My_InstallDir.wxs — здесь происходит самое интересное.По сути, скопировал исходный код файла Wix, изменил его в соответствии с моими потребностями, а затем убедился, что в Product.wxs у меня есть ссылка на мой Экран, а не оригинальный.

Продукт.wxs

    <UI>
        <UIRef Id="My_InstallDir"/>
    </UI>

    <!-- Add the customized EULA -->
    <WixVariable Id="WixUILicenseRtf" Value="$(var.SolutionDir)\doc\license.rtf" />
    <Property Id="WIXUI_INSTALLDIR" Value="INSTALLLOCATION" />
    <UIRef Id="My_InstallDir" />
    <!-- Add the customized banner logo -->
    <WixVariable Id="WixUIBannerBmp" Value="$(var.SolutionDir)\doc\InstallerBanner.bmp" />
    <WixVariable Id="WixUIDialogBmp" Value="$(var.SolutionDir)\doc\InstallerSidebar.bmp" />

My_InstallDir.wxs полностью не изменился, за исключением строки, относящейся к моему диалоговому окну выхода, в котором находятся мои примечания «Что делать дальше»:

<Publish Dialog="MyExitDialog" Control="Finish" Event="EndDialog" Value="Return" Order="999">1</Publish>

Итак, настоящие изменения происходят в My_ExitDialog, где я показываю текст:

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment>
    <UI>
        <Dialog Id="MyExitDialog" Width="370" Height="270" Title="!(loc.ExitDialog_Title) test">
            <Control Id="Finish" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Cancel="yes" Text="!(loc.WixUIFinish)" />
            <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Disabled="yes" Text="!(loc.WixUICancel)" />
            <Control Id="Bitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="234" TabSkip="no" Text="!(loc.ExitDialogBitmap)" />
            <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Disabled="yes" Text="!(loc.WixUIBack)" />
            <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />
            <!--<Control Id="Description" Type="Text" X="135" Y="70" Width="220" Height="40" Transparent="yes" NoPrefix="yes" Text="!(loc.ExitDialogDescription)" />-->
            <Control Id="Title" Type="Text" X="135" Y="20" Width="220" Height="60" Transparent="yes" NoPrefix="yes" Text="!(loc.ExitDialogTitle)" />
            <Control Id="NextSteps" Type="ScrollableText" X="135" Y="70" Width="220" Height="140" Sunken="yes" TabSkip="no">
                <Text SourceFile="$(var.SolutionDir)\doc\GemWebAfterInstall.rtf" />
            </Control>
        </Dialog>

        <InstallUISequence>
            <Show Dialog="MyExitDialog" OnExit="success" />
        </InstallUISequence>

        <AdminUISequence>
            <Show Dialog="MyExitDialog" OnExit="success" />
        </AdminUISequence>
    </UI>
</Fragment>

Я знаю, что вы ищете решение, а не обязательно указатели.Однако, используя статью, на которую я ссылаюсь, как ключевую отправную точку, я думаю, вы можете найти все необходимые вам части либо в готовых битах WixUI, либо заменив небольшие части «готовых» вещей. как у меня.Удачи.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top