2012-06-30 28 views
1

在由Windows安装程序提供System Folder Properties列表中,我看到一个TemplateFolder这是“为当前用户模板文件夹完整路径”。所以我可以使用TemplateFolder作为wix中的目录ID来安装用户特定的模板。安装到普通模板文件夹威克斯

然而,我需要安装到共同模板文件夹,即一个称为CSIDL_COMMON_TEMPLATES在windows API(也FOLDERID_CommonTemplates)。 Windows安装程序似乎没有为此提供系统文件夹属性。

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

回答

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。我仍然想找到更好的方法。

1

MSDN documentation告诉我们的“TemplateFolder” -ID,它取决于安装方面无论是“为所有用户模板文件夹的完整路径”(每机)或“完整路径当前用户的Templates文件夹“(每个用户)。

+0

虽然此链接可能回答问题,但最好在此处包含答案的基本部分,并提供供参考的链接。如果链接页面更改,则仅链接答案可能会失效。 –

+0

@AdrianCidAlmaguer:它确实包含了必要的部分。 –

+0

@NathanTuggy谢谢 –