使用WiX(Windows安裝程序XML)我創建了一個MSI安裝程序,它將Word模板安裝到用戶應用程序數據文件夾中,例如,在Windows XP如何在Vista中獲取應用程序數據文件夾/ Word模板文件夾?
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上安裝MSI文件Vista的接受,因爲APPDIR錯誤 property is empty。
APPDIR不是檢索Application Data文件夾的正確方法嗎?或者我必須考慮Vista上的另一個屬性?
編輯:這只是檢索Word的模板文件夾的WiX代碼的簡短版本。首先,我正在檢查用戶是否具有由策略或HKCU \ Software \ Microsoft \ Office \ 12.0 \ Common \ General \ UserTemplates定義的自定義模板文件夾。但是,如果沒有設置這些回退,則使用上述代碼檢索到的%APPDATA%\ Microsoft \ Templates下的默認位置。
對不起,我忽略了APPDIR屬性來自注冊表,我的錯誤。如何在一些(本地化的)Vista安裝上無法使用?我正在嘗試您的建議,因爲聽起來真的很有幫助,並且會通知您。謝謝! – 2009-01-20 23:59:59
我已經編輯了我的答案,以澄清這一點。 – 2009-01-21 00:15:15
感謝您的編輯(以及有趣的評論;)。雷蒙德的帖子總是一個很好的閱讀! – 2009-01-21 00:34:58