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

Reply via email to