在Windows安装程序提供的System Folder Properties列表中,我看到TemplateFolder
是“当前用户的模板文件夹的完整路径”。因此,我可以使用TemplateFolder
作为wix中的目录ID来安装特定于用户的模板。
但是,我需要安装到 common templates文件夹,即windows API中称为CSIDL_COMMON_TEMPLATES
(也称FOLDERID_CommonTemplates
)的文件夹。 Windows安装程序似乎没有为此提供系统文件夹属性。
如何使用wix将文件安装到公共模板文件夹?
答案 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。我还是想找到一个更好的方法。