[wix-users] WixVariable in a separate wxs

Ven H venh.123 at gmail.com
Thu Feb 1 08:44:34 PST 2018


Sorry Russell. Did you mean to answer my question or some other question? I
am a little confused. I didn't get you. Please clarify.

Regards,
Venkatesh

On Thu, Feb 1, 2018 at 10:09 PM, Russell Haley <russ.haley at gmail.com> wrote:

> On Wed, Jan 31, 2018 at 9:12 PM, Ven H via wix-users
> <wix-users at lists.wixtoolset.org> wrote:
> > Thank you Habib. But if I use a wxi file, I have to have this wxi file
> > directly referred in the Product.wxs file and also the Wix variables like
> > WixUIBannerBmp, WixUIDialogBmp and the Icon elements must be part of
> > Product.wxs also. If I have to add another element in future, again, I
> may
> > have to modify the Product.wxs. In my case, there is a lot of dynamism
> and
> > separation required.
> >
> > In Edwin's approach, I just have to include a PropertyRef element in my
> > Product.wxs and I can still have the above mentioned Wix variables and
> > Icons in a separate wxs file and just add a dummy property in it which
> > alone will be referenced in the Product.wxs file using a PropertyRef
> > element.
> >
> > Regards,
> > Venkatesh
> >
> > On Thu, Feb 1, 2018 at 10:18 AM, Habib Salim via wix-users <
> > wix-users at lists.wixtoolset.org> wrote:
> >
> >> Use a wxi file.  like this:
> >>
> >>
> >> ----------------------------------------------
> >> <?xml version="1.0" encoding="utf-8"?>
> >> <Include>
> >>       <!--  courtesy of :
> >> http://weblogs.sqlteam.com/mladenp/archive/2010/02/17/
> WiX-3-Tutorial-Under
> >> standing-main-WXS-and-WXI-file.aspx
> >>
> >>       Versioning. These have to be changed for upgrades.
> >>       It's not enough to just include newer files.  -->
> >>   <?define MajorVersion="2" ?>
> >>   <?define MinorVersion="0" ?>
> >>   <?define BuildVersion="1" ?>
> >>         <!-- Revision is NOT used by WiX in the upgrade procedure -->
> >>   <?define Revision="658" ?>
> >>         <!-- Full version number to display -->
> >>   <?define
> >> VersionNumber="$(var.MajorVersion).$(var.MinorVersion).$(var.
> BuildVersion)
> >> .$(var.Revision)" ?>
> >>
> >>         <!--  Upgrade code HAS to be the same for all updates.
> >>         Don't change it.Ever.  -->
> >>   <?define UpgradeCode="your guid here"?>
> >>
> >>
> >>         <!--  Path to the resources directory. resources don't really
> need
> >> to be included
> >>         in the project structure but I like to include them for for
> >> clarity   -->
> >>   <?define ResourcesDir="$(var.ProjectDir)\Resources" ?>
> >>
> >>       <!--  The name of our application exe file. This will be used to
> >> kill the process when updating
> >>         and creating the desktop shortcut  -->
> >>   <?define ExeName="HSalimCo.WpfPivotViews.exe" ?>
> >>   <?define ProductName = "PivotViews" ?>
> >>   <?define ProductDescription ="PivotViews is a trademark of HSalim &
> Co.
> >> Inc." ?>
> >>   <?define CurrentVersion = !(bind.FileVersion.filWpfPivotViewsexe) ?>
> >>   <?define ManufacturerName = "HSalim & Co. Inc"?>
> >>   <?define HSalimCoFolder = "HSalimCo" ?>
> >>   <?define IconPath = "$(sys.CURRENTDIR)Includes\PivotViews.ico"?>
> >>   <?define PivotViewsJPEG = "PivotViews.jpg"?>
> >>   <?define UiBackground = "$(sys.CURRENTDIR)Includes\WixUiDialog.jpg"?>
> >>   <?define UiBanner = "$(sys.CURRENTDIR)Includes\WixUiBanner.jpg"?>
> >>   <?define EulaFile = "$(sys.CURRENTDIR)Includes\PivotViewsEULA.rtf"?>
> >>   <?define SuccessImage = "$(sys.CURRENTDIR)Includes\success.bmp"?>
> >>   <?define ErrorImage =  "$(sys.CURRENTDIR)Includes\error.bmp"?>
> >>   <?define SourceFilesDir= "<yourpathhere>\bin\x64\Release"?>
> >>   <?define DXThemesDir="C:\Program Files (x86)\DevExpress
> >> 17.2\Components\Bin\Framework\" ?>
> >>   <?define InstallerActions="<CAprojectPath>\InstallerActions.CA.dll"?>
> >>
> >>
> >> </Include>
> >> ----------------------------------------------
> >>
> >>
> >>
> >>
> >> -----Original Message-----
> >> From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On
> Behalf
> >> Of Ven H via wix-users
> >> Sent: Wednesday, January 31, 2018 10:11 PM
> >> To: Edwin Castro <egcastr at gmail.com>
> >> Cc: Ven H <venh.123 at gmail.com>; WiX Toolset Users Mailing List
> >> <wix-users at lists.wixtoolset.org>
> >> Subject: Re: [wix-users] WixVariable in a separate wxs
> >>
> >> Thank you Edwin and Rob. In my case, I just need to maintain these
> >> variables and the ones with images, logos and icons in a separate file.
> I
> >> will have to generate this file dynamically by reading some
> configuration
> >> file and populate the path for these images from that configuration
> file.
> >> I don't want to modify Product.wxs programmatically for this. For
> example,
> >> I want to have a separate file like ImageRefs.wxs,  which may have some
> >> elements like below.
> >>
> >> <?xml version="1.0" encoding="UTF-8"?>
> >> <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
> >> <Fragment>
> >>     <WixVariable Id="WixUIBannerBmp" Value="Path_To_CustomBanner_Bmp"
> />
> >>     <WixVariable Id="WixUIDialogBmp" Value=" Path_To_CustomDialog_Bmp "
> />
> >>     <Icon Id="arpIcon.ico" SourceFile=" Path_To_CustomIcon "/>
> </Fragment>
> >> </Wix>
> >>
> >> Even though the above compiles properly without any errors and the MSI
> >> gets generated, the images / icons are not showing during installation.
> In
> >> such a case, please advise what would be the best way.
> >>
> >>
> >>
> >>
> >> Regards,
> >> Venkatesh
> >>
> >> On Thu, Feb 1, 2018 at 3:45 AM, Edwin Castro <egcastr at gmail.com> wrote:
> >>
> >> > Rob's exactly right!
> >> >
> >> > I'll repeat what I said earlier, "The code sample really depends on
> >> > what you have in the Fragment(s) containing WixUIBannerBmp and
> >> WixUIDialogBmp.
> >> > ... So if *I don't have anything I can reference*, then ..."
> >> >
> >> > If you have a UI element in the Fragment containing WixUIBannerBmp
> >> > and/or WixUIDialogBmp, then just use UIRef. If there is another
> >> > element you can reference, then reference that element.
> >> >
> >> > Don't do my property hack unless you don't have any other options.
> >> >
> >> > --
> >> > Edwin G. Castro
> >> >
> >> >
> >> > On Wed, Jan 31, 2018 at 11:39 AM, Rob Mensching <rob at firegiant.com>
> >> wrote:
> >> >
> >> >> UIRef?
> >> >>
> >> >> _____________________________________________________________
> >> >>  Short replies here. Complete answers over there:
> >> >> http://www.firegiant.com/
> >> >>
> >> >>
> >> >> -----Original Message-----
> >> >> From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On
> >> >> Behalf Of Edwin Castro via wix-users
> >> >> Sent: Wednesday, January 31, 2018 10:21 AM
> >> >> To: Ven H <venh.123 at gmail.com>
> >> >> Cc: Edwin Castro <egcastr at gmail.com>; WiX Toolset Users Mailing List
> >> >> < wix-users at lists.wixtoolset.org>
> >> >> Subject: Re: [wix-users] WixVariable in a separate wxs
> >> >>
> >> >> The code sample really depends on what you have in the Fragment(s)
> >> >> containing WixUIBannerBmp and WixUIDialogBmp. Remember that when you
> >> >> reference anything inside a Fragment you get everything in that
> >> Fragment.
> >> >> So if I don't have anything I can reference, then I create an
> >> >> arbitrary Property used just for referencing.
> >> >>
> >> >> <Fragment>
> >> >>     <!-- Contains other stuff like WixUIBannerBmp and/or
> >> >> WixUIDialogBmp
> >> >> -->
> >> >>     <Property Id="DoesNotMatterButWillShowUpInPropertyTable"
> >> >> Value="DoesNotMatter"/>
> >> >> </Fragment>
> >> >>
> >> >> Then in another <Fragment> or <Product> I simply reference the
> >> Property:
> >> >>
> >> >> <Product ...>
> >> >>     <!-- other stuff that goes in Product -->
> >> >>     <PropertyRef Id="DoesNotMatterButWillShowUpInPropertyTable"/>
> >> >> </Product>
> >> >>
> >> >> I choose an Id that has some meaning for me but isn't too esoteric. I
> >> >> usually just set Value="1".
> >> >>
> >> >> --
> >> >> Edwin G. Castro
> >> >>
> >> >>
> >> >> On Wed, Jan 31, 2018 at 9:50 AM, Ven H <venh.123 at gmail.com> wrote:
> >> >>
> >> >> > Thanks a lot, Edwin. Sorry for being a bit naive here, but can you
> >> >> > please provide a code sample?
> >> >> >
> >> >> > Regards,
> >> >> > Venkatesh
> >> >> >
> >> >> > On Wed, Jan 31, 2018 at 11:15 PM, Edwin Castro <egcastr at gmail.com>
> >> >> wrote:
> >> >> >
> >> >> >> Yes. You just need to be able to reference something in the
> >> >> >> Fragment(s) that contain WixUIBannerBmp, WixUIDialogBmp. Perhaps
> >> UIRef?
> >> >> >>
> >> >> >> Sometimes I create Properties that I don't actually use for
> >> >> >> anything other than to reference them from another Fragment with
> >> PropertyRef.
> >> >> >>
> >> >> >> I kind of wish there was a way to reference a Fragment directly
> >> >> >> for situations where I don't have something I can reference in the
> >> >> Fragment...
> >> >> >>
> >> >> >> --
> >> >> >> Edwin G. Castro
> >> >> >>
> >> >> >>
> >> >> >> On Wed, Jan 31, 2018 at 9:32 AM, Ven H via wix-users <
> >> >> >> wix-users at lists.wixtoolset.org> wrote:
> >> >> >>
> >> >> >>> Is it possible to have wix variables like WixUIBannerBmp,
> >> >> >>> WixUIDialogBmp in a separate wxs file, rather than Product.wxs?
> >> >> >>> If yes, please explain how.
> >> >> >>> Since the values of these variables are paths, I cannot have them
> >> >> >>> as properties and I don't want to use preprocessor variables.
> >> >> >>> Please
> >> >> help.
> >> >> >>>
> >> >> >>>
> >> >> >>> Regards,
> >> >> >>> Venkatesh
> >> >>
> >> >
> >> >
>
> Here is a full example of using a wxi file to check the build
> architecture and set the Win64 variable which is "yes" or "no". I do
> lots of other stuff in there too. Think of a wxi as a place to put
> things you want to change dynamically before the installer is built
> (paths to source files, versions). The source is a modified version of
> the one found on StackExchange. I have also added other variables like
> version and build secondary variables.
>
> This incarnation of the installer uses a custom Include.wxi file in
> each visual studio project (Lua 5.1, lua5.3), but only one installer
> source. I do that by putting the "things that are different" in the
> include.wxi files, but everything else is the same. Works like
> gangbusters.
>
> Curerntly my CustomaAtion doesn't work, but everything else works. The
> components and component groups are a bit of a mess, but it all seems
> to work. The installer code is FreeBSD licensed.
>
> Cheers,
>
> Russ
>
> >> ____________________________________________________________________
> >> WiX Toolset Users Mailing List provided by FireGiant
> >> http://www.firegiant.com/
> >>
> >> ____________________________________________________________________
> >> WiX Toolset Users Mailing List provided by FireGiant
> >> http://www.firegiant.com/
> >>
> >
> > ____________________________________________________________________
> > WiX Toolset Users Mailing List provided by FireGiant
> http://www.firegiant.com/
>


More information about the wix-users mailing list