Wix 用户配置文件的每台计算机安装问题

Wix 用户配置文件的每台计算机安装问题,wix,windows-installer,allusersprofile,Wix,Windows Installer,Allusersprofile,将WXS数据构建到MSI中时,出现以下错误: ICE38: Component CreateFolder installs to user profile. It must use a registry key under HKCU as its KeyPath, not a file. 这让我很困惑,因为我的项目设置为每台机器安装,所以据我所知,它应该安装到“C:\Users\All Users”或“C:\Users\Default”而不是实际的用户配置文件。我试过几种不同的方法来说明这是一

将WXS数据构建到MSI中时,出现以下错误:

ICE38: Component CreateFolder installs to user profile. It must use a registry key under HKCU as its KeyPath, not a file.
这让我很困惑,因为我的项目设置为每台机器安装,所以据我所知,它应该安装到“C:\Users\All Users”或“C:\Users\Default”而不是实际的用户配置文件。我试过几种不同的方法来说明这是一种每台机器安装,但都不起作用。任何想法都将不胜感激。我被难住了

为了使它成为每台机器,我尝试了这两种设置(分别),但都不起作用

<Property Id="ALLUSERS" Value="2" />


编辑:CreateFolder的代码

            <Directory Id="AdminToolsFolder" SourceName="Admin Tools">
                <Component Id="CreateFolder" Guid="{452A617E-XXXX-XXXX-XXXX-3710802B3BBD}" KeyPath="yes">
                    <CreateFolder Directory="AdminToolsFolder" />
                </Component>
            </Directory>

如果要创建快捷方式,可以使用
快捷方式
元素:

<Directory Id="AdminToolsFolder" SourceName="Admin Tools">
  <Component Id="MyShortcuts" Guid="<guid value>">
    <Shortcut Id="Shortcut_MyAdminTool" Directory="AdminToolsFolder"
              Name="My Admin Tool" Target="[#AdminTool]"
              Show="normal" WorkingDirectory="TARGETDIR" />
  </Component>
</Directory>


我刚才写了一个解决这个问题的方法:。

如何指定组件
CreateFolder
?你能发布XML吗?事实上,对于其他各种组件,我也有13次同样的错误。这是在不显示产品或公司名称的情况下最容易显示的:P所有其他名称都只是快捷方式。根据WiX文档,它需要位于组件中,并且组件需要一个注册表项(每个用户),否则会出现相同的错误。是指向我正在谈论的文档的链接。是的,需要一个组件(或文档中列出的其他父元素。您的示例似乎没有意义,因为您正在AdminToolsFolder中创建AdminToolsFolder。相反,您应该在那里创建快捷方式。即使我在那里创建快捷方式,我也会遇到相同的错误。每当我尝试在user prof中创建组件时,我都会遇到该错误。)ile。我真的不明白发生了什么。就像我说的,这是每台机器的安装,我得到了每用户的错误:(此外,我还创建了文件夹,以便在需要时供我的程序使用。在安装时,我实际上没有任何东西放在那里。它更像是一个有保证的占位符。由于这是一个专业程序,我正试图避免仅仅为了编写注册表项而编写注册表项。如果我只是忽略ICE,那么一切都与您一起工作这不是一个问题,但这本身就是一个问题。有没有解决这个问题的方法不涉及注册表项或忽略,或者我只是选择两个缺点中的较小者?是的,你必须选择两个缺点中的较小者。就我个人而言,我通常使用“快捷方式所需的注册表项”跟踪有关我的产品的一些有用信息。例如升级代码或安装位置或版本。
<Directory Id="AdminToolsFolder" SourceName="Admin Tools">
  <Component Id="MyShortcuts" Guid="<guid value>">
    <Shortcut Id="Shortcut_MyAdminTool" Directory="AdminToolsFolder"
              Name="My Admin Tool" Target="[#AdminTool]"
              Show="normal" WorkingDirectory="TARGETDIR" />
  </Component>
</Directory>