如何正确使用WIX的SetDirectory

How to use WIX's SetDirectory correctly

我有一个片段可以处理我的应用程序的安装位置,但是我想安装到自定义位置 (C:\PtecMonitor) vs Program Files(x86)....

<Fragment>
   <Directory Id="TARGETDIR" Name="SourceDir">
       <Directory Id="WINDOWSVOLUME">
         <Directory Id="INSTALLLOCATION" Name="PtecMonitor" />
       </Directory>
     <Directory Id="ProgramMenuFolder">
       <Directory Id="ApplicationProgramsFolder" Name="Ptec Share Monitor"/>
     </Directory>
   </Directory>
   <SetDirectory Id="WINDOWSVOLUME" Name="[WindowsVolume]" />
</Fragment>

这会引发错误“未找到 SetDirectory/@Value 属性;它是必需的。

SetDirectory 应该设置在哪里才能使其工作?

<SetDirectory /> 没有名为“Name”的属性,您可能想设置“Value”。 请参阅文档以获取更多信息 https://wixtoolset.org/documentation/manual/v3/xsd/wix/setdirectory.html

Set属性 和 SetDirectory 是语法糖,用于简化 MSI Type 51 (Set 属性) 和 Type 35 (Set Directory) 自定义操作的创作。一般来说,类型 51 应该在成本计算之前安排,类型 35 应该在成本计算之后安排。