Just a thought, you might was to consider a simple bootstrapper that
wraps up the msi. You could then keep the msi filename the same but
change the name of the bootstrapper exe, that way you don't break the
msi rule.

Neil

-----Original Message-----
From: Colin Fox [mailto:greenene...@gmail.com] 
Sent: 19 January 2009 23:59
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] Getting the version from the Assembly file

On Mon, Jan 19, 2009 at 2:33 PM, Rob Mensching
<rob.mensch...@microsoft.com>wrote:

> .2.  My understanding of the .NET Framework documentation does not
> recommend setting the "fileVersion" in the assembly identity.  They
> recommend SxS semantics by upgrading the assembly's "version" only.
You can
> drive your product version off of an assembly's version using
> "!(bind.assemblyVersion.FileId)".
>
> 3. You can only specify binder variables in .wxs files.  It's a binder
(in
> light.exe) concept not an MSBuild (in MSBuild.exe reading .wixproj
files)
> concept.  If you want to move your version specification to MSBuild,
then
> you need to use a preprocessor variable (i.e. !(var.Xxx) or
!(env.Xxx)).
>  The WiX.chm actually has a decent amount of detail on preprocessor
> variables.
>
> Also, you don't have to specify both the File/@Name and File/@Source
unless
> the file name needs to be different.  I personally, like to only
specify
> File/@Source and the File/@Id and File/@Name will be taken care of for
me
> (as long as I don't have two files with the same name... in that case
I have
> to specify at least one File/@Id).
>

Ok, thanks Rob.

I've now got everything working except putting the filename into the msi
-
which I know you've indicated is against the msi rules, but I can rename
the
files manually and they install, so I guess I'll just have to do a post
build step where I rename them, if there is no nice way to use a
variable
for part of the name.


