This might be a silly response, and I haven't had to think about Property 
behaviour for a while, but isn't that the wrong way to set a Property to the 
value of another Property? From http://msdn.microsoft.com/library/aa370908.aspx 
it says:

"Note that you cannot use the Property table to set a property to the value of 
another property. The installer does nothing to the text string entered in the 
Value column before setting the property in the Property column. If 
FirstProperty is entered into the Property column and [SecondProperty] in the 
Value column, the value of FirstProperty is set to the text string 
"[SecondProperty]" and not to the value of the SecondProperty property. This is 
necessary to prevent creating circular references in the Property table. 
Instead, you can set one property to another by using a Custom Action Type 51."

Does it work if you change your code to:
<SetProperty Id="FileAssociationProperty" 
Value="[group_ProductFiles:Compass.exe]" After="CostFinalize" />
?
NB: I didn't think at all about the sequencing, so you'd want to work out what 
is best for your situation.

Cheers,
Michael
Ps. I've not added a Verb to heat output in the way you're attempting. Coming 
from WiX2, I post-processed the tallow output to add in my Verb. If I was doing 
it from scratch for WiX3, then I'd probably use XSL to generate the Verb 
directly into the heat output, but xsl isn't for everyone.

-----Original Message-----
From: jo...@msli.com [mailto:jo...@msli.com] 
Sent: Thursday, 15 August 2013 5:54 AM
To: General discussion for Windows Installer XML toolset.
Subject: [WiX-users] Use a TargetProperty in a Verb in a ProgId, for file 
association

I am using wix-3.7 on windows7, to associate my program (Compass.exe) with 
file-names ending in galileoGlobalProject.

I can build the msi and install it, but double clicking a file raises error 
dialog: "Windows cannot access the specified device, path, or file.  You may 
not have the appropriate permissions to access the item."

How do I populate the correct path to my program?

Details:

Heat generates my list of files using the following syntax:
heat.exe dir dist -dr INSTALLDIR -cg group_ProductFiles -alias .\ 
-norootdirectory -ext .WXS -ext .wixobj -ext .wxi MyProgram.resource_list.wxs

The auto-generated section is as follows:
<Fragment>
<ComponentGroup Id="group_ProductFiles"> <Component 
Id="cmpAE06573553A70385366B99F6F873F4C4" Directory="INSTALLDIR" 
Guid="4BED1A2F-C6A6-41DE-9642-B5058D915837">
<File Id="fil295766B9BCB62F1C1108682A4BF39B04" KeyPath="yes" 
Source="$(var.dist)\Compass.exe" /> </Component> </ComponentGroup> </Fragment>

I add this to the Project element:
<Property Id='FileAssociationProperty' 
Value="[group_ProductFiles:Compass.exe]"/>

I try to use the TargetProperty in a Verb in order to create an Extension in a 
ProgId:
<ProgId Id="CompassgalileoGlobalProject" Description="Galileo Global Project"  
> <Extension Id="galileoGlobalProject" > <Verb Command="Open" Id="open" 
TargetProperty="FileAssociationProperty" Argument="&quot;%1&quot;" /> 
</Extension> </ProgId>

After installing I search the registry for my extension 
HKEY_CLASSES_ROOT\.galileoGlobalProject
  (default)   REG)SZ   CompassgalileoGlobalProject
HKEY_CLASSES_ROOT\CompassgalileoGlobalProject\shell\open\command
  "[group_ProductFiles:Compass.exe]" "%1"
HKEY_CURRENT_USER\Software\Classes\.galileoGlobalProject
HKEY_CURRENT_USER\Software\Classes\CompassgalileoGlobalProject\shell\open\command
  "[group_ProductFiles:Compass.exe]" "%1"
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.galileoGlobalProject\OpenWithList
  (value not set)
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.galileoGlobalProject\OpenWithProgids
  CompassGalileoProject    REG_NONE  (zero-length binary value)

Have I done everything right?
My previous post got no love, so I'm trying to rephrase the question.


NOTICE: This email may contain confidential information.  Please see 
http://www.meyersound.com/confidential/ for our complete policy.

------------------------------------------------------------------------------
Get 100% visibility into Java/.NET code with AppDynamics Lite!
It's a free troubleshooting tool designed for production.
Get down to code-level detail for bottlenecks, with <2% overhead. 
Download for free and get started troubleshooting in minutes. 
http://pubads.g.doubleclick.net/gampad/clk?id=48897031&iu=/4140/ostg.clktrk
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users



------------------------------------------------------------------------------
Get 100% visibility into Java/.NET code with AppDynamics Lite!
It's a free troubleshooting tool designed for production.
Get down to code-level detail for bottlenecks, with <2% overhead. 
Download for free and get started troubleshooting in minutes. 
http://pubads.g.doubleclick.net/gampad/clk?id=48897031&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