我正在尝试制作一个wix安装程序。 我定义了两个功能。我希望能够在不同的位置安装每个功能。
<Feature Id='ServerInstallation' Title='Engine' Level='1' ConfigurableDirectory='TARGETDIR'>
<ComponentGroupRef Id='ServerFileSystemGroup' />
<ComponentGroupRef Id='RegistryGroup' />
</Feature>
我希望能够将它放在磁盘上的任何位置,默认值为c:\ Program Files \ ProductName \ Feature1
<Feature Id='ClientInstallation' Title='Moduletitle' Level='1' ConfigurableDirectory='INSTALLLOCATION'>
<ComponentGroupRef Id='ClientSystemGroup' />
<Feature Id='Subfeatureid' Title='Subfeature' Level='1'>
<ComponentGroupRef Id='SubfeatureSystemGroup' />
</Feature>
</Feature>
我希望能够将它放在磁盘上的任何位置,默认值为c:\ Program Files \ ProductName \ Feature2
但是这两个功能应该可以安装在任何不相关的位置。 我尝试定义根目录TARGETDIR并在同一级别上安装INSTALLLOCATION但是我收到错误
ID为“INSTALLLOCATION”的目录不是有效的根目录。每个产品或模块可能只有一个根目录,其Id属性值必须为“TARGETDIR”,其Name属性值必须为“SourceDir”。
我如何正确设置?
答案 0 :(得分:0)
查看<Directory>
结构可能会有所帮助,但无论如何,您都不能将TARGETDIR
用作可配置目录。 TARGETDIR
只能在根目录中使用,一切都在内部。
我认为你的应该是这样的:
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="ProductFolder" Name="ProductName">
<Directory Id="INSTALLDIR1" Name="Feature1" />
<Directory Id="INSTALLDIR2" Name="Feature2" />
</Directory>
</Directory>
</Directory>
然后,您可以将INSTALLDIR1
和INSTALLDIR2
用于ConfigurableDirectory
。
另见