Question

I'm about to create an installer, now i have to set the install-directory depending on the operation-system. My directory-tree:

<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>

if i set the TARGETDIRECTORY in the c#-custom-action, the targetdirectory gets set correct, but the CONFIG/FOLDER2 just have the old links. How can i force them to adjust them to the new paths? because they are childs of the TARGETDIRECTORY, i guess they should do this automatically. I dont want to set it all on my own in the CustomAction, because there are even many more folders comming

here from the log file:

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:\
Was it helpful?

Solution

could solve the problem with SetProperty:

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

OTHER TIPS

This could happen if you change the install path before CostFinalize. If this is the case you need to use a different custom action to set the path, that allows Windows Installer to be notified about the change and update the child directories.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top