2011-04-11 51 views
5

我想从regspy.exe提取COM注册后,通过WiX注册进程外COM文件(.exe),并且遇到了我需要编写的注册表项的问题:如何获取Windows Installer属性的WiX文件夹的简称?

<RegistryValue Value="C:\PROGRA~1\COMMON~1\file.exe /Automation" Type="String" /> 

现在我想使用Windows Installer属性[CommonFilesFolder]因为不是每个人都将安装到C:\

对于进程文件(.dll)长的名字是可以接受的:

<RegistryValue Value="[CommonFilesFolder]file.dll" Type="string" /> 

但它似乎没有不适用于进程外。有没有办法说服或将[CommonFilesFolder]转换为短名称?这是x64的特殊问题,因为名称将解析为C:\ PROGRA〜2 \而不是C:\ PROGRA〜1 \

+0

将可执行文件名引起的引号也应该适用于长路径,如'Value =“" [CommonFilesFolder] file.exe "/Automation”'。 – 2011-04-12 06:02:09

回答

6

使用[!idOfFile]获取完整的短路径。 (有关特殊格式化键的完整列表,请参阅Formatted in MSI SDK。)

+0

完美的作品!谢谢! – 2011-04-11 21:05:33

相关问题