2010-07-23 70 views
3

安装问题在构建我的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> 
+0

如何指定组件'CreateFolder'?你能发布XML吗? – 2010-07-23 11:00:26

+0

对于其他各种组件,我实际上也有相同的错误13次。这只是最容易展示的产品或公司名称:P所有其他都只是捷径。 – Adkins 2010-07-23 11:06:49

回答

4
+0

因为这是一个专业的程序,我试图避免为了编写它们而写注册表键。如果我简单地忽略ICE,那么一切正常,没有问题,但是在它和它之间如果是问题。是否有任何解决这个问题的方法不涉及注册表键或忽略,还是我坚持仅仅挑选两个恶意中的较小者? – Adkins 2010-07-27 08:18:35

+1

是的,你必须选择两个邪恶中的较小者。就我个人而言,我通常使用“快捷方式所需的注册表项”来跟踪有关我的产品的一些有用信息。例如UpgradeCode或安装位置或版本。 – 2010-07-27 14:14:49

0

如果你想创建一个快捷方式,你可以使用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> 
+1

根据WiX文档,它需要在一个组件中,并且该组件需要一个注册表项(每个用户),否则会出现相同的错误。 http://wix.sourceforge.net/manual-wix2/wix_xsd_shortcut.htm是我正在讨论的文档的链接。 – Adkins 2010-07-23 11:18:57

+0

是的,需要一个组件(或文档中列出的另一个父元素),因为您在AdminToolsFolder中创建了一个AdminToolsFolder,所以您的示例看起来没有意义,而应该在那里创建快捷方式 – 2010-07-23 11:24:40

+0

即使我在那里创建快捷方式,我得到了同样的错误,任何时候我尝试在用户配置文件中创建一个组件都会出现这个错误,我真的不知道发生了什么,就像我说的那样,它是一个每台机器的安装,我得到的每个用户的错误:( – Adkins 2010-07-23 11:26:13