[wix-users] Duplicate Autogen GUID for components using registry keypath?

Linda Pagillo stargazer at microneil.com
Mon Aug 15 10:50:27 PDT 2016


How do I unsubscribe from this list?

Linda Pagillo
MicroNeil Research Corporation
www.microneil.com
703.779.4909 x7016

-----Original Message-----
From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On Behalf Of
Foster, Richard - PAL
Sent: Monday, August 15, 2016 12:38 PM
To: WiX Toolset Users Mailing List
Subject: Re: [wix-users] Duplicate Autogen GUID for components using
registry keypath?

D'oh! Yes, you're right. I'm being a fool. What I had as "Value" should have
been "Name".

Aren't PEBKAC errors wonderful!

Thanks for pointing out the obvious.

Regards,
Richard

-----Original Message-----
From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On Behalf Of
Rob Mensching
Sent: Monday, August 15, 2016 12:29 PM
To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
Subject: Re: [wix-users] Duplicate Autogen GUID for components using
registry keypath?

They look like the same registry value, the default value under that
registry key.

_____________________________________________________________
 Short replies here. Complete answers over there: http://www.firegiant.com/


-----Original Message-----
From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On Behalf Of
Foster, Richard - PAL
Sent: Monday, August 15, 2016 8:14 AM
To: wix-users at lists.wixtoolset.org
Subject: [wix-users] Duplicate Autogen GUID for components using registry
keypath?

Greetings all,

We have a common requirement in our installations for menu and data folders
associated with the product. Currently, the definitions for these folders
are being duplicated in product-specific files. I was hoping to be able to
use bind-time variables to define these common items in a fragment (or set
of fragments) that could be shared by all the products, but I'm running into
a situation where WiX reports that there are duplicate GUID's for the
associated components.

The two affected fragments look like this.

Fragment 1:

  <Fragment Id="ApplicationDataFolder">
    <DirectoryRef Id="CompanyAppDataFolderDir">
      <Directory Id="ProductAppDataFolderDir" Name="!(wix.product)">
        <Component Id="ApplicationDataFolder" Permanent="yes">
          <RegistryKey Root="HKCU"
Key="SOFTWARE\!(wix.manufacturer)\!(wix.product)
V!(bind.property.ProductVersion.Major).!(bind.property.ProductVersion.Minor)
.!(bind.property.ProductVersion.Build)">
            <RegistryValue Type="string"
Value='ApplicationDataFolder_Component' KeyPath='yes' />
          </RegistryKey>
          <CreateFolder>
            <Permission GenericWrite="yes" GenericRead="yes"
GenericAll="yes" User="Everyone" />
          </CreateFolder>
        </Component>
      </Directory>
    </DirectoryRef>
  </Fragment>

Fragment 2:

  <Fragment Id="CompanyMenuFolder">
    <Feature Id="CompanyMenuFolder">
      <ComponentRef Id="CompanyMenuFolder" />
    </Feature>
    <DirectoryRef Id="TARGETDIR">
      <Directory Id="ProgramMenuFolder" ShortName="Programs">
        <Directory Id="CompanyMenuFolder" Name="!(wix.manufacturer)">
          <Component Id="CompanyMenuFolder">
            <RegistryKey Root="HKCU"
Key="SOFTWARE\!(wix.manufacturer)\!(wix.product)
V!(bind.property.ProductVersion.Major).!(bind.property.ProductVersion.Minor)
.!(bind.property.ProductVersion.Build)">
              <RegistryValue Type="string"
Value='CompanyMenuFolder_Component' KeyPath='yes' />
            </RegistryKey>
           <CreateFolder/>
            <RemoveFolder Id="RemoveCompanyMenuFolder" On="uninstall" />
          </Component>
        </Directory>
      </Directory>
    </DirectoryRef>
  </Fragment>

As far as I can tell, the two keypaths should be different (while the
RegistryKey is the same, the RegistryValue elements are not), and as a
result I was expecting a different GUID. Instead, I'm getting the same GUID
( {4CA050B1-A167-594F-AD68-E169A0204531}). Any ideas what I'm doing wrong?

I did consider using another bind-time variable to hold the component lD,
but that doesn't work either - bind-time variables appear not to be
supported as component ID's, presumably because they don't immediately
resolve to a valid GUID.

For now, I'll simply continue the practice of duplicating the items in each
product, but I prefer to avoid such duplication. Is that possible?

Thanks in advance for any comments & suggestions, Regards, Richard

____________________________________________________________________
WiX Toolset Users Mailing List provided by FireGiant
http://www.firegiant.com/

____________________________________________________________________
WiX Toolset Users Mailing List provided by FireGiant
http://www.firegiant.com/

____________________________________________________________________
WiX Toolset Users Mailing List provided by FireGiant
http://www.firegiant.com/



More information about the wix-users mailing list