WiX (Windows Installer XML) を使用して、Word テンプレートをユーザーの Application Data フォルダー (Windows XP など) にインストールする MSI インストーラーを作成しました。
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 は Application Data フォルダーを取得する正しい方法ではありませんか? または、Vista で別のプロパティを検討する必要がありますか?
編集: これは、Word のテンプレート フォルダーを取得するための WiX コードの短いバージョンです。最初に、ユーザーがポリシーまたは HKCU\Software\Microsoft\Office\12.0\Common\General\UserTemplates で定義されたカスタム テンプレート フォルダーを持っているかどうかを実際に確認しています。ただし、これらのいずれも設定されていない場合、フォールバックは、上記のコードによって取得される %APPDATA%\Microsoft\Templates の下の既定の場所を使用することです。