4

这不是一个问题,而是一个答案。
问题的一部分在这里可用:如何为所有用户安装程序快捷方式?
引用:
“...如何让安装程序在所有用户配置文件下创建快捷方式,以便机器上的每个人都有快捷方式?”
另一个 - 这里:Wix为所有用户/每台机器创建非广告快捷方式
引用:
“......在教程中我看到使用注册表值作为快捷方式的键路径。问题是他们使用HKCU作为根...... 。”

创建卸载快捷方式的主要困难。

该解决方案基于 Rob Menching 的博客文章如何创建卸载快捷方式(并通过所有 ICE 验证)

<!-- Script from Rob Menching's blog post -->
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="PUT-GUID-HERE"
         UpgradeCode="PUT-GUID-HERE"
         Name="TestUinstallShortcut"
         Language="1033"
         Version="1.0.0"
         Manufacturer="Microsoft Corporation"> 

    <Package InstallerVersion="200"
            Compressed="yes"
            InstallScope="perMachine" />

    <Media Id="1" />

    <Directory Id="TARGETDIR"
               Name="SourceDir">
        <Directory Id="ProgramMenuFolder">
            <Directory Id="ShortcutFolder"
                       Name="My Application">
                <Component Id="UninstallShortcutComponent"
                           Guid="PUT-GUID-HERE">
                    <RegistryKey Root="HKCU"
                                 Key="Software\[UpgradeCode]">
                        <RegistryValue Value="RobMen Was Here."
                                       Type="string"
                                       KeyPath="yes" />
                    </RegistryKey>

                    <Shortcut Id="UninstallProduct"
                              Name="Uninstall My Application"
                              Target="[System64Folder]msiexec.exe"
                              Arguments="/x [ProductCode]"
                              Directory="ShortcutFolder"
                              Description="Uninstalls My Application" />

                    <RemoveFolder Id="RemoveShorcutFolder"
                                  On="uninstall" />
                </Component>
            </Directory>
        </Directory>
    </Directory>

    <Feature Id="TestUninstallShortcut"
             Title="Test Uninstall Shortcut Feature"
             Level="1">
        <ComponentRef Id="UninstallShortcutComponent" />
    </Feature>
    <CustomAction Id="LaunchApp" 
                  Directory="TARGETDIR" 
                  ExeCommand="[System64Folder]reg.exe Delete HKCU\Software\[UpgradeCode] /f" />
    <InstallExecuteSequence>
        <Custom Action="LaunchApp" 
                After="InstallFinalize">(NOT Installed) OR UPGRADINGPRODUCTCODE</Custom>
    </InstallExecuteSequence>
</Product>
</Wix>  

在此示例中:
在“Package”项中添加InstallScope ="perMachine"
了将注册表项更改为"Software\[UpgradeCode]"
添加了 CustomActionLaunchApp以删除不需要的注册表项。

在 WinXP 32 位和 Win7 64 位上测试。

4

0 回答 0