Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

WiX installer fails with error code 2819

I am trying to create an installer using WiX which doesn't show the license agreement at the start. But I get the error as below.

Screenshot

This is the full Product.wxs file I have at the moment. It compiles and builds OK. Why am I getting an error like this? Is my Fragment section in the right place? I have removed the Publish elements pertaining to license and modified the welcome dialog's next button to show the install directory dialog instead of license agreement. This is as mentioned in the help chm file. What am I missing then?

<?xml version="1.0" encoding="UTF-8"?> <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">     <Product Id="077765d1-236d-4299-b751-f921828f2ac8"            Name="Wix Setup Example"            Language="1033"            Version="1.0.0.0"            Manufacturer="NBL" UpgradeCode="1b0f72a7-8e17-4897-9f96-66509cc39573">          <Package InstallerVersion="200" Compressed="yes"  />          <Media Id="1" Cabinet="media1.cab" EmbedCab="yes" />          <Directory Id="TARGETDIR" Name="SourceDir">             <Directory Id="ProgramFilesFolder"  >                 <Directory Id="INSTALLLOCATION" Name="My Application Folder">                     <Component Id="ProductComponent" Guid="MY-GUID-HERE">                         <File Id="WindowsFormsApp.exe"                             Source="../WindowsFormsApp/bin/Debug/WindowsFormsApp.exe">                         </File>                     </Component>                 </Directory>             </Directory>         </Directory>          <Feature Id="ProductFeature" Title="WixSetupProject" Level="1">             <ComponentRef Id="ProductComponent" />         </Feature>          <UI Id="WixUI_Advanced">             <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="Advanced" />              <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="InstallDirDlg" Order="1">NOT Installed</Publish>             <Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg" Order="1">Installed AND PATCH</Publish>              <Publish Dialog="InstallDirDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg">1</Publish>             <Publish Dialog="InstallDirDlg" Control="Next" Event="SetTargetPath" Value="[WIXUI_INSTALLDIR]" Order="1">1</Publish>             <Publish Dialog="InstallDirDlg" Control="Next" Event="DoAction" Value="WixUIValidatePath" Order="2">NOT WIXUI_DONTVALIDATEPATH</Publish>             <Publish Dialog="InstallDirDlg" Control="Next" Event="SpawnDialog" Value="InvalidDirDlg" Order="3"><![CDATA[NOT WIXUI_DONTVALIDATEPATH AND WIXUI_INSTALLDIR_VALID<>"1"]]></Publish>             <Publish Dialog="InstallDirDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg" Order="4">WIXUI_DONTVALIDATEPATH OR WIXUI_INSTALLDIR_VALID="1"</Publish>             <Publish Dialog="InstallDirDlg" Control="ChangeFolder" Property="_BrowseProperty" Value="[WIXUI_INSTALLDIR]" Order="1">1</Publish>             <Publish Dialog="InstallDirDlg" Control="ChangeFolder" Event="SpawnDialog" Value="BrowseDlg" Order="2">1</Publish>              <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="InstallDirDlg" 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_Common" />     </Product>     <Fragment>         <Property Id="ApplicationFolderName" Value="My Application Folder" />         <Property Id="WixAppFolder" Value="WixPerMachineFolder" />          <WixVariable Id="WixUISupportPerUser" Value="1" Overridable="yes" />         <WixVariable Id="WixUISupportPerMachine" Value="1" Overridable="yes" />          <PropertyRef Id="ApplicationFolderName" />     </Fragment> </Wix> 

The edited version of the WiX file that gives no error. This version however skips the install feature and browse for the file dialog:

