使用wix安装到common templates文件夹

时间:2012-06-30 09:28:11

标签: wix windows-installer

在Windows安装程序提供的System Folder Properties列表中,我看到TemplateFolder是“当前用户的模板文件夹的完整路径”。因此,我可以使用TemplateFolder作为wix中的目录ID来安装特定于用户的模板。

但是,我需要安装到 common templates文件夹,即windows API中称为CSIDL_COMMON_TEMPLATES(也称FOLDERID_CommonTemplates)的文件夹。 Windows安装程序似乎没有为此提供系统文件夹属性。

如何使用wix将文件安装到公共模板文件夹?

2 个答案:

答案 0 :(得分:1)

MSDN documentation告诉我们“TemplateFolder”-ID 取决于安装上下文是否是“所有用户的Templates文件夹的完整路径”( machine)或“当前用户的Templates文件夹的完整路径”(每个用户)。

答案 1 :(得分:0)

我最终定义了这样的COMMONTEMPLATEFOLDER

<DirectoryRef Id='TARGETDIR'>
  <Directory Id='COMMONTEMPLATEFOLDER' Name='Templates' />
</DirectoryRef>

<Property Id="COMMONTEMPLATEFOLDER">
   <RegistrySearch Id="searchCommonTemplateFolder"
      Root="HKLM"
      Key="SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders"
      Name="Common Templates"
  Type="raw" />
</Property>

这似乎工作正常,但不幸的是它依赖于undocumented registry entries。我还是想找到一个更好的方法。