2013-07-01 38 views
4

我有一个MSI文件,它安装了一个文件夹,里面有一堆文件。我有我把文件中的位置:使用WiX安装文件夹给ALLUSERS(不是快捷方式!)使用WiX

的Windows XP: C:\ Documents和Settings \所有用户\文档\ MyFolder文件

的Windows 7: C:\用户\ Public \ Documents \ MyFolder

问题是我不想硬编码这些路径,但无论我在哪里看,我都无法找到如何做到这一点,因为无处不在,他们正在讨论为所有用户制作快捷方式那就是不是我正在尝试做什么。如何将文件夹安装到“所有用户”位置?

事情是这样的:

<PropertyRef Id="WIX_DIR_COMMON_DOCUMENTS" /> 

<Directory Id="TARGETDIR" Name="SourceDir"> 
    <Directory Id="WIX_DIR_COMMON_DOCUMENTS"> 
    <Directory Id="MyFolder" Name="MyFolder"> 

回答

6

Windows安装程序不具有该文件夹property,但维克斯提供的自定义操作一样。

每在单证上OSInfo custom actions

  1. 参考的WixUtilExtension扩展链接。
  2. 经由基准定义属性:

    <PropertyRef Id="WIX_DIR_COMMON_DOCUMENTS" /> 
    

然后,某处定义TARGETDIR目录下的目录中。例如:

<Directory Id="TARGETDIR" Name="SourceDir"> 
     <Directory Id="WIX_DIR_COMMON_DOCUMENTS">` 
     <Directory Id="MyFolder" Name="MyFolder" />` 
     </Directory>` 
    </Directory>` 
+0

我改变了我的问题,以反映我所做的更改,但现在我得到2600错误(不夸张)。它说了一些关于“因为这个文件夹没有植根于标准目录,所以这个组件不符合标准” – Jimmy

+1

是的,你(或heat.exe)必须为你的组件生成GUID。通过消除GUID,WiX可以很好地为我们提供服务,但它并不总是如此。如果您始终只进行MajorUpgrades(推荐),那么GUID无关紧要。否则,从版本到版本,组件GUID必须相同。 –

+0

所以我使用下面的热指令,这不是自动生成GUIDS吗? “C:\ Program Files \ WiX Toolset v3.7 \ bin \ heat.exe”dir“.. \ .. \ MyFolder \ Stuff”-dr INSTALLFOLDER -gg -var var.MyFolderBin -srd -ag -sfrag - t .. \ .. \ template.xslt -out .. \ .. \ MyFolderBin.wxs – Jimmy

相关问题