使用 WiX (Windows Installer XML) 我创建了一个 MSI 安装程序,它将 Word 模板安装到用户应用程序数据文件夹中,例如在 Windows XP 上
C:\Documents and Settings\<user>\Application Data\Microsoft\Templates
我正在从注册表中检索此文件夹的路径:
<Property Id="APPDIR" Secure="yes">
<RegistrySearch Id="RegSearch_AppData"
Type="directory"
Key="Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"
Name="AppData"
Root="HKCU" />
</Property>
<CustomAction Id="ActionWordTemplateFolderAssign"
Property="TEMPLATEFOLDER"
Value="[APPDIR]Microsoft\Templates" />
<InstallExecuteSequence>
<Custom Action="ActionWordTemplateFolderAssign" Sequence="1" />
</InstallExecuteSequence>
但是,某些在 Windows Vista上安装 MSI 文件的用户会收到错误,因为APPDIR属性为空。
APPDIR 不是检索应用程序数据文件夹的正确方法吗?还是我必须考虑在 Vista 上的另一处房产?
编辑:这只是检索 Word 模板文件夹的 WiX 代码的简短版本。首先,我实际上是在检查用户是否具有由策略或 HKCU\Software\Microsoft\Office\12.0\Common\General\UserTemplates 下定义的自定义模板文件夹。但是,如果这些都没有设置,则回退是使用上面代码检索到的 %APPDATA%\Microsoft\Templates 下的默认位置。