The candle task fails with the following error:
C:\Ifx_2.0\ExTools\WiX_v3\v3.0.4513.0\Wix.targets(1188,5): error MSB6001: Invalid command line switch for "candle.exe". Value cannot be null.
C:\Ifx_2.0\ExTools\WiX_v3\v3.0.4513.0\Wix.targets(1188,5): error MSB6001: Parameter name: path1
How to repeat error:
1) Install a Windows OS; XP, Vista and Win2008 tried so far; install Visual Studio.
Important: Do not install WiX
2) From source control build a Wix project's pre-cursor components (from MSBuild or VStudio)
3) From source control copy the Wix binaries, as per the instructions in the Wix help manual "Integrating WiX Projects Into Daily Builds"
4) Run MSBuild project which includes the Wix project.
It will fail with the above error.
5) Now install Wix from its MSI file.
6) Run the same MSBuild project which includes the Wix project. This time it will succeed.
7) Uninstall Wix from OS
8) Run MSBuild Wix project.
It will fail with the above error.
Preliminary investigations suggest it may be the Path.Combine statement in the Candle task inside the WixTasks dll. I cannot see where else the name "path1" could come from.
I have include the log files from a) pre-wix-install MSBuild run and b) the post-wix-install MSBuild run, merged into one file
Rod Paterson
Pre and Post Wix Install MSBuild run logs
As the WiX.chm topic says, if you don't install WiX, you need to modify your .wixproj (or use command-line switches) to point the properties to where you've copied the WiX tools, tasks, and targets.
Hi Bob, here is the MSBuild code for the logged samples. I'm not sure what other properties to point. I've specified the WixToolPath, WixTargetsPath and WixTasksPath properties. Is there something else?
<project defaulttargets="BuildIfxInstallPackets" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" toolsversion="3.5"></project>
Try setting WixExtDir to WixToolPath. If that works, let me know and I'll see about setting that default in wix.targets.
WixExtDir was supposed to be optional. I checked in a fix to wix.targets to default WixExtDir to WixToolPath if it's not otherwise defined. And I made the candle task more robust in the absence of this property anyway.
I added the WixExtDir property (see fragment below) and the build process did get through the candle task however it then balked at the "Light" task.
Something is missing because the task displays the command syntax help screen. See appended log file
<project defaulttargets="BuildIfxInstallPackets" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" toolsversion="3.5"></project>
Properties="DefineSolutionProperties=true;PreprocessToStdOut=true;ShowSourceTrace=true;Configuration=Release;Targets=Rebui
ld;WixToolPath=$(WixToolPath);WixTargetsPath=$(WixTargetsPath);WixTasksPath=$(WixTasksPath);WixExtDir=$(WixExtDir)" />
File Added: wixext_1.log
build log with WixExtDir populated
Can you attach your .wixproj? For some reason, some of the input files aren't being passed to LIt and Light.
Here is the project directory structure. It has been designed to be machine/drive portable. Exectables are published to the top-level "Build" directory, where they are accessed via relative paths from the wix project.
To keep the zip file size down, you will need to add the Wix binaries to the v3.0.4513.0 directory.
E:\WIXSAMPLE
---Ifx
+---Build
| +---Icons
| ---Release
+---ExTools
| ---WiX_v3
| ---v3.0.4513.0
+---Setup
| ---Ifx Prerequisite v2.0
---Source
---Installation Projects
---WiX
+---Ifx Prerequisite v2.0
+---Include
---Libraries
---Ifx UI Core
1) The build project is \WixSample\Source\Installation Projects\WiX\Test.proj (you will need to edit the <solutionroot></solutionroot> node accordingly).
2) The file \WixSample\Source\Installation Projects\WiX\ZapObjDir.bat is a nant script to remove any existing object & bin directories before a build run.
3) The wix project "Ifx Prerequisite v2.0" is held in the \WixSample\Source\Installation Projects\WiX\Ifx Prerequisite v2.0 directory. It includes a single library project "Ifx UI Core" under the Libaries sub-directory.
4) Preprocessor variables are held in files in the \WixSample\Source\Installation Projects\WiX\Include directory
5) The msi output file goes to \WixSample\Setup\Ifx Prerequisite v2.0\IRIS Framework Prerequisite v2.0.msi
6) I have simplified the project but it still give the same effect (i.e. Lit not working and displaying the syntax screen).
7) The original project is actually 3 separate installation packages being built by a solution file, but again this gives the same effect as before.
8) If you put the "Ifx UI Core" & "Ifx Prerequisite v2.0" wix projects into a blank VS solution it build correctly.
Rod Paterson
File Added: WixSample.zip
Ifx Sample project in situ
This Tracker item was closed automatically by the system. It was
previously set to a Pending status, and the original submitter
did not respond within 15 days (the time period specified by
the administrator of this Tracker).
Still not quite there.
The MSBuild task is not finding the wix.targets file, despite it been passed in the standard "WixTargetsPath" parameter.
Here is a small snippet of the build log file:
Task "MSBuild"
Global Properties:
Configuration=Release
WixToolPath=C:\Temp\Beta2_Ifx_2.0\Build_Ifx\BuildType..\Sources\ExTools\WiX_v3\v3.0.4624.0\bin\
WixTargetsPath=C:\Temp\Beta2_Ifx_2.0\Build_Ifx\BuildType..\Sources\ExTools\WiX_v3\v3.0.4624.0\bin\Wix.targets
WixTasksPath=C:\Temp\Beta2_Ifx_2.0\Build_Ifx\BuildType..\Sources\ExTools\WiX_v3\v3.0.4624.0\bin\wixtasks.dll
C:\Temp\Beta2_Ifx_2.0\Build_Ifx\Sources\Source\Installation Projects\WiX\Libraries\Ifx Core\Ifx Core.wixproj(85,11): error MSB4019: The imported project "C:\Program Files\MSBuild\Microsoft\WiX\v3.0\Wix.targets" was not found. Confirm that the path in the <import> declaration is correct, and that the file exists on disk.
Libraries\Ifx Core\Ifx Core.wixproj : Solution file warning MSB4122: Scanning project dependencies for project "Libraries\Ifx Core\Ifx Core.wixproj" failed. The imported project "C:\Program Files\MSBuild\Microsoft\WiX\v3.0\Wix.targets" was not found. Confirm that the path in the <import> declaration is correct, and that the file exists on disk. C:\Temp\Beta2_Ifx_2.0\Build_Ifx\Sources\Source\Installation Projects\WiX\Libraries\Ifx Core\Ifx Core.wixproj
C:\Temp\Beta2_Ifx_2.0\Build_Ifx\Sources\Source\Installation Projects\WiX\Ifx Prerequisite v2.0\Ifx Prerequisite v2.0.wixproj(106,11): error MSB4019: The imported project "C:\Program Files\MSBuild\Microsoft\WiX\v3.0\Wix.targets" was not found. Confirm that the path in the <import> declaration is correct, and that the file exists on disk.
....
==============================================================</import></import></import>
Wix.targets isn't involved at that point (since it's not getting imported). The template .wixproj sets it to the default installation path if there's no value given. The test.proj you uploaded before has a problem with the Properties property:
...Targets=Clean;Rebuild;...
You need to escape the semicolon, I think.
This Tracker item was closed automatically by the system. It was
previously set to a Pending status, and the original submitter
did not respond within 21 days (the time period specified by
the administrator of this Tracker).