Using Guid="*" does make things much simpler and I have started using this layout to simplify even further: <Fragment> <ComponentGroup Id="MyFiles"> <Component Directory="INSTALLLOCATION"> <File Source="$(var.SourceDir)\File1.exe" /> </Component> <Component Directory="INSTALLLOCATION"> <File Source="$(var.SourceDir)\File2.dll" /> </Component> </ComponentGroup> </Fragment>
This means there is only one entry for each file so it makes it even simpler for non-WiX developers to add/remove files i.e. no need to edit Directory and ComponentGroup fragments. WiX 3.6 simplifies this even further by allowing you to set ComponentGroup/@Directory. Unfortunately heat doesn't generate this but the format is so simple I just use a macro in my text editor to create it. Neil -----Original Message----- From: Castro, Edwin G. (Hillsboro) [mailto:edwin.cas...@fiserv.com] Sent: 06 February 2012 16:14 To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] Harvesting dll's referenced in a c# project in VS To share my experience with harvesting: We had a very simple setup (no COM, no installutil automated setup, etc.). The projects producing built assemblies were responsible for staging all required files in such a way that we could use heat to harvest a directory into the setup. We didn't use project harvesting because it didn't harvest everything we wanted/needed to harvest. In this particular case, there were a number of files that were not part of the project proper but we included them as links so that we could have the project copy them into the output directory of the project. A developer accidentally removed these files from the project file causing the files to disappear from the MSI package. This was unfortunately not discovered until after release and became a huge embarrassment to our organization. This is a simple case of inadequate testing at both DEV and QA levels but had we not depended on harvesting (we no longer use automatic harvesting as part of our build process) we would have discovered the missing files at build time rather than much, much later. Using * to allow WiX to manage component GUIDs is so easy and robust now that whenever I hear somebody complain that they don't want to take the time to manage their component GUIDs I simply hear "I don't want to invest the time learning WiX, Windows Installer, nor what proper setup should look like on Windows platforms." Even heat can be told to use * rather than generating GUIDs which makes a great tool to generate WiX source initially. Heat can even post-process a file using XSLT to perform simple transformations. With nearly all development frameworks using XML to such a large degree I STILL find it confusing how so many people cannot work with XML, XPATH, nor XSLT. I *am* paid to produce quality software and that includes quality setup packages. I personally make it my mission to learn all the technology I use well enough to produce quality software. There is a time and place to use automation, code generation, and other software tools. In the case of Windows Installer packages, you rarely want to use automatic harvesting as part of your build process. Many of us share this advice multiple times a month out of our own experiences. We haven't failed to use it (we use it successfully) but have learned (more importantly) when _not_ to use it. Edwin G. Castro -----Original Message----- From: Neil Sleightholm [mailto:n...@x2systems.com] Sent: Sunday, February 05, 2012 1:53 AM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] Harvesting dll's referenced in a c# project in VS Yes probably a bug but bottom line is VS deployment projects suck! It is more an issue with maintaining a reliable build or my installation project when moving the build between development and build machine, mainly it is related to COM references but I have also had issues with different versions of enterprise library. Also, its behaviour changes depending on whether the component is in the GAC for not often dev machines will have local references but build machines don't. I think I may not have explained what I do clearly. I do use harvesting but only at the start, I build all the source and write the output to a single folder or folder layout that matches the deployment. This picks up all the files and the references (as long as "Copy local" is set). I then run heat on that folder to generate a WiX source file. After that I maintain that file manually as I find it rarely changes but if it does I simply re-run the heat step. I find this keeps my install in a known state and if references are added I can validate them. For example, if someone adds a reference to v2 of a component and all other projects use v1 I need to validate whether the target system will support that or whether I need to deploy a new runtime install. Neil -----Original Message----- From: Michael Powell [mailto:mwpowel...@gmail.com] Sent: 04 February 2012 22:45 To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] Harvesting dll's referenced in a c# project in VS Yessir, which to me sounds like a bug. At least in our project, there are a MASSIVE number of assemblies with an equally MASSIVE number of references. There simply aren't enough hours in the day to maintain all that by hand over the long haul. On Sat, Feb 4, 2012 at 4:27 PM, Neil Sleightholm <n...@x2systems.com> wrote: > Like you say each to his own but I have wasted a ridiculous amount of > time sorting out the mess Visual Studio deployment projects make of > auto harvesting. > > Neil > > -----Original Message----- > From: Michael Powell [mailto:mwpowel...@gmail.com] > Sent: 04 February 2012 20:10 > To: General discussion for Windows Installer XML toolset. > Subject: Re: [WiX-users] Harvesting dll's referenced in a c# project > in VS > > Personally, each to his own I suppose. Professionally, I'm not being > paid to sit on top of my resource references (DLLs and such) that > tightly. I want to harvest them. > > On Sat, Feb 4, 2012 at 11:46 AM, Neil Sleightholm <n...@x2systems.com > >wrote: > > > Not that I am aware of, personally I am not a big fan of automatic > > harvesting as it leads to more issues than it's worth. I tend to > > just use heat directly as a one off to generate a wxs file that I > > then manually manage. > > > > Neil > > > > -----Original Message----- > > From: Terje Sandstrom [mailto:te...@hermit.onmicrosoft.com] > > Sent: 02 February 2012 20:57 > > To: General discussion for Windows Installer XML toolset. > > Subject: Re: [WiX-users] Harvesting dll's referenced in a c# project > > in VS > > > > Thanks ! > > > > Surprising, but..... > > > > What is the workaround ? There is a workaround, right ? > > > > > > Best regards > > Terje > > > > > > -----Original Message----- > > From: Neil Sleightholm [mailto:n...@x2systems.com] > > Sent: 2. februar 2012 21:24 > > To: General discussion for Windows Installer XML toolset. > > Subject: Re: [WiX-users] Harvesting dll's referenced in a c# project > > in VS > > > > Unfortunately heat doesn't harvest referenced assemblies in a project. > > > > Neil > > > > -----Original Message----- > > From: Terje Sandstrom [mailto:te...@hermit.onmicrosoft.com] > > Sent: 02 February 2012 19:02 > > To: wix-users@lists.sourceforge.net > > Subject: [WiX-users] Harvesting dll's referenced in a c# project in > > VS > > > > Hi! > > > > I'm pretty new to the toolset so bear with me :) > > > > I'm using 3.5, and am trying to harvest the dll's from the c# > > project, using the property Harvest set to true in Visual Studio. > > I do get a ComponentGroup named xxxxx.Binaries, but it don't contain > > any of the dll's that my project is referencing, something I did > > expect. It does harvest a lot of other stuff, so I would guess it > > would do these dll's too, which are kind of the more important ones. > > Is there something special one need to turn on for these to be > > harvested too ? > > > > > > best regards Terje Sandstrøm > > > > Chief Software Architect > > Inmeta<http://www.inmeta.com/> Visual Studio ALM MVP< > > https://mvp.support.microsoft.com/profile=805E36BF-F29F-4FF6-8908-22 > > 3F > > 3666EE9C> geekswithblogs.net/terje<http://geekswithblogs.net/terje> > > Twitter: @OsirisTerje Skype: osiris_terje > > (+47) 95750354 > > > > > > -------------------------------------------------------------------- > > -- > > -------- Keep Your Developer Skills Current with LearnDevNow! > > The most comprehensive online learning library for Microsoft > > developers is just $99.99! Visual Studio, SharePoint, SQL - plus > > HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when > > you > subscribe now! > > http://p.sf.net/sfu/learndevnow-d2d > > _______________________________________________ > > WiX-users mailing list > > WiX-users@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/wix-users > > > > > > > > > > > > -------------------------------------------------------------------- > > -- > > -------- Keep Your Developer Skills Current with LearnDevNow! > > The most comprehensive online learning library for Microsoft > > developers is just $99.99! Visual Studio, SharePoint, SQL - plus > > HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when > > you > subscribe now! > > http://p.sf.net/sfu/learndevnow-d2d > > _______________________________________________ > > WiX-users mailing list > > WiX-users@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/wix-users > > > > > > > > > > -------------------------------------------------------------------- > > -- > > -------- Keep Your Developer Skills Current with LearnDevNow! > > The most comprehensive online learning library for Microsoft > > developers is just $99.99! Visual Studio, SharePoint, SQL - plus > > HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when > > you > subscribe now! > > http://p.sf.net/sfu/learndevnow-d2d > > _______________________________________________ > > WiX-users mailing list > > WiX-users@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/wix-users > > > > > > > > > > > > -------------------------------------------------------------------- > > -- > > -------- Try before you buy = See our experts in action! > > The most comprehensive online learning library for Microsoft > > developers is just $99.99! Visual Studio, SharePoint, SQL - plus > > HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when > > you > subscribe now! > > http://p.sf.net/sfu/learndevnow-dev2 > > _______________________________________________ > > WiX-users mailing list > > WiX-users@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/wix-users > > > > ---------------------------------------------------------------------- > -------- Try before you buy = See our experts in action! > The most comprehensive online learning library for Microsoft > developers is just $99.99! Visual Studio, SharePoint, SQL - plus > HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when you > subscribe now! > http://p.sf.net/sfu/learndevnow-dev2 > _______________________________________________ > WiX-users mailing list > WiX-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wix-users > > > > > > ---------------------------------------------------------------------- > -------- Try before you buy = See our experts in action! > The most comprehensive online learning library for Microsoft > developers is just $99.99! Visual Studio, SharePoint, SQL - plus > HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when you > subscribe now! > http://p.sf.net/sfu/learndevnow-dev2 > _______________________________________________ > WiX-users mailing list > WiX-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wix-users > ------------------------------------------------------------------------------ Try before you buy = See our experts in action! The most comprehensive online learning library for Microsoft developers is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when you subscribe now! http://p.sf.net/sfu/learndevnow-dev2 _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------------ Try before you buy = See our experts in action! The most comprehensive online learning library for Microsoft developers is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when you subscribe now! http://p.sf.net/sfu/learndevnow-dev2 _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------------ Try before you buy = See our experts in action! The most comprehensive online learning library for Microsoft developers is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when you subscribe now! http://p.sf.net/sfu/learndevnow-dev2 _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------------ Try before you buy = See our experts in action! The most comprehensive online learning library for Microsoft developers is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when you subscribe now! http://p.sf.net/sfu/learndevnow-dev2 _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users