<?xml version="1.0" encoding="UTF-8"?> <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">     <Product Id="077765d1-236d-4299-b751-f921828f2ac8"            Name="Wix Setup Example"            Language="1033"            Version="1.0.0.0"            Manufacturer="NBL" UpgradeCode="1b0f72a7-8e17-4897-9f96-66599gg39573">          <Package InstallerVersion="200" Compressed="yes"  />          <Media Id="1" Cabinet="media1.cab" EmbedCab="yes" />          <Directory Id="TARGETDIR" Name="SourceDir">             <Directory Id="ProgramFilesFolder">                 <Directory Id="INSTALLLOCATION" Name="My Application Folder">                     <Component Id="ProductComponent" Guid="17e13748-8d44-47f6-b020-66d29f8a84fe">                         <File Id="WindowsFormsApp.exe"                             Source="../WindowsFormsApp/bin/Debug/WindowsFormsApp.exe">                         </File>                     </Component>                 </Directory>             </Directory>         </Directory>          <Feature Id="ProductFeature" Title="WixSetupProject" Level="1">             <ComponentRef Id="ProductComponent" />         </Feature>          <UI Id="WixUI_Advanced">             <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="Advanced" />             <Property Id="WIXUI_INSTALLDIR" Value="INSTALLLOCATION" />              <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="BrowseDlg" Order="1">1</Publish>             <Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg" Order="1">1</Publish>              <Publish Dialog="InstallDirDlg" Control="Back" Event="NewDialog" Value="BrowseDlg">1</Publish>             <Publish Dialog="InstallDirDlg" Control="Next" Event="SetTargetPath" Value="[WIXUI_INSTALLDIR]" Order="1">1</Publish>             <Publish Dialog="InstallDirDlg" Control="Next" Event="DoAction" Value="WixUIValidatePath" Order="2">NOT WIXUI_DONTVALIDATEPATH</Publish>             <Publish Dialog="InstallDirDlg" Control="Next" Event="SpawnDialog" Value="InvalidDirDlg" Order="3"><![CDATA[NOT WIXUI_DONTVALIDATEPATH AND WIXUI_INSTALLDIR_VALID<>"1"]]></Publish>             <Publish Dialog="InstallDirDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg" Order="4">WIXUI_DONTVALIDATEPATH OR WIXUI_INSTALLDIR_VALID="1"</Publish>             <Publish Dialog="InstallDirDlg" Control="ChangeFolder" Property="_BrowseProperty" Value="[WIXUI_INSTALLDIR]" Order="1">1</Publish>             <Publish Dialog="InstallDirDlg" Control="ChangeFolder" Event="SpawnDialog" Value="BrowseDlg" Order="2">1</Publish>              <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg" 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_Common" />     </Product>      <Fragment>         <Property Id="ApplicationFolderName" Value="My Application Folder" />         <Property Id="WixAppFolder" Value="WixPerMachineFolder" />          <WixVariable Id="WixUISupportPerUser" Value="1" Overridable="yes" />         <WixVariable Id="WixUISupportPerMachine" Value="1" Overridable="yes" />          <PropertyRef Id="ApplicationFolderName" />         <UI >             <Dialog Id="CustomBrowseDlg" Width="370" Height="270" Title="!(loc.BrowseDlg_Title)">                 <Control Id="PathEdit" Type="PathEdit" X="25" Y="202" Width="320" Height="18" Property="_BrowseProperty" Indirect="yes" />                 <Control Id="OK" Type="PushButton" X="240" Y="243" Width="56" Height="17" Default="yes" Text="!(loc.WixUIOK)">                     <Publish Event="SetTargetPath" Value="[_BrowseProperty]">1</Publish>                     <Publish Event="EndDialog" Value="Return">1</Publish>                 </Control>                 <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="!(loc.WixUICancel)">                     <Publish Event="Reset" Value="0">1</Publish>                     <Publish Event="EndDialog" Value="Return">1</Publish>                 </Control>                 <Control Id="ComboLabel" Type="Text" X="25" Y="58" Width="44" Height="10" TabSkip="no" Text="!(loc.BrowseDlgComboLabel)" />                 <Control Id="DirectoryCombo" Type="DirectoryCombo" X="70" Y="55" Width="220" Height="80" Property="_BrowseProperty" Indirect="yes" Fixed="yes" Remote="yes">                     <Subscribe Event="IgnoreChange" Attribute="IgnoreChange" />                 </Control>                 <Control Id="WixUI_Bmp_Up" Type="PushButton" X="298" Y="55" Width="19" Height="19" ToolTip="!(loc.BrowseDlgWixUI_Bmp_UpTooltip)" Icon="yes" FixedSize="yes" IconSize="16" Text="!(loc.BrowseDlgWixUI_Bmp_Up)">                     <Publish Event="DirectoryListUp" Value="0">1</Publish>                 </Control>                 <Control Id="NewFolder" Type="PushButton" X="325" Y="55" Width="19" Height="19" ToolTip="!(loc.BrowseDlgNewFolderTooltip)" Icon="yes" FixedSize="yes" IconSize="16" Text="!(loc.BrowseDlgNewFolder)">                     <Publish Event="DirectoryListNew" Value="0">1</Publish>                 </Control>                 <Control Id="DirectoryList" Type="DirectoryList" X="25" Y="83" Width="320" Height="98" Property="_BrowseProperty" Sunken="yes" Indirect="yes" TabSkip="no" />                 <Control Id="PathLabel" Type="Text" X="25" Y="190" Width="320" Height="10" TabSkip="no" Text="!(loc.BrowseDlgPathLabel)" />                 <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="!(loc.BrowseDlgBannerBitmap)" />                 <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="Description" Type="Text" X="25" Y="23" Width="280" Height="15" Transparent="yes" NoPrefix="yes" Text="!(loc.BrowseDlgDescription)" />                 <Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes" Text="!(loc.BrowseDlgTitle)" />             </Dialog>         </UI>     </Fragment> </Wix> 
like image 874
user20358 Avatar asked Sep 08 '11 14:09

user20358


People also ask

How do I run as administrator in WiX Installer?

Setup tab > Run after execution input: your msi file name. Advanced tab > Mark Request Administrative access option checkbox.

What is WiX Installer used for?

Windows Installer XML Toolset (WiX, pronounced "wicks"), is a free software toolset that builds Windows Installer packages from XML. It consists of a command-line environment that developers may integrate into their build processes to build MSI and MSM packages.

Is WiX Installer free?

Download. You can download the WiX toolset for free.


1 Answers

Removing that gets the following error in the MSI logs:

DEBUG: Error 2819:  Control Folder on dialog InstallDirDlg needs a property linked to it 

Basically this means that the "browse for folder" control isn't linked up to an actual property value. You've used the value INSTALLLOCATION for the application folder - which in turn means you'll need to add the following value to link the dialog:

<Property Id="WIXUI_INSTALLDIR" Value="INSTALLLOCATION" /> 

Good luck!

like image 66
saschabeaumont Avatar answered Sep 20 '22 18:09

saschabeaumont