You will get the ice 69 error because windows installer can't know for sure
if that feature is being installed. If you can guarantee in all situations
that the main feature will be installed when you install the optional
feature, you can ignore (suppress) the error. 

What should also work is that you could leave the ProgId and Extension in the
optional component and to write the verb in with a registry element in the
main component. I did this recently to share the file-type and icon between
two products (the file-type registration was in a shared msi) but only allow
the main application to do something when you clicked a registered file type.

As the #mainExe is in the same feature as the .exe then you won't get an ice
69 yet you get the same functionality.

You may need to check what happens when only component A is installed, I
never had that scenario so I'm not sure what would happen to the file
ascociation.


Your e.g. modified.

<Component Id="A">
  <File Id="MainEXE" name="Main.exe" Source="$(var.BINDIR)/Main.exe"/>

 <RegistryValue Root="HKLM" Id=" MainEXEVerb" Action="write"
                       Key="Software\Classes\extfile\shell\open\command"
                       Value ='"[#MainEXE] "%1"'
                       Type="expandable" />      

  ...

<Component Id="B">

  ...
  <ProgId Id='extfile' Description='Ext file'>
    <Extension Id='ext' ContentType='application/ext' />
  </ProgId>
      
</Component>


-----Original Message-----
From: The Eligible Bachelors [mailto:theeligiblebachel...@yahoo.com] 
Sent: 16 March 2011 21:03
To: wix-users@lists.sourceforge.net
Subject: Re: [WiX-users] Multifeature filetype association

Ok. So I have removed the property with the file search. Now it looks like:

<Component Id="A">
  <File Id="MainEXE" name="Main.exe" Source="$(var.BINDIR)/Main.exe"/>
  ....
</component>

  ...

<Component Id="B">

  ...
  <ProgId Id='extfile' Description='Ext file'>
    <Extension Id='ext' ContentType='application/ext'>
      <Verb Id='open' Command='Open' TargetFile='[MainEXE]' Argument='"%1"'
/>
    </Extension>
  </ProgId>
      
</Component>


Produces
  "Unresolved reference to 'File:[MainEXE]' in section ...
  
If I then change it to TargetFile='[#MainEXE]', I get the same error.

If I change it to TargetProperty='[#MainEXE]', I get:

ICE69: Mismatched component reference. Entry
'reg1099EB9499BDFA8BA8EBB7D10C985FE0' of the Registry table belongs to
component 'B'. However, the formatted string in column 'Value' references
file 'MainEXE' which belongs to component 'A'. Components belong to different
features (LGHT0204)





> You need to use either [#fileid] for
> a long path or [!fileid] for a
> short path. Since it's the same MSI there should be no need
> to mess
> about with Properties just change the TargetProperty to
> reference the
> File Id of the executable.
> 
> The ICE69 error is because there's no File with Id of
> "MAINEXEC" in your
> MSI. If the File Element of main.exe has Id="Main.exe" use
> [#Main.exe].
> See http://msdn.microsoft.com/en-us/library/aa368609.aspx
> 
> Actually having looked at the Verb syntax you could drop
> the
> TargetProperty attribute & use the TargetFile attribute
> instead & point
> it at the File Id of Main.exe. It may achieve the exact
> same thing as
> above but it should be better syntactically since the
> package is
> installing the executable & the (optionally) the file
> type.
> 


      

-----------------------------------------------------------------------------
-
Colocation vs. Managed Hosting
A question and answer guide to determining the best fit
for your organization - today and in the future.
http://p.sf.net/sfu/internap-sfd2d
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users
SDL PLC confidential, all rights reserved.
If you are not the intended recipient of this mail SDL requests and requires 
that you delete it without acting upon or copying any of its contents, and we 
further request that you advise us.
SDL PLC is a public limited company registered in England and Wales.  
Registered number: 02675207.
Registered address: Globe House, Clivemont Road, Maidenhead, Berkshire SL6 7DY, 
UK.


------------------------------------------------------------------------------
Colocation vs. Managed Hosting
A question and answer guide to determining the best fit
for your organization - today and in the future.
http://p.sf.net/sfu/internap-sfd2d
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to