Установщик одиночных пакетов WIX - ярлыки для каждой машины - PullRequest
0 голосов
/ 22 января 2020

Я следовал этому , чтобы получить работающий установщик для каждого пользователя / компьютера, работающий с ALLUSERS = 2. Теперь моя проблема связана с правильной работой ярлыков с этой настройкой. Если я установлю MSIINSTALLPERUSER = 1 (для одного пользователя), то ярлыки рабочего стола и StartMenu всегда добавляются для каждого пользователя в HKCU. Если я установлю MSIINSTALLPERUSER = {}, я получу ярлыки на машину. В пользовательском интерфейсе MSIINSTALLPERUSER устанавливается на основе выбранной радиокнопки в расширенной части интерфейса. Таким образом, хотя ярлыки создаются последними, а их значения реестра установлены в HKMU, установщик всегда выбирает, куда поместить ярлыки, основываясь на начальном значении MSIINSTALLPERUSER.

Может ли кто-нибудь указать мне правильное направление, чтобы правильно создание ярлыков на основе типа установки, выбранного в расширенном пользовательском интерфейсе (на пользователя / на машину).

Вот мой Product.wxs `

<?xml version="1.0" encoding="UTF-8"?>        
    <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">      
        <Product Id="*" Name="HearCon" Language="1033" Version="2.0.299" Manufacturer="Tremetrics" UpgradeCode="73765816-7ba9-4a2b-89c3-ce1f26863b53">

        <Package InstallerVersion="500" Compressed="yes" />    
        <MediaTemplate EmbedCab="yes" />

        <Condition Message="Only Windows 7 and newer are supported">
            <![CDATA[Installed OR VersionNT >= 601]]>
        </Condition>

        <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />

        <Feature Id="ProductFeature" Title="Application" Level="1">
            <ComponentGroupRef Id="HearConGroup" />
            <ComponentRef Id="RA660Folder_Permission" />
        </Feature>
        <Feature Id="DesktopShortcutFeature" Title="Desktop Shortcut" Level="1">
            <ComponentRef Id="DesktopShortcut" />
        </Feature>
        <Feature Id="StartMenuShortcutFeature" Title="Start Menu Shortcut">
            <ComponentRef Id="ProgramMenuShortcut" />
            <Condition Level="1">Privileged</Condition>
        </Feature>

        <Directory Id="TARGETDIR" Name="SourceDir">
            <Directory Id="ProgramFilesFolder">
                <Directory Id="APPLICATIONFOLDER" Name="HearCon" />
            </Directory>
            <Directory Id="DesktopFolder" Name="Desktop" />
            <Directory Id="ProgramMenuFolder" />
            <Directory Id="CommonAppDataFolder">
               <Directory Id="RA660Folder" Name="RA660">
                   <Directory Id="RA660Driver" Name="Drivers" />
               </Directory>
            </Directory>
        </Directory>

        <Property Id="WixAppFolder" Value="WixPerUserFolder" />
        <Property Id="ApplicationFolderName" Value="HearCon" />
        <Property Id="ALLUSERS" Value="2" />
        <Property Id="DISABLEADVTSHORTCUTS" Value="1" />
        <Property Id="MSIINSTALLPERUSER" Value="1" />
        <UIRef Id="WixUI_CustomAdvanced" />
        <WixVariable Id="WixUIBannerBmp" Value="HearConBanner.bmp" />
    </Product>

    <Fragment>
        <DirectoryRef Id="DesktopFolder">
            <Component Id="DesktopShortcut" Guid="10E3E42D-8B2E-471D-A6F9-6263C3491D4C">        
                <RegistryValue Root="HKMU" Key="Software\Tremetrics\HearCon" Name="installed" Type="integer" Value="1" KeyPath="yes" />
            </Component>
        </DirectoryRef>
    </Fragment>

    <Fragment>
        <DirectoryRef Id="ProgramMenuFolder">
            <Component Id="ProgramMenuShortcut" Guid="2C7EA878-B1B1-4B64-937A-6B583ED5E9B3">       
                <RegistryValue Root="HKMU" Key="Software\Tremetrics\HearCon" Name="installed" Type="integer" Value="1" KeyPath="yes" />
            </Component>
        </DirectoryRef>
    </Fragment>

    <Fragment>
        <DirectoryRef Id="RA660Folder">
            <Component Id="RA660Folder_Permission" Guid="0A538414-E53F-470E-9546-7EF193878F05">
                <CreateFolder>
                    <util:PermissionEx User="Users" GenericAll="yes"/>
                </CreateFolder>
            </Component>
       </DirectoryRef>
   </Fragment>
</Wix> 

`

...