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

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

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

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

Ответы [ 2 ]

7 голосов
/ 06 мая 2009

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

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

  • AdvancedWelcomeEulaDlg
  • BrowseDlg
  • DiskCostDlg
  • ОсобенностиDlg
  • InstallDirDlg
  • InstallScopeDlg (для выбора пользователя или компьютера)
  • InvalidDirDlg
3 голосов
/ 13 мая 2009

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

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

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

Product.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, либо заменив небольшие кусочки готовых деталей. как у меня. Удачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...