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