Hey im creating an installer of a program that is depending on another program called “visma” what i want to do is simply that when the user will choose the install path.
That the user also needs to specify two more paths where they have installed visma.
and then i would like to read from that input to a txt file or something else so i can outside the program later on read the paths and copy some files i need from visma.

this is how far i have got in the UI the install works and does its job
but i dont know how to create the directory variables needed to change the default path the three fields get in the picture
MYInstalldirdlg
*
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment>
<UI>
<Dialog Id="MYInstallDirDlg" Width="370" Height="270" Title="!(loc.InstallDirDlg_Title)">
<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="!(loc.WixUINext)" />
<Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="!(loc.WixUIBack)" />
<Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="!(loc.WixUICancel)">
<Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
</Control>
<Control Id="Description" Type="Text" X="25" Y="23" Width="280" Height="15" Transparent="yes" NoPrefix="yes" Text="Choose default or your own folder for install and specify visma folders" />
<Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes" Text="{\WixUI_Font_Title}Destination Folders" />
<Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="!(loc.InstallDirDlgBannerBitmap)" />
<Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />
<Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />
<Control Id="FolderLabel1" Type="Text" X="20" Y="50" Width="290" Height="12" NoPrefix="yes" Text="!(loc.InstallDirDlgFolderLabel)" />
<Control Id="Folder1" Type="PathEdit" X="20" Y="65" Width="320" Height="18" Property="WIXUI_INSTALLDIR" Indirect="yes" />
<Control Id="ChangeFolder1" Type="PushButton" X="20" Y="85" Width="56" Height="15" Text="!(loc.InstallDirDlgChange)" />
<Control Id="FolderLabel2" Type="Text" X="20" Y="110" Width="290" Height="12" NoPrefix="yes" Text="Please specify where your Visma Administration installation folder is:" />
<Control Id="Folder2" Type="PathEdit" X="20" Y="125" Hidden ="no" Width="320" Height="18" Property="WIXUI_INSTALLDIR" Indirect="yes" />
<Control Id="ChangeFolder2" Type="Text" X="20" Y="150" Width="56" Height="18" Text="Change..." />
<Control Id="FolderLabel3" Type="Text" X="20" Y="175" Width="290" Height="22" NoPrefix="yes" Text="Please specify where your SPCS folder is which contains (Företag) and (Gemensamma filer):" />
<Control Id="Folder3" Type="PathEdit" X="20" Y="195" Hidden ="no" Width="320" Height="18" Property="WIXUI_INSTALLDIR" Indirect="yes" />
<Control Id="ChangeFolder3" Type="Text" X="20" Y="215" Width="56" Height="18" Text="Change..." />
</Dialog>
</UI>
</Fragment>
as you see they all have the same path they get from my directory WIXUI_INSTALLDIR
WixUI_MYInstallDir
*
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment>
<UI Id="WixUI_MYInstallDir">
<TextStyle Id="WixUI_Font_Normal" FaceName="Tahoma" Size="8" />
<TextStyle Id="WixUI_Font_Bigger" FaceName="Tahoma" Size="12" />
<TextStyle Id="WixUI_Font_Title" FaceName="Tahoma" Size="9" Bold="yes" />
<Property Id="DefaultUIFont" Value="WixUI_Font_Normal" />
<Property Id="WixUI_Mode" Value="InstallDir" />
<DialogRef Id="BrowseDlg" />
<DialogRef Id="DiskCostDlg" />
<DialogRef Id="ErrorDlg" />
<DialogRef Id="FatalError" />
<DialogRef Id="FilesInUse" />
<DialogRef Id="MsiRMFilesInUse" />
<DialogRef Id="PrepareDlg" />
<DialogRef Id="ProgressDlg" />
<DialogRef Id="ResumeDlg" />
<DialogRef Id="UserExit" />
<Publish Dialog="BrowseDlg" Control="OK" Event="DoAction" Value="WixUIValidatePath" Order="3">1</Publish>
<Publish Dialog="BrowseDlg" Control="OK" Event="SpawnDialog" Value="InvalidDirDlg" Order="4"><![CDATA[WIXUI_INSTALLDIR_VALID<>"1"]]></Publish>
<Publish Dialog="ExitDialog" Control="Finish" Event="EndDialog" Value="Return" Order="999">1</Publish>
<Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="LicenseAgreementDlg">NOT Installed</Publish>
<Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg">Installed AND PATCH</Publish>
<Publish Dialog="LicenseAgreementDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg">1</Publish>
<Publish Dialog="LicenseAgreementDlg" Control="Next" Event="NewDialog" Value="MYInstallDirDlg">LicenseAccepted = "1"</Publish>
<Publish Dialog="MYInstallDirDlg" Control="Back" Event="NewDialog" Value="LicenseAgreementDlg">1</Publish>
<Publish Dialog="MYInstallDirDlg" Control="Next" Event="SetTargetPath" Value="[WIXUI_INSTALLDIR]" Order="1">1</Publish>
<Publish Dialog="MYInstallDirDlg" Control="Next" Event="DoAction" Value="WixUIValidatePath" Order="2">NOT WIXUI_DONTVALIDATEPATH</Publish>
<Publish Dialog="MYInstallDirDlg" Control="Next" Event="SpawnDialog" Value="InvalidDirDlg" Order="3"><![CDATA[NOT WIXUI_DONTVALIDATEPATH AND WIXUI_INSTALLDIR_VALID<>"1"]]></Publish>
<Publish Dialog="MYInstallDirDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg" Order="4">WIXUI_DONTVALIDATEPATH OR WIXUI_INSTALLDIR_VALID="1"</Publish>
<Publish Dialog="MYInstallDirDlg" Control="ChangeFolder1" Property="_BrowseProperty" Value="[WIXUI_INSTALLDIR]" Order="1">1</Publish>
<Publish Dialog="MYInstallDirDlg" Control="ChangeFolder1" Event="SpawnDialog" Value="BrowseDlg" Order="2">1</Publish>
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="MYInstallDirDlg" Order="1">NOT Installed</Publish>
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg" Order="2">Installed AND NOT PATCH</Publish>
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg" Order="2">Installed AND PATCH</Publish>
<Publish Dialog="MaintenanceWelcomeDlg" Control="Next" Event="NewDialog" Value="MaintenanceTypeDlg">1</Publish>
<Publish Dialog="MaintenanceTypeDlg" Control="RepairButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
<Publish Dialog="MaintenanceTypeDlg" Control="RemoveButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
<Publish Dialog="MaintenanceTypeDlg" Control="Back" Event="NewDialog" Value="MaintenanceWelcomeDlg">1</Publish>
<Property Id="ARPNOMODIFY" Value="1" />
</UI>
<UIRef Id="WixUI_MYCommon" />
</Fragment>
here i have only made the necessary changes to make it work: changed to WixUI_MYInstallDir and such so the names match
Product
*
<!-- Directory 1 (install folder) -->
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLDIR" Name="ITC_Venato" >
</Directory>
//componet stuff and files to install
</Directory>
</Directory>
<Feature
Id="Venato_Windows_Service_0.904"
Title="Venato Windows Service"
Level="1">
<ComponentRef Id="Venatoexe" />
</Feature>
<!-- Include a user interface-->
<Property Id="WIXUI_INSTALLDIR">INSTALLDIR</Property>
<UIRef Id="WixUI_MYInstallDir" />
<UIRef Id="WixUI_ErrorProgressText" />
only included the relevant parts but i have a wix and product tags on order but i guess i have to make a new Property Id to my new folder paths i want.
but how do i make it so the program just reads the paths and send them to a variable i can read or into a text file. I dont want the program to create new folder like it does with the install path. theese should just be picked by the user where visma is and then read.
thank you for answers!
*
*
*
*
error

Use different properties like you mentioned:
If you want to save them to a text file then I would use a custom action. Heres my code on how I save data to a text file.
I am assuming you are installing the text file with the product so get the directory it is in:
And the helper function:
EDIT: forgot to mention to add the custom action and schedule it after
InstallFinalize