我有一个 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 "%1"" />
<Verb Id="Edit" Command="Edit" Argument="/edit "%1""/>
<Verb Id="Program" Command="Program" Argument="/program "%1""/>
</Extension>
</ProgId>
<RegistryValue Root="HKCU"
Key="Software\Dynagen\DynagenConfigurator"
Name="CMP_Rapid"
Type="integer"
Value="1"
KeyPath="yes"
/>
</Component>
</DirectoryRef>