[wix-users] WixVariable in a separate wxs
Habib Salim
habib at hsalim.com
Wed Jan 31 20:48:22 PST 2018
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
>>
>
>
____________________________________________________________________
WiX Toolset Users Mailing List provided by FireGiant
http://www.firegiant.com/
More information about the wix-users
mailing list