This project has moved and is read-only. For the latest updates, please go here.

Customizing the MSI User Interface NOT the Deployment UI

Topics: General Questions, Server Deployment, Tips and Tricks
Jan 31, 2015 at 6:45 PM
I have tried to modify the WIX file as per the documentation but I don't seem to be able to do some of the things I want to do and I don't know exactly why.

First, the default install location is C:\Program Files (x86)\Product Name\Version. This is setup in the wxs file. I have tried to change this to C:\Program Files (x86)\myCompany\Product Name\Version in the wxs file but this does not work.

2nd, I want to use the WIXUI_Mondo interface to direct the MSI to offer features as any other MSI is allowed to do. But when I try to do this, it does not work. I want to use the features selected to drive a custom action that configures the MSBUILD command to do the deployment. Basically my features are a set of Environment Specific items that may or may not be present and the Custom Action needs to know which are present in order to build the command correctly.

BTW, the Deployment UI is not desirable as I would prefer to script this part.
Feb 3, 2015 at 6:21 AM
You can set the default installation path using an MSBuild property named DefaultInstallDir in your .btdfproj.

As for the WiX UI, I'm not sure what you mean by "it [WixUI_Mondo] does not work." Have you followed the instructions here?

Feb 3, 2015 at 5:07 PM
Thanks for your reply.
I will try the DefaultInstallDir setting. But I'm curious why setting a folder structure in the wxs file doesn't have the desired effect.

As for the WixUI_Mondo; I can't select any features as that screen doesn't show up. Yes I followed the instructions at that location.
If I inspect the MSI file with ORCA, I can see all my customizations in the MSI, the features are there, additional components are there,
but only the four basic screens are shown when I install the MSI.
I've used WIX quite a bit in the past, but for some reason, with the BTDF, Wix doesn't like me :(.

I'll keep digging into my files, but does anything come to mind regarding something I may have neglected to do?

Thanks again.
Feb 5, 2015 at 6:47 AM
I didn't ask what version of the Deployment Framework you're using. I'm assuming v5.5. There's nothing special about this application of WiX. WixUIExtension.dll is already referenced, so any WiX UI is available.

You've edited the copy of GenericBizTalkMSI.wxs in your deployment project folder to replace <UIRef Id="WixUI_InstallDir" /> with <UIRef Id="WixUI_Mondo" />, removed <Property Id="WIXUI_INSTALLDIR" Value="INSTALLDIR" />, and you don't see any change in the UI?

Feb 5, 2015 at 7:00 PM
Hi Tom,
I've done as you mention. And, I do not see any change in the UI.

You've edited the copy of GenericBizTalkMSI.wxs in your deployment project folder to replace
<UIRef Id="WixUI_InstallDir" /> with <UIRef Id="WixUI_Mondo" />, removed <Property Id="WIXUI_INSTALLDIR" Value="INSTALLDIR" />,
and you don't see any change in the UI?

I do not see a change in the UI. I'm going to include the details of what I did below, including the generated candle and light commands.

In my btdfproj file, I added this line to force usage of my custom WXS file:
In my custom wxf file: (Vancity.Isl.RequestResponse.wxs) I changed the following:
    <Feature Id="Complete" Title="$(var.ProductName) Setup" Description="All features installed." Display="expand" Level="1">
      <Feature Id="Program" Title="!(loc.ProductName)" Description="Program components." Level="1" Absent="disallow">
        <ComponentGroupRef Id="RedistComponentGroup" />
      </Feature >
      <Feature Id="Cleanup" Title ="Cleanup" Description="Testing" Level="3">
        <ComponentRef Id="Cleanup" />

    <!--<Feature Id="DefaultFeature" Level="1">
      <ComponentGroupRef Id="RedistComponentGroup" />
      <ComponentRef Id="Cleanup" />

    <!--<Property Id="WIXUI_INSTALLDIR" Value="INSTALLDIR" />-->

    <UI Id="MyUI">
      <!--<UIRef Id="WixUI_InstallDir" />-->
      <UIRef Id="WixUI_Mondo"/>

      <Publish Dialog="ExitDialog"
          Value="LaunchApplication">WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed</Publish>
The candle command was:
"C:\Program Files (x86)\WiX Toolset v3.7\bin\\candle.exe" "-dredist_folder=obj\Debug\redist" "-dProductUpgradeCode=8b3631db-cdb0-41f4-9418-2ad52476d423" "-dProductName=Vancity.Isl.RequestResponse" "-dProductId=638cfe30-5702-4eca-a174-903c4c306502" "-dProductVersion=1.0.0" "-dProjectVersion=1.0.0" "-dManufacturer=Vancity" "-dPackageDescription=Isl Request-Response Core" "-dPackageComments=Contains functionality to implement the ISL Request-Response integration pattern." "-dDeploymentTest=" "-dBizTalkAppName=Vancity.Isl.ESB" "-dProjectFilename=Vancity.Isl.RequestResponse.Deployment.btdfproj" -dIncludeDeployRulesShortcut=false -dIncludeSSOEditorShortcut=false -dCreateStartMenuShortcuts=True -out "obj\Debug\\" "Vancity.Isl.RequestResponse.wxs" "obj\Debug\RedistComponentGroup.wxs"
The light command was:
 "C:\Program Files (x86)\WiX Toolset v3.7\bin\\light.exe" "obj\Debug\GenericBizTalkMSI.wixobj" "obj\Debug\RedistComponentGroup.wixobj" -out "C:\TeamFoundation\Vancity\ISL\RequestResponse\DEV\Main-Integration\Vancity.Isl.RequestResponse.Deployment\bin\Debug\\Vancity.Isl.RequestResponse-1.0.0.msi" -ext "C:\Program Files (x86)\WiX Toolset v3.7\bin\\WixUIExtension.dll" -ext "C:\Program Files (x86)\WiX Toolset v3.7\bin\\WixNetFxExtension.dll" -spdb
AND.... Just as I'm creating this I notice that the linker is referencing the obj\Debug\GenericBizTalkMSI.wixobj file instead of the renamed file obj\Debug\Vancity.Isl.RequestResponse.wixobj


PS. I'll revert my custom name to the standard name and see if that fixes the problem.
Feb 5, 2015 at 7:20 PM
After doing as I mentioned in my last post...I now see the customized UI.
Marked as answer by deankasa on 2/5/2015 at 12:02 PM
Feb 5, 2015 at 7:39 PM
Thanks for tracking that down, and sorry for the inconvenience. It turns out I already fixed it in v6.0.

Marked as answer by deankasa on 2/5/2015 at 12:03 PM