【发布时间】:2014-01-31 21:06:53
【问题描述】:
我有一个每台机器的 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>
【问题讨论】:
标签: wix windows-installer windows-vista windows-xp-sp3 wix3.8