PDA

View Full Version : Run 2 "MakeVB6" steps at one time?


FeedMe
04-27-2004, 02:12 PM
I have a parent and child project that both run "make VB6"

If one of the VB projects does not compile I get an error opening the file vsmake.err and the actual compile error is lost.

Both "Make VB6" commands use the switch /out %temp%/VsMake.err and I cannot see any way to change it.

Is there a way to change the /out switch so I can have a unique file for each instance of "Make VB6"?

kinook
04-27-2004, 03:04 PM
The Make VB6 action always specifies /out <temp path>\vsmake.err for the output file. However, you could temporarily modify the TEMP environment variable before one of the Make VB6 steps. Add a Set Macro action to create a temporary TEMP macro to the desired path, checking 'add to environment variables...' option (the TEMP variable will be affected for that Visual Build process and any processes created in subsequent steps). The original TEMP env var value can be restored afterwards via another Set Macro action to delete the TEMP temporary macro/env var.

You may also need to create the alternate folder if it doesn't exist (if the VB6 compiler doesn't create it); you could use a Run Program step with a command of

%DOSCMD% md "drive:\path"

(and see this FAQ http://www.kinook.com/Forum/showthread.php?threadid=46 for how to build that step only if the folder doesn't exist).

FeedMe
04-28-2004, 08:28 AM
I have already tried that very thing, to no avail.
There is a step at the beginning of each of the processes.

This is the Parent
<step action='Set Macro' type='0'>
<MacroEnvVar type='11'>-1</MacroEnvVar>
<MacroName>Temp</MacroName>
<MacroValue>c:\temp1</MacroValue>
<indent type='3'>1</indent>
<name> Temp1</name>
</step>


This is one of the children
<step action='Set Macro' type='0'>
<MacroEnvVar type='11'>-1</MacroEnvVar>
<MacroName>Temp</MacroName>
<MacroValue>c:\temp3</MacroValue>
<indent type='3'>1</indent>
<name> Temp3</name>
</step>

This does not change the command line output for the child processes.....

Command-Line: "c:\vb6.exe" /m "o:\Server\tmp~~AegisCAD.vbp" /out c:\temp1\vsmake.err

The end result is this........
Unable to open file c:\temp1\vsmake.err: The process cannot access the file because it is being used by another process.

Please let me know if there is anything I can do to get around this.

Thanks a lot for the help.

kinook
04-28-2004, 11:07 AM
It turns out that the method used by the Make VB6 action to retrieve the TEMP path did not reflect changes made after the process had started. Here is a test version that uses a unique temp filename for the VB6 error file for each build: http://www.kinook.com/Download/VisBuildMS.zip

Unzip to your VisBuildPro install path. You shouldn't need to update the TEMP variable now.

FeedMe
04-28-2004, 11:46 AM
You guys are the best, it works like a champ.
You just helped me cut my build time in half. (the new dual cpu box helped a little too :) )

Thanks for the fast response.