>
>
> -----Original Message-----
> From: Colin Fox [mailto:greenene...@gmail.com]
> Sent: Monday, January 19, 2009 10:54
> To: General discussion for Windows Installer XML toolset.
> Subject: Re: [WiX-users] Getting the version from the Assembly file
>
> On Mon, Jan 19, 2009 at 10:22 AM, Rob Mensching <
> rob.mensch...@microsoft.com
> > wrote:
>
> > 0.  Probably aren't a lot of examples out there.  It is relatively
new
> > functionality.
>
>
> I would be happy with one example. :)
>
>
> > 1.  the "!(bind.Xxx)" means binder variable while "$(var.Xxx)" means
> > preprocessor variable.  Preprocessing is the very first process run
in
> the
> > WiX toolset (in candle) and binding is the very last (in light).
>  Different
> > data is available at different times.
> >
>
> Ok, got it.
>
>
> >
> > 2.  !(bind.assemblyFileVersion.Xxx) is only available if you
instruct
> light
> > to populate file versions (not generally recommended).  That's why I
tend
> to
> > use !(bind.FileVersion.Xxx) instead.
> >
>
> Is there a reason why it's not recommended? And perhaps I'm
> misunderstanding
> something...
>
> When I build my exe, it is built with an AssemblyInfo.cs file that has
an
> [assembly:] attribute. I just want to pull that attribute out of the
> executable so that my msi file has the same version number. Am I
correct in
> assuming that the Version attribute of the Product tag in the .wxs
file is
> supposed to be the same as the application's version?
>
>
> >
> > 3.  Does a File/@Id with value "myProgramEXE" exist in your MSI?  If
not,
> > that would cause this error as well.
> >
>
> Yes, I have the File/@Id with Id="myProgramEXE". Here is a slightly
larger
> segment of my .wxs file:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi";
> xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension";>
>    <Product Id="11732b0c-41a8-483b-8a99-a2a1afece53c"
>        Name="My Great Program"
>        Language="1033"
>        Version="!(bind.assemblyFileVersion.myGreatProgramEXE)"
>        Manufacturer="My Software Corp"
>        UpgradeCode="ba6c6a55-3a6c-4080-b77a-92aa0efbc67d">
>        <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="MyProgram">
>                <Component Id="ProductComponent"
> Guid="62a436f8-b2d3-4f10-ae62-dc5616a0d34e">
>
>                <File Id="myGreatProgramEXE"
> Name="$(var.MyProgram.TargetFileName)"
>                    Source="$(var.MyProgram.TargetPath)" DiskId="1"
> KeyPath="yes">
>
>
> the $(var.MyProgram.TargetFileName) and TargetPath work just fine.
>
> Is the wxs file the wrong place for a bind variable? Does it belong in
a
> wixproj instead? If so, then how would the version be set int he .wxs?
>
> Also - thanks Rob for the time you've spent on this. I really
appreciate
> it.
>
>
> >
> > -----Original Message-----
> > From: Colin Fox [mailto:greenene...@gmail.com]
> > Sent: Monday, January 19, 2009 09:52
> > To: General discussion for Windows Installer XML toolset.
> > Subject: Re: [WiX-users] Getting the version from the Assembly file
> >
> > Ok, I've tried this but I can't determine where this is supposed to
go. I
> > can't find any complete examples that actually use this.
> >
> > Here's what I tried, which doesn't work:
> >
> > <?xml version="1.0" encoding="UTF-8"?>
> > <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi";
> > xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension";>
> >    <Product Id="11732b0c-41a8-483b-8a99-a2a1afece53c"
> >        Name="My Deluxe Program"
> >        Language="1033"
> >        Version="!(bind.assemblyFileVersion.myProgramEXE)"
> >        Manufacturer="My Software Corp"
> >        UpgradeCode="ba6c6a55-3a6c-4080-b77a-92aa0efbc67d">
> >        <Package InstallerVersion="200" Compressed="yes" />
> >
> > This is in my product.wxs file. When I try to build the solution, I
get
> > "Unresolved bind-time variable".
> >
> > If this isn't where the bind.assemblyFileVersion is supposed to go,
where
> > is
> > it?
> >
> > Thanks,
> >   Colin
> >
> > ps. I also tried using a $(var.ProductVersion) here and in the
.wixproj
> > saying ProductVersion=!(bind.assemblyFileVersion...) and it didn't
work
> > either.
> >
> > also - what does the ! character represent? Doesn't that usually
mean
> > "not"?
> >
> >
> > On Thu, Jan 15, 2009 at 8:02 AM, Rob Mensching
> > <rob.mensch...@microsoft.com>wrote:
> >
> > > Another option, if you are using WiX v3 is to use a binder
variable to
> > grab
> > > the file version directly.  Something like
> "!(bind.FileVersion.FileId)".
> > >
> > > -----Original Message-----
> > > From: Reggie Burnett [mailto:r...@comcast.net]
> > > Sent: Thursday, January 15, 2009 04:50
> > > To: General discussion for Windows Installer XML toolset.
> > > Subject: Re: [WiX-users] Getting the version from the Assembly
file
> > >
> > > I ship 4 binary components that all have the same version so I use
a
> > > small snippet in my msbuild script that reads the version # from
one
> > > of the components and then passes that into to wix through a
> > > preprocessor var.
> > >
> > > On Tue, Jan 13, 2009 at 6:44 PM, Michael Osmond <
> mosm...@baytech.com.au>
> > > wrote:
> > > > Colin,
> > > >
> > > > You can set an environment variable in the build process and
then
> > access
> > > > that inside wix as $(env.projectVersion)
> > > >
> > > > Or you can set an Wix variable in the candle command line
> > > >        "candle -dMyProject.Version=<value>"
> > > >
> > > > Michael
> > > >
> > > > -----Original Message-----
> > > > From: Colin Fox [mailto:greenene...@gmail.com]
> > > > Sent: Wednesday, 14 January 2009 10:11 AM
> > > > To: General discussion for Windows Installer XML toolset.
> > > > Subject: Re: [WiX-users] Getting the version from the Assembly
file
> > > >
> > > > Yes - our current release strategy is to always release major
> upgrades.
> > > > The entire MSI is under 10 megs so it's not a huge deal.
> > > >
> > > > I'm relatively new to the company, and this process has been in
place
> > > > since long before I got here, but part of the build process is
to use
> a
> > > > build tool to set the version number, and it goes and modifies
some
> > > > files. I was hoping to streamline things a bit and just modify
one
> file
> > > > and have the version be deduced by the rest of the system.
> > > >
> > > > If it can't be done through a wix variable, then I can probably
> modify
> > > > the build tool to change the wix file, but that just feels wrong
(not
> > to
> > > > mention will cause unnecessary changes for our revision control
> > system).
> > > >
> > > > On Tue, Jan 13, 2009 at 3:14 PM, Rob Mensching
> > > > <rob.mensch...@microsoft.com>wrote:
> > > >
> > > >> Are you always going to release using Major Upgrades?  If not,
then
> > > >> you need to keep the name constant.  That fact is why you don't
see
> > > >> many people putting the version number in the MSI name.  Not a
> common
> > > >> request thus not necessarily simple to implement.
> > > >>
> > > >> -----Original Message-----
> > > >> From: Colin Fox [mailto:greenene...@gmail.com]
> > > >> Sent: Tuesday, January 13, 2009 14:36
> > > >> To: wix-users
> > > >> Subject: [WiX-users] Getting the version from the Assembly file
> > > >>
> > > >> Hi everyone.
> > > >>
> > > >> I'd like go be able to set the version of my application in the
> > > >> assembly.cs file, and have it used in both the wix file and
also in
> > > > the wix file name.
> > > >>
> > > >> So if my app is version 1.2.3, I'd like the .msi file to be
called
> > > >> "MyAmazingApp_1_2_3.msi" or something equivalent.
> > > >>
> > > >> I've seen some articles on the net about pulling an assembly
version
> > > >> and putting it into the wix file but they all seem like giant
hacks.
> > > >>
> > > >> It seems to me that since versions seem to feature so
prominently,
> it
> > > >> makes sense to integrate them more smoothly into the build
system.
> And
> > > >
> > > >> you shouldn't have to set it in more than one place.
> > > >>
> > > >> How difficult would it be to create another candle varable,
such as
> > > >> $(var.MyProject.Version) ?
> > > >>
> > > >> Is this something I can add myself, or do I have to jump
through
> those
> > > >
> > > >> ugly hoops?
> > > >>
> > > >> --
> > > >> Regards,
> > > >>  cf
> > > >>
> > > >>
> ----------------------------------------------------------------------
> > > >> --------
> > > >> This SF.net email is sponsored by:
> > > >> SourcForge Community
> > > >> SourceForge wants to tell your story.
> > > >> http://p.sf.net/sfu/sf-spreadtheword
> > > >> _______________________________________________
> > > >> WiX-users mailing list
> > > >> WiX-users@lists.sourceforge.net
> > > >> https://lists.sourceforge.net/lists/listinfo/wix-users
> > > >>
> > > >>
> > > >>
> > > >>
> ----------------------------------------------------------------------
> > > >> --------
> > > >> This SF.net email is sponsored by:
> > > >> SourcForge Community
> > > >> SourceForge wants to tell your story.
> > > >> http://p.sf.net/sfu/sf-spreadtheword
> > > >> _______________________________________________
> > > >> WiX-users mailing list
> > > >> WiX-users@lists.sourceforge.net
> > > >> https://lists.sourceforge.net/lists/listinfo/wix-users
> > > >>
> > > >
> > > >
> > > >
> > > > --
> > > > Regards,
> > > >  cf
> > > >
> >
------------------------------------------------------------------------
> > > > ------
> > > > This SF.net email is sponsored by:
> > > > SourcForge Community
> > > > SourceForge wants to tell your story.
> > > > http://p.sf.net/sfu/sf-spreadtheword
> > > > _______________________________________________
> > > > WiX-users mailing list
> > > > WiX-users@lists.sourceforge.net
> > > > https://lists.sourceforge.net/lists/listinfo/wix-users
> > > >
> > > >
> > >
> >
>
------------------------------------------------------------------------
------
> > > > This SF.net email is sponsored by:
> > > > SourcForge Community
> > > > SourceForge wants to tell your story.
> > > > http://p.sf.net/sfu/sf-spreadtheword
> > > > _______________________________________________
> > > > WiX-users mailing list
> > > > WiX-users@lists.sourceforge.net
> > > > https://lists.sourceforge.net/lists/listinfo/wix-users
> > > >
> > >
> > >
> > >
> >
>
------------------------------------------------------------------------
------
> > > This SF.net email is sponsored by:
> > > SourcForge Community
> > > SourceForge wants to tell your story.
> > > http://p.sf.net/sfu/sf-spreadtheword
> > > _______________________________________________
> > > WiX-users mailing list
> > > WiX-users@lists.sourceforge.net
> > > https://lists.sourceforge.net/lists/listinfo/wix-users
> > >
> > >
> > >
> > >
> >
>
------------------------------------------------------------------------
------
> > > This SF.net email is sponsored by:
> > > SourcForge Community
> > > SourceForge wants to tell your story.
> > > http://p.sf.net/sfu/sf-spreadtheword
> > > _______________________________________________
> > > WiX-users mailing list
> > > WiX-users@lists.sourceforge.net
> > > https://lists.sourceforge.net/lists/listinfo/wix-users
> > >
> >
> >
> >
> > --
> > Regards,
> >  cf
> >
> >
>
------------------------------------------------------------------------
------
> > This SF.net email is sponsored by:
> > SourcForge Community
> > SourceForge wants to tell your story.
> > http://p.sf.net/sfu/sf-spreadtheword
> > _______________________________________________
> > WiX-users mailing list
> > WiX-users@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/wix-users
> >
> >
> >
> >
>
------------------------------------------------------------------------
------
> > This SF.net email is sponsored by:
> > SourcForge Community
> > SourceForge wants to tell your story.
> > http://p.sf.net/sfu/sf-spreadtheword
> > _______________________________________________
> > WiX-users mailing list
> > WiX-users@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/wix-users
> >
>
>
>
> --
> Regards,
>  cf
>
>
------------------------------------------------------------------------
------
> This SF.net email is sponsored by:
> SourcForge Community
> SourceForge wants to tell your story.
> http://p.sf.net/sfu/sf-spreadtheword
> _______________________________________________
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users
>
>
>
>
------------------------------------------------------------------------
------
> This SF.net email is sponsored by:
> SourcForge Community
> SourceForge wants to tell your story.
> http://p.sf.net/sfu/sf-spreadtheword
> _______________________________________________
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users
>



-- 
Regards,
 cf
------------------------------------------------------------------------
------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to