WiX - 通过CustomAction [C#]动态设置Instaldirectory

时间:2013-04-19 11:36:04

标签: c# wix windows-installer wix3.5 wix3.6

我即将创建一个安装程序,现在我必须根据操作系统设置install-directory。我的目录树:

<Property Id="TARGETDIR" Value="C:\" />
<Directory Id="TARGETDIR" Name="SourceDir">
  <Directory Id="TARGETDIRECTORY" Name="MyApplication">
    <Directory Id="CONFIG" Name="Config">
      <Directory Id="FOLDER2" Name="Folder2" />
    </Directory>
  </Directory>
</Directory>

如果我在c#-custom-action中设置TARGETDIRECTORY,则targetdirectory设置正确,但CONFIG / FOLDER2只有旧链接。我如何强迫他们将它们调整到新的路径?因为他们是TARGETDIRECTORY的孩子,我想他们应该自动这样做。我不想在CustomAction中自己设置它,因为甚至还有更多的文件夹出现

来自日志文件:

Property(S): FOLDER2 = C:\MyApplication\Config\Folder2\
Property(S): CONFIG = C:\MyApplication\Config\
Property(S): TARGETDIRECTORY = C:\Documents and Settings\MyApplication\
Property(S): TARGETDIR = C:\

2 个答案:

答案 0 :(得分:2)

可以解决SetProperty的问题:

<Property Id="TARGETDIRECTORY" Value="C:\Win7\" />
<SetProperty Id="TARGETDIRECTORY" Before="CostFinalize" Value="C:\WinXP\">
  <![CDATA[VersionNT = 501]]>
</SetProperty>

答案 1 :(得分:1)

如果在CostFinalize之前更改安装路径,则可能会发生这种情况。如果是这种情况,则需要use a different custom action to set the path,这样可以通知Windows Installer有关更改并更新子目录。