我有一个 permachine MSI 安装程序,我正在将其转换为将文件安装到 LocalAppDataFolder 的每个用户安装程序。

为了摆脱 ICE38 警告,我添加了一个注册表作为键路径。问题出在我的一个组件中,我有一个广告快捷方式和 ProgId。

我现在得到:

  • ICE19 - “设置”广告组件:“CMP_Rapid”。此组件无法发布,因为 KeyPath 类型不允许它
  • ICE19 - 快捷方式:“SHC_RunConfigExe”广告组件:“CMP_Rapid”。无法公布此组件,因为 KeyPath 类型不允许它。
  • ICE50 - 组件“CMP_Rapid”有一个广告快捷方式,但找不到 KeyPath。

  • 安装到 LocalAppDataFolder 时,是否有针对每个用户安装的广告?我对广告不是很熟悉。在快捷方式上,我使用它是因为我喜欢它提供的修复功能。在 progId 上我使用它,因为它会在安装后自动更新相应的图标。

    我需要在 XP 和 Vista 上安装它,以便我可以使用 Windows 7 解决方案:ProgramFilesFolder 重定向。

    下面是产生错误的组件:
    <DirectoryRef Id="INSTALL_FOLDER">
          <Component Id="CMP_Rapid"
                     Guid="{9373A11C-5A3C-49E3-963D-C19B765A4285}">
    
            <File Id="FILE_Rapid"
                  Source="$(var.FilePath)\Dynagen Configurator.exe">
            </File>
    
            <Shortcut Id="SHC_RunConfigExe"
                    Name="DYNAGEN Configurator"
                    Description="Opens DYNAGEN Configurator application."
                    Directory="ConfigShortCutDir"
                    WorkingDirectory="INSTALL_FOLDER"
                    Icon="ICO_RunConfigExe.exe"
                    Advertise="yes"/>
    
            <ProgId Id="Rapid.drcS" Icon="ICO_drcS.ico" Advertise="yes">
              <Extension Id="settings">
                <Verb Id="Open" Command="Open" Argument="/so &quot;%1&quot;" />
                <Verb Id="Edit" Command="Edit" Argument="/edit &quot;%1&quot;"/>
                <Verb Id="Program" Command="Program" Argument="/program &quot;%1&quot;"/>
              </Extension>
            </ProgId>
    
            <RegistryValue Root="HKCU"
                           Key="Software\Dynagen\DynagenConfigurator"
                           Name="CMP_Rapid"
                           Type="integer"
                           Value="1"
                           KeyPath="yes"
                           />
    
          </Component>
        </DirectoryRef>
    

    最佳答案

    结果证明通过使注册表项的键路径错误来满足 ICE38。正确的做法是忽略 ICE38 错误,而是进入 wix 属性页面并在“抑制特定的 ICE 验证”旁边添加 ICE38 和 ICE91。

    Microsoft 或 Wix 对纯按用户安装没有理想的支持。我什至在网上找不到任何好的例子。

    [email protected] 的 Bryan 帮助我解决了这个问题:



    一旦我忽略了上述工作。

    [编辑]

    另请参见 my answer here。事实证明,您需要注意一些边缘情况。

    关于wix - 是否可以为每个用户的 MSI 发布快捷方式和 ProgId?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21490035/

    10-13 07:57