Not sure if this is really your problem but I suspect that heat.exe expects the 
value of parameters to be in different arguments:
            var args = [];
            args.push("dir", ".");
            args.push("-cg", "MyProjectFiles");
            args.push("-gg");
            args.push("-scom");
            args.push("-sreg");
            args.push("-sfrag");
            args.push("-srd");
            args.push("-dr", "INSTALLLOCATION");
            args.push("-var", "env.MyProjectFilesDir");
            args.push("-template", "fragment");
            args.push("-out", FileInfo.fileName(output.fileName));



From: Denis Shienkov
Sent: Mittwoch, 4. Juni 2014 15:40
To: qbs@qt-project.org; Jake Petroules; Christian Kandeler
Subject: Re: [QBS] Fwd: Function to enumerate all files in desired directory

Hi guys.
I have a trouble using the "heat.exe" utility to generate an *.wxs file.
I got an error:

...
generating myfiles.wxs

C:\Program Files\WiX Toolset v3.8\bin/heat.exe dir . -cg MyProjectFiles -gg 
-scom -sreg -sfrag -srd -dr INSTALLLOCATION -var env.MyProjectFilesDir 
-template fragment -out myfiles.wxs

heat.exe : error HEAT0319 : The '-out' or '-o' parameter must specify a file 
path.

Process failed with exit code 319.

...


but same command line perfectly works from the "cmd.exe" if I run it manually.
Even when I cut the command line up to: "C:\Program Files\WiX Toolset 
v3.8\bin/heat.exe dir . -out myfiles.wxs" then I got same error...
The source code of my Rule:


Rule {

        id: heater

        inputs: [ "xslt" ]

        Artifact {

            fileTags: [ "wxs" ]

            fileName: product.destinationDirectory + "/myfiles.wxs"

        }



        prepare: {

            var args = [];

            args.push("dir .");

            args.push("-cg MyProjectFiles");

            args.push("-gg");

            args.push("-scom");

            args.push("-sreg");

            args.push("-sfrag");

            args.push("-srd");

            args.push("-dr INSTALLLOCATION");

            args.push("-var env.MyProjectFilesDir");

            args.push("-template fragment");

            args.push("-out " + FileInfo.fileName(output.fileName));



            var cmd = new Command("heat.exe", args);

            cmd.description = "generating " + 
FileInfo.fileName(output.fileName);

            cmd.highlight = "generator";

            cmd.workingDirectory = FileInfo.path(output.fileName);

            return cmd;

        }

    }

UPD: If I to do replacing an arguments to one line:

args.push("dir . -cg MyProjectFiles -gg -scom -sreg -sfrag -srd -dr 
INSTALLLOCATION -var env.MyProjectFilesDir -template fragment -out " + 
FileInfo.fileName(output.fileName));

then I got another error:

...
generating mtrfiles.wxs

C:\Program Files\WiX Toolset v3.8\bin/heat.exe dir . -cg MyProjectFiles -gg 
-scom -sreg -sfrag -srd -dr INSTALLLOCATION -var env.MyProjectFilesDir 
-template fragment -out myfiles.wxs

heat.exe : error HEAT0318 : A harvest source must be specified after the 
harvest type and can be followed by harvester arguments.

Process failed with exit code 318.

...

I found a similary problem in Google: http://sourceforge.net/p/wix/bugs/2378/
but those recommendations (with quoted the paths) do not helps..

Guys, what is strange error? :(
BR,
Denis

_______________________________________________
QBS mailing list
QBS@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qbs

Reply via email to