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

Foster, Richard - PAL Richard.Foster at peektraffic.com
Mon Aug 15 10:37:38 PDT 2016


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/


More information about the wix-users mailing list