【问题标题】:Per-Machine install problem with User Profile用户配置文件的每台机器安装问题
【发布时间】:2011-03-20 01:12:26
【问题描述】:

将我的 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" />

<Package InstallScope="perMachine" ... />

编辑:CreateFolder 的代码

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

【问题讨论】:

  • 组件CreateFolder是如何指定的?你能发布 XML 吗?
  • 对于其他各种组件,我实际上也有 13 次相同的错误。这只是最简单的展示方式,无需将产品或公司名称放在此处:P 所有其他都只是捷径。

标签: wix windows-installer allusersprofile


【解决方案1】:

【讨论】:

  • 因为这是一个专业程序,我试图避免仅仅为了编写注册表项而编写它们。如果我只是简单地忽略 ICE,那么一切都没有问题,但这本身就是一个问题。这个问题是否有任何不涉及注册表项或忽略的解决方法,或者我是否坚持选择两害相权取其轻?
  • 是的,你必须从两害相权取其轻。就个人而言,我通常使用“快捷方式所需的注册表项”来跟踪有关我的产品的一些有用信息。例如 UpgradeCode 或安装位置或版本。
【解决方案2】:

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

<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>

【讨论】:

  • 根据 WiX 文档,它需要在一个组件中,并且该组件需要一个注册表项(每个用户),否则会出现相同的错误。 wix.sourceforge.net/manual-wix2/wix_xsd_shortcut.htm 是我正在谈论的文档的链接。
  • 是的,需要一个组件(或文档中列出的另一个父元素。您的示例似乎没有意义,因为您在 AdminToolsFolder 中创建了一个 AdminToolsFolder。相反,您应该创建那里有快捷方式。
  • 即使我在那里创建了快捷方式,我也会得到同样的错误。每当我尝试在用户配置文件中创建组件时都会收到该错误。我真的不明白发生了什么。就像我说的那样,这是一个每台机器的安装,我收到了每个用户的错误:(
  • 我还创建了文件夹,以便我的程序可以在需要时使用它。在安装时,我实际上没有任何内容。它更像是一个有保证的占位符。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-21
相关资源
最近更新 更多