Components have two identities, a "local" one (used within the MSI, including in conditions and properties) and a "global" one (used when identifying a component from a different MSI or even from outside all MSIs). The local one is an "identifier" (alphanumeric string) and the global one is a GUID. Product and Package identities are always the ProductCode and PackageCode values, so those make sense being named @Id. If you are not tying to support Patching it is generally recommended to first try using a "*" for all guids (except UpgradeCode) required by WiX/Windows Installer itself, which will cause the WiX toolset to generate stable guids. The toolset will tell you (with a build time error message) when it can't generate that guid. If you don't supply the Component\@Guid value, it will default to "*" for you, so that is the usual recommendation. Fragment allows you to group resources that need to either be included in the MSI all together or not at all. A reference to any resource within a fragment causes the entire fragment to be linked into the final file by the Light tool. In general going through the CHM (or the online documentation of the same material, but I find the CHM more convenient to access) will give you most of the above information as well as answers to the rest of your raised questions. From: cker...@claremontcompanies.com To: wix-users@lists.sourceforge.net Date: Tue, 1 Oct 2013 18:50:15 +0000 Subject: [WiX-users] Id / Guid - updated documentation, etc.
Greetings, I am just now diving into Wix - watched a few videos and went through the tutorial. In the online tutorial, found here (http://wix.tramontana.co.hu/tutorial/getting-started/the-software-package) I realized I was getting mixed up with a few ambiguities (at least I my mind!) I'm hoping you can resolve for me - also, want to make quick recommendation, though I'm sure doing so would wreck previous development if it was implemented ... :) First off - recommendation? I'm using VS 2012. In the tutorial linked above, I see that all <product>s and <package>s require a Guid. The <Product> and <package> uses the id attribute for this Guid. However, the <component>, uses a Guid attribute. This just threw me off a little. I'm sure adding a Guid attribute to the Product and Package for constancy would probably be an epic change, but I'm a glutton for consistency :) Take it for what it is. Second - I used VS2012 to create a new Wix project (see attached screenshot) which introduces two new elements that were not addressed in the tutorial. The <fragment> and <componentGroup> Would be nice to get an idea of the relationship which may be apparent to those already familiar with wix, but again, makes a beginner like myself a little confused. Lastly - what would be really cool would be to update the tutorial with the entire listing in a block, with hi-lites that identify the primary keys that tie sections together. In the online example, (for example), there is a package-directory reference with an Id of programfilesfolder, but everywhere else there is a reference to programmenudirectory - and it was difficult to ascertain whether that was a typo, a reserved name, or simply an id that Wix uses in the MSI and it doesn't need to be referenced anywhere else in the file. If the section names / ids are supposed to reference prior sections of the XML, hi-lites would really make that stand out and help the reader ascertain what are supposed to be FK references as opposed to predefined / reserved identifiers (so to speak). I'm really thankful to the team for creating Wix and want to learn it! So, thanks for making this available and I hope to be an active member of this discussion group. When I learn the ropes well enough, I plan on making a tutorial of my own to help me understand it better, and to benefit others who are, like me, noobs! Thanks! Chris <?xml version='1.0' encoding='windows-1252'?> <Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'> <Product Name='Foobar 1.0' Id='YOURGUID-86C7-4D14-AEC0-86416A69ABDE' UpgradeCode='YOURGUID-7349-453F-94F6-BCB5110BA4FD' Language='1033' Codepage='1252' Version='1.0.0' Manufacturer='Acme Ltd.'> <Package Id='*' Keywords='Installer' Description="Acme's Foobar 1.0 Installer" Comments='Foobar is a registered trademark of Acme Ltd.' Manufacturer='Acme Ltd.' InstallerVersion='100' Languages='1033' Compressed='yes' SummaryCodepage='1252' /> <Media Id='1' Cabinet='Sample.cab' EmbedCab='yes' DiskPrompt='CD-ROM #1' /> <Property Id='DiskPrompt' Value="Acme's Foobar 1.0 Installation [1]" /> <Directory Id='TARGETDIR' Name='SourceDir'> <Directory Id='ProgramFilesFolder' Name='PFiles'> <Directory Id='Acme' Name='Acme'> <Directory Id='INSTALLDIR' Name='Foobar 1.0'> <Component Id='MainExecutable' Guid='YOURGUID-83F1-4F22-985B-FDB3C8ABD471'> <File Id='FoobarEXE' Name='FoobarAppl10.exe' DiskId='1' Source='FoobarAppl10.exe' KeyPath='yes'> <Shortcut Id="startmenuFoobar10" Directory="ProgramMenuDir" Name="Foobar 1.0" WorkingDirectory='INSTALLDIR' Icon="Foobar10.exe" IconIndex="0" Advertise="yes" /> <Shortcut Id="desktopFoobar10" Directory="DesktopFolder" Name="Foobar 1.0" WorkingDirectory='INSTALLDIR' Icon="Foobar10.exe" IconIndex="0" Advertise="yes" /> </File> </Component> <Component Id='HelperLibrary' Guid='YOURGUID-6BE3-460D-A14F-75658D16550B'> <File Id='HelperDLL' Name='Helper.dll' DiskId='1' Source='Helper.dll' KeyPath='yes' /> </Component> <Component Id='Manual' Guid='YOURGUID-574D-4A9A-A266-5B5EC2C022A4'> <File Id='Manual' Name='Manual.pdf' DiskId='1' Source='Manual.pdf' KeyPath='yes'> <Shortcut Id='startmenuManual' Directory='ProgramMenuDir' Name='Instruction Manual' Advertise='yes' /> </File> </Component> </Directory> </Directory> </Directory> <Directory Id="ProgramMenuFolder" Name="Programs"> <!-- ??? --> <Directory Id="ProgramMenuDir" Name="Foobar 1.0"> <Component Id="ProgramMenuDir" Guid="YOURGUID-7E98-44CE-B049-C477CC0A2B00"> <RemoveFolder Id='ProgramMenuDir' On='uninstall' /> <RegistryValue Root='HKCU' Key='Software\[Manufacturer]\[ProductName]' Type='string' Value='' KeyPath='yes' /> </Component> </Directory> </Directory> <Directory Id="DesktopFolder" Name="Desktop" /> </Directory> <Feature Id='Complete' Level='1'> <ComponentRef Id='MainExecutable' /> <ComponentRef Id='HelperLibrary' /> <ComponentRef Id='Manual' /> <ComponentRef Id='ProgramMenuDir' /> </Feature> <Icon Id="Foobar10.exe" SourceFile="FoobarAppl10.exe" /> <Shortcut Id="desktopFoobar10" Directory="DesktopFolder" Name="Foobar 1.0" WorkingDirectory='INSTALLDIR' Icon="Foobar10.ico" IconIndex="0" /> ... <Icon Id="Foobar10.ico" SourceFile="FoobarAppl10.ico" /> </Product> </Wix> Sorry for the long -----Original Message----- From: Rob Reynolds [mailto:ferventco...@gmail.com] Sent: Tuesday, October 01, 2013 10:48 AM To: wix-users@lists.sourceforge.net Subject: [WiX-users] How to pass an enumeration as a variable? Allowing Service Start Type to be passed in as an MSI PROPERY I am trying to pass a variable to the service start enumeration. This is what I have found http://stackoverflow.com/questions/9419411/wix-setting-service-startup-type-using-a-property-property-not-recognized What is the recommended way to do that? ____ Rob "Be passionate in all you do" http://devlicio.us/blogs/rob_reynolds http://ferventcoder.com http://twitter.com/ferventcoder ------------------------------------------------------------------------------ October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register > http://pubads.g.doubleclick.net/gampad/clk?id=60134791&iu=/4140/ostg.clktrk _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net<mailto:WiX-users@lists.sourceforge.net> https://lists.sourceforge.net/lists/listinfo/wix-users Chris Kersey Intranet & Internet Apps. Dev. & Database Admin. Claremont Insurance Services 2999 Oak Road, Suite 810 Walnut Creek, CA 94597 http://www.claremontcompanies.com Direct: (925) 296-8849 Main: (800) 696-4543 Fax: (925) 588-2425 Email: cker...@claremontcompanies.com Claremont now Represents Covered California-SHOP. Click here<mailto:i...@claremontcompanies.com?subject=Inquiry%20Regarding%20Covered%20California-SHOP> for more information or call us at (800) 696-4543 if you have any questions about Covered California-SHOP. Notice to recipient: This e-mail is meant for only the intended recipient of the transmission. If you received this e-mail in error, any review, use, dissemination, distribution, or copying of this e-mail is strictly prohibited. Please notify the sender immediately of the error by return e-mail and please delete this message from your system. Thank you in advance for your cooperation. ------------------------------------------------------------------------------ October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register > http://pubads.g.doubleclick.net/gampad/clk?id=60134791&iu=/4140/ostg.clktrk _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------------ October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register > http://pubads.g.doubleclick.net/gampad/clk?id=60134791&iu=/4140/ostg.clktrk _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users