I am running WiX version 3.0.5419.0.

I am building an installer for a program that transforms data.  The program
reads data from an input directory and writes the transformed data to an
output directory.  I want the user to be able to specify the input and
output directory during the installation process and have the installer save
the values to the registry.

I created an msi installer using WiX.  It uses a modified version of the
WixUI_InstallDir that includes an additional configuration dialog with
PathEdit controls to accept the user defined values.  When I run my
installer I get the following error before my custom configuration dialog
opens up:

    DEBUG: Error 2343:  Specified path is empty.

Here is the code I use to handle the user provided input directory (the
output directory code is very similar):

I have a Component for the input directory registry entry that references a
UI_CONFIG_INPUT_DIR property that holds the user defined entry:

      <DirectoryRef Id="APPLICATIONROOTDIRECTORY">
         <Component Id="InputDirectory"
Guid="c2689487-f89b-419c-a098-bd2d6cccb2ab">
            <RegistryValue Root="HKCU" Key="Software\ACME\DATA
PROJECT\Configure" Name="Input_dir" Type="string"
Value="[UI_CONFIG_INPUT_DIR]"/>
         </Component>
      </DirectoryRef>

In my feature I reference the InputDirectory Component:

      <Feature Id="DATA PROJECT " Title="DATA PROJECT handler" Level="1"
ConfigurableDirectory="APPLICATIONROOTDIRECTORY">
         <ComponentRef Id="InputDirectory" />
      </Feature>

The UI_CONFIG_INPUT_DIR is defined and set to a default value of C:\\:

      <Property Id="UI_CONFIG_INPUT_DIR" Value="C:\\" />

In my custom version of the WixUI_InstallDir I have the following Publish
commands to handle the user input from a ConfigureDlg dialog I created (see
below):

            <Publish Dialog="ConfigureDlg" Control="Back" Event="NewDialog"
Value="MyInstallDirDlg" Order="1">1</Publish>
            <Publish Dialog="ConfigureDlg" Control="Next" Event="NewDialog"
Value="VerifyReadyDlg" Order="1">1</Publish>
            <Publish Dialog="ConfigureDlg" Control="Next"
Event="SetProperty" Value="[UI_CONFIG_INPUT_DIR]" Order="1">1</Publish>
            <Publish Dialog="ConfigureDlg" Control="ChangeInputFolder"
Property="_BrowseProperty" Value="[UI_CONFIG_INPUT_DIR]"
Order="1">1</Publish>

The ConfigureDlg includes a PathEdit Control to accept the user input:

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi";>
    <Fragment>
        <UI>
            <Dialog Id="ConfigureDlg" 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="FolderInputLabel" Type="Text" X="20" Y="60"
Width="290" Height="20" Text="Raw FOQA Input Directory:" />
                <Control Id="FolderInput" Type="PathEdit" X="20" Y="80"
Width="320" Height="18" Property="UI_CONFIG_INPUT_DIR" Indirect="yes" />
                <Control Id="ChangeInputFolder" Type="PushButton" X="20"
Y="100" Width="56" Height="17" Text="!(loc.InstallDirDlgChange)" />
             </Dialog>
        </UI>
    </Fragment>
</Wix>

Thanks in advance for any help,

Curt-
------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to