Reputation: 2379
so I have been trying to develop this installer for my application. I decided to change my GUI to <UIRef Id="WixUI_InstallDir" />
. According to a tutorial that I was reading I also need to include <Property Id="WIXUI_INSTALLDIR" Value="TOP_LEVEL_DIR" />
if I use that GUI. But, since I changed the GUI and added this line I am getting an error (2343). I have posted the MSI Log below as well and it is complaining about a location?
Error: MSI (c) (CC:84) [13:27:33:140]: Note: 1: 2343 DEBUG: Error 2343: Specified path is empty. The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2343. The arguments are: , , MSI (c) (CC:84) [13:27:34:663]: Product: Viewer 1.0 -- The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2343. The arguments are: , ,
Action ended 13:27:34: WelcomeDlg. Return value 3.
MSI (c) (CC:DC) [13:27:34:672]: Doing action: FatalError
Action 13:27:34: FatalError.
Action start 13:27:34: FatalError.
Action 13:27:34: FatalError. Dialog created
Action ended 13:27:36: FatalError. Return value 2.
Action ended 13:27:36: INSTALL. Return value 3.
Code:
<?xml version='1.0' encoding='windows-1252'?>
<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'>
<Product Name='Viewer 1.0' Id='*' UpgradeCode='PUT-GUID-HERE'
Language='1033' Codepage='1252' Version='1.0.0' Manufacturer='Direct'>
<Package Id='*' Keywords='Installer' Description="Viewer Installer"
Comments='Installer is a registered trademark.' Manufacturer='Direct'
InstallerVersion='100' Languages='1033' Compressed='yes'
SummaryCodepage='1252' />
<Media Id='1' Cabinet='Sample.cab' EmbedCab='yes' DiskPrompt="CD-ROM #1" />
<Property Id='DiskPrompt' Value="1.0 Installation [1]" />
<Property Id="WIXUI_INSTALLDIR" Value="TOP_LEVEL_DIR" />
<Directory Id='TARGETDIR' Name='SourceDir'>
<Directory Id='ProgramFilesFolder' Name='PFiles'>
<Directory Id='Direct' Name='DMD'>
<Directory Id='INSTALLDIR' Name='Viewer'>
<Component Id='MainExecutable' Guid='*'>
<Shortcut Id="startmenuViewer" Directory="ProgramMenuDir"
Name="Viewer" WorkingDirectory='INSTALLDIR'
Icon="Viewer.exe" IconIndex="0" Advertise="yes" />
<Shortcut Id="desktopViewer" Directory="DesktopFolder"
Name="Viewer" WorkingDirectory='INSTALLDIR'
Icon="Viewer.exe" IconIndex="0" Advertise="yes" />
<File Id='EXE' Name='Viewer.exe' DiskId='1'
Source='Viewer.exe' KeyPath='yes'>
</File>
<ProgId Id="DMDCCDAV" Description="Viewer">
<Extension Id="xml" >
<Verb Id="open" Argument=""%1""
TargetFile="EXE" />
</Extension>
</ProgId>
</Component>
</Directory>
</Directory>
</Directory>
<Directory Id="ProgramMenuFolder" Name="Programs">
<Directory Id="ProgramMenuDir" Name="Viewer">
<Component Id="ProgramMenuDir" Guid="*">
<RemoveFolder Id='ProgramMenuDir' On='uninstall' />
<RegistryValue Root='HKCU'
Key='Software\[Manufacturer]\[ProductName]'
Type='string' Value='' KeyPath='yes' />
</Component>
</Directory>
</Directory>
<Directory Id="DesktopFolder" Name="Desktop" />
</Directory>
<Feature Id='Complete' Title='Viewer Installation'
Display='expand' Level='1' ConfigurableDirectory='INSTALLDIR'>
<Feature Id='MainProgram' Title='Viewer Program'
Description='The main executable.' Level='1'>
<ComponentRef Id='MainExecutable' />
<ComponentRef Id='ProgramMenuDir' />
</Feature>
</Feature>
<UIRef Id="WixUI_InstallDir" />
<UIRef Id="WixUI_ErrorProgressText" />
<Icon Id="Viewer.exe" SourceFile="Viewer.exe" />
</Product>
</Wix>
Upvotes: 11
Views: 15586
Reputation: 8323
The value of <Property Id="WIXUI_INSTALLDIR" Value="TOP_LEVEL_DIR" />
is what you specify as allowing the user to set with the UI dialog box. In this case, you are identifying TOP_LEVEL_DIR
as the ID of the directory that you want the user to set, but you don't have it mapped to any corresponding Directory
tag.
Assuming you're trying to allow them to change the root install directory, try setting the value of WIXUI_INSTALLDIR
from TOP_LEVEL_DIR
to INSTALLDIR
instead.
See this reference for more info.
Upvotes: 21