I am using WiX 3.0.2925 to create an installer, and I am having a very hard
time getting file associations to work correctly. My case may be a little
strange, and I am not sure if Windows Installer even supports it. Basically,
I have an application that can be launched in two different contexts:
desktop and clustered. The desktop launching is done using a batch file
while the clustered launching is done using an external application. If that
external application is installed, then I need to add an extra verb for my
file extension in the registry. I use RegistrySearch to determine if the
external application is installed, though I do not yet have that working
very well yet.
I have tried to do this a number of ways, and they all cause the installer
to crash in one way or another. Currently, I am just trying to set up the
simple case where the batch file is used. If the following component is
included in a feature, it works (though I have not gotten the icon stuff
sorted out yet):
Fragment
DirectoryRef Id=app
Component Id=desktop.bat_1 Guid={...}
Condition
CLUSTERGUI = OR PYTHONDIR =
/Condition
File Id=desktop.bat Name=desktop.bat KeyPath=yes
Source=dist\app\desktop.bat /
ProgId Id=myapp.myext Description=MyApp Document
Advertise=yes
Extension Id=myext
ContentType=application/myapp-myext+xml
Verb Id=openBatchFile
Command=Open in MyApp (Desktop)
Argument=quot;%1quot; /
/Extension
/ProgId
/Component
/DirectoryRef
/Fragment
This fragment, however, causes a crash:
Fragment
DirectoryRef Id=app
Component Id=desktop.bat_1 Guid={...}
Condition
CLUSTERGUI = OR PYTHONDIR =
/Condition
File Id=desktop.bat Name=desktop.bat KeyPath=yes
Source=dist\app\desktop.bat /
ProgId Id=myapp.myext Description=MyApp Document
Extension Id=myext
ContentType=application/myapp-myext+xml
Verb Id=openBatchFile
TargetProperty=[!desktop.bat]
Command=Open in MyApp (Desktop)
Argument=quot;%1quot; /
/Extension
/ProgId
/Component
/DirectoryRef
/Fragment
The reason that I want to use the TargetProperty of the Verb element is so
that I can do the following as the other condition:
Fragment
DirectoryRef Id=app
Component Id=desktop.bat_2 Guid={...}
Condition
CLUSTERGUI lt;gt; AND PYTHONDIR lt;gt;
/Condition
File Id=desktop.bat Name=desktop.bat KeyPath=yes
Source=dist\app\desktop.bat /
ProgId Id=myapp.myext Description=MyApp Document
Extension Id=myext
ContentType=application/myapp-myext+xml
Verb Id=openCluster
TargetProperty=[PYTHONDIR]\pythonw.exe
Command=Open in MyApp (Cluster)
Argument=... /
Verb Id=openBatchFile
TargetProperty=[!desktop.bat]
Command=Open in MyApp (Desktop)
Argument=quot;%1quot; /
/Extension
/ProgId
/Component
/DirectoryRef
/Fragment
I have tried other variations where I use separate components to contain the
two Verb elements or where I separate the ProgId from the component
containing the File element. Nothing works, and all I can conclude at this
point is that I am doing something wrong or I am trying to do something that
WiX does not allow.
Am I simply on the wrong path with trying to have conditional verb addition
for a file association? If so, is there some other approach that I could try?
-Patrick
--
Patrick L. Hartling
VP Engineering, Infiscape Corp.
http://www.infiscape.com/
signature.asc
Description: OpenPGP digital signature
-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now http://get.splunk.com/___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users