GUIDs Install Package GUIDs need to be different with each package you create. Product GUID and UpgradeCode GUI need to remain the same for compatibility. tags do not set any GUID. Unique for every Product Package, but DO NOT SET Id FOR Module Packages! Guid's seem to be internal and independent (but don't know if need to change with resource changes). SEE WiX MANUAL, BECAUSE Package GUID must change FOR EVERY wix BUILD!!!! [But does this apply only to s? because sample s do not use auto-guids] Upgrade GUID for all upgradables. Usually better to use autogenerated Package Id, like User Guide says value "*" always allowed in all AugogenGuid attrs. Use Perl Data::UUID $ug->create_from_name_str(, ). Merge Module-specific GUID stuff in the MERGE MODULES section below. MERGE MODULES BASICALLY: -> *.msi -> *.msm Some products write their *.msm files to %PROGRAMFILES%\Comon Files\Merge Modules. All GUIDs inside a are standalone (no referenced externally). Merge modules are references by the generated MM *.msi file name. The tag maps merge source files to Ids, with tags. These Id's are the essential merge module identifiers. At least if the .msi will bundle no ing msm's, there is no need to have a GUID in the Ids. The merge modules are then used by both Product Feature 's Ids. Module 's RequireIds. BUT WITH '-' -> '_"!!! == the module's and these are INTERNAL. But the psqlodbc SETs NO GUID!!! VERSIONS Product version of format major.minor.build.revision. Each segment si an integer from 0 to 65534, Windows ignores the revision. Samples set Version attr only for and tags (and differ!) Required format: 8888.8888.8888.8888, where psqlodbc also sets same version number for Software\psqlODBC reg. key. I guess that Ids are PROPERTIES or predefined identifiers, and Names are real directory names or paths. (Seems that names specified for PROPERTY Ids are just defaults, and installer (person) can override. PROERTIES are defined with .. elements and can do registry or *.ini lookups. PUblic properties, ones that can get user input, must be in all caps. s. Guid's have to be unique, but no idea if need to change when resource changes. File components. [Vital="no"] means file is not required for success. Can set file attributes w/ xml attrs. candle.exe Sample.wxs -> Sample.wixobj light.exe Sample.wixobj -> Sample.msi MSI *.wxs files have listing components that the installer can select. CODING TIPS