WIX创建没有注册表项的所有用户快捷方式

时间:2016-09-13 11:44:05

标签: wix registry shortcut

我有一个WIX文件,我用来安装应用程序并创建两个快捷方式。其中一个用户启动菜单,一个用户启动桌面。 因为它在所有用户中创建了它,我认为你不需要有一个注册密钥。

但如果没有它就会抱怨。 与

error LGHT0204: ICE38: Component ProgramMenuAppFolder installs to user profile. It must use a registry key under HKCU as its KeyPath, not a file.

对于HKLM,它也抱怨

LGHT0204: ICE38: Component ProgramMenuAppFolder installs to user profile. It's KeyPath registry key must fall under HKCU.

即使它已安装到所有用户,因此不应安装到用户个人资料。

有什么建议吗?                                                 

  <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension">
    <Product Id="*" Name="$(var.PublisherSimple) $(var.AppName)" Language="1033" Version="$(var.ProductVersion)" Manufacturer="$(var.Publisher)" UpgradeCode="$(var.ProductUpgradeCode)">
      <Package
        Description="$(var.PublisherSimple) $(var.AppName) $(var.ProductVersion)"
        InstallerVersion="200" Compressed="yes"
        InstallScope="perMachine"
        />
      <Property Id="DISABLEADVTSHORTCUTS" Value="1" />

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

      <Feature Id="ProductFeature" Title="$(var.PublisherSimple) $(var.AppName) $(var.ProductVersion)" Level="1">
        <ComponentGroupRef Id="ProductComponents" />
        <ComponentRef Id="ProgramMenuDir"/>
        <ComponentRef Id="ProgramMenuAppFolder"/>
      </Feature>
      <UI>
        <UIRef Id="WixUI_InstallDir" /> <!-- actually uses but that just skips the licence page <UIRef Id="WixUI_InstallDir_Custom" />-->

        <Publish Dialog="ExitDialog"
            Control="Finish"
            Event="DoAction"
            Value="LaunchApplication">WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed</Publish>
      </UI>

      <Property Id="WIXUI_INSTALLDIR" Value="INSTALLFOLDER" />
      <!--<Property Id="WixAppFolder" Value="WixPerMachineFolder" />-->

      <Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT" Value="Launch $(var.AppName)" />
      <Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOX" Value="1" />

      <Property Id="WixShellExecTarget" Value="[#MVTestApp.exe]" />
      <CustomAction Id="LaunchApplication" BinaryKey="WixCA" DllEntry="WixShellExec" Impersonate="yes" />
    </Product>

    <Fragment>
      <Directory Id="TARGETDIR" Name="SourceDir">
        <Directory Id="ProgramFilesFolder">
          <Directory Id="PublisherDirectory" Name="MV">
            <Directory Id="INSTALLFOLDER" Name="MV Test App"/>
          </Directory>
        </Directory>
            <Directory Id="ProgramMenuFolder" Name="Programs">
                <Directory Id="ProgramMenuDir" Name="MV" >
                  <Directory Id="ProgramMenuAppFolder" Name="MV Test App Folder">
                    <Component Id="ProgramMenuAppFolder" Guid="3ebfd81d-08b2-4bcf-8c90-e84241a58976">
                      <RemoveFolder Id="ProgramMenuAppFolder" On="uninstall" />
                      <!--<RegistryValue Root="HKCU" Key="Software\[Manufacturer]\[ProductName]" Type="string" Value="" KeyPath="yes" />-->
                    </Component>
                  </Directory>
                  <Component Id="ProgramMenuDir" Guid="f1cf94bf-5e5a-4c60-8729-65bdf1cb9244">
                    <RemoveFolder Id="ProgramMenuDir" On="uninstall" />
                    <!--<RegistryValue Root="HKCU" Key="Software\[Manufacturer]\[ProductName]Start" Type="string" Value="" KeyPath="yes" />-->
                  </Component>
                </Directory>
            </Directory>
            <Directory Id="DesktopFolder" Name="Desktop" />    
      </Directory>
    </Fragment>

    <Fragment>
      <ComponentGroup Id="ProductComponents">
        <Component Id="MVTestApp.Exe" Directory="INSTALLFOLDER" Guid="*" Win64="no">
          <File Id="MVTestApp.Exe" KeyPath="yes" Source="MVTestApp.Exe" />
          <Shortcut Id="startmenuShortCut" Directory="ProgramMenuAppFolder" Name="MV Test App Short Start" WorkingDirectory="INSTALLFOLDER" Advertise="yes" />
          <Shortcut Id="desktopShortCut" Directory="DesktopFolder" Name="MV Test App Short Desk" WorkingDirectory="INSTALLFOLDER" Advertise="yes" />
        </Component>
      </ComponentGroup>
    </Fragment>
  </Wix>

这是与Install optional desktop shortcut for all users

类似的问题

0 个答案:

没有答案
相关问题