Используя WiX (Windows Installer XML), я создал установщик MSI, который устанавливает шаблоны Word в пользовательскую папку Application Data, например, в 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>
Однако некоторые пользователи, устанавливающие файл MSI в Windows Vista , получают сообщение об ошибке, поскольку свойство APPDIR имеет значение пусто .
Является ли APPDIR неправильным способом получения папки с данными приложения? Или я должен рассмотреть другое свойство на Vista?
РЕДАКТИРОВАТЬ: это всего лишь короткая версия кода WiX для получения папки шаблона Word. Сначала я проверяю, есть ли у пользователя папка с пользовательским шаблоном, определенная политикой, или в разделе HKCU \ Software \ Microsoft \ Office \ 12.0 \ Common \ General \ UserTemplates. Однако, если ни один из них не установлен, резервным вариантом является использование местоположения по умолчанию в папке% APPDATA% \ Microsoft \ Templates, которое получается с помощью приведенного выше кода.