2008-10-13 36 views
23

我需要将文件安装到Environment.SpecialFolder.ApplicationData文件夹中,该文件夹在XP和Vista之间有所不同。有没有内置的方式来引用WiX中正确的文件夹,或者我将不得不使用OS的条件检查并手动执行?什么是.NET的Environment.SpecialFolder.ApplicationData的WiX equivilent?

如果我必须做后者,我如何在Vista中引用当前Windows用户的目录?

ID为

回答

45

使用目录元素设置为AppDataFolder

<Directory Id="AppDataFolder"> 
    <Directory Id="MyAppFolder" Name="My"> 
    <Component Id="MyComponent"> 
     <File Source="Files\test1.txt" /> 
    </Component> 
    </Directory> 
</Directory> 

这将导致test1.txt的被安装到C:\ Users \用户名 \应用程序数据\漫游\我的Windows 7和到C :\ Documents and Settings \ 用户名 \ Application Data \ My在Windows XP上。

MSDN有一个list of properties,您可以用它来引用特殊文件夹。

+3

请注意,此处可以省略Name =“AppDataFolder”属性。那里只需要Id属性。另外,你可以省略组件`Guid`; wix现在会自动生成一个稳定的Guid。最后,你可以省略`File`元素的`Id`,`Name`和`KeyPath`属性。 `Id`和`Name`默认具有基于Source的值,并且该文件将自动成为该组件的关键路径,因为该组件不包含任何其他内容。 – 2014-04-25 08:08:05