PDA

View Full Version : Project step not working after upgrading to Visual Build Professional 7.7


sujay_hsk
01-24-2011, 09:09 AM
Hi,

I had a .bld file on Visual Build Professional 5.7 version which was working fine. But after upgrading my .bld file to Visual Build Professional 7.7 version a step called "Get new assemblies" is not working.

We are running MakeVS.Net step to compile the projects.
Reference assemblies are stored at C:\Dependent Binaries\Reference\ and the latest dlls compiled from MakeVS.Net are stored at C:\Dependent Binaries\Release\

Since the list of projects that visual build creates is in alphabetical order, few projects fail to compile due to cyclic dependency. To deal with this, we are running the compilation multiple time.

Once the MakeVS.Net goes through compiling all the projects in the list. We have a step called "Get new assemblies" which will copy the compiled latest dlls(binaries) from C:\Dependent Binaries\Release\ to C:\Dependent Binaries\Reference.
Now, we re-run the compilation if any project fails compilation.

Problem is, after upgrading to VSBuild 7.7 "Get new assemblies" step is not working and the build stops soon after build goes through the entire project list.

I've attached the Bld files before and after upgradation and a text file with log snippet showing the same.

Please help me!

Thanks,
Sujay

kinook
01-24-2011, 09:19 AM
I don't see an attachment, but one possibility:
http://www.kinook.com/Forum/showthread.php?threadid=4500

Also, you should define project dependencies in the VS solution to ensure proper build order.
http://msdn.microsoft.com/en-us/library/et61xzb3%28v=vs.100%29.aspx

sujay_hsk
01-24-2011, 01:34 PM
I'll revert to your suggesstions, meanwhile please have a look at the attachment i've made with this reply.

i added the attachment in my initial post also, but not sure how it got missed out. Please bear with me...this is my first post! :)

kinook
01-24-2011, 01:54 PM
Based on the log output, it does look like my first link above would apply. To set the mentioned property via script code:

objStep.Property("Location")="devenv"

sujay_hsk
01-25-2011, 02:52 PM
HI,

We are not at all concerned about the compilation failure. We know it will fail. We have VB script to re-compile the failed projects. But, all we are worried is why do Visual Build fails soon after a c# project compilation (through Make VS.Net) fails.

We also tried setting "Continue building"- On Step Failure for all the steps we run, but didn't help.
ANd in Vis Build 5.7 we had "Ignore step failure" and didn't have this "On Step Failure" option. I think this option is by default "Stop the Build" in 7.7 and is causing the build to stop even if we change it to "Continue building"

Please let me know, if i misunderstood.

Thanks,
Sujay

kinook
01-25-2011, 03:15 PM
When creating the Make VS.NET step via script, the equivalent of

objStep.Property("ignorefail")=-1

in v5 would be

objStep.Property("continueonfail")=1

in v7.

If that doesn't help, please send a .bld file that reproduces the behavior of the build stopping on failure even if the step is configured to continue on failure.

sujay_hsk
01-27-2011, 12:48 PM
I tried setting objStep.Property("continueonfail")=1 in my Make VS.NET step. With this, build continued and executed all the steps that appeared next though the compilation of few projects failed(Which is correct!).
But, it fell into infinite loop. It didn't stop untill i manually stop it. I've attached the bld file with this reply.

In our script, local_CompileAgain() function is always returning 'true'. The function seems to be correct to me and should return 'false' if CURRENT_COMPILE_NUMBER exceeds COMPILE_TIME. But, not sure whats going wrong.

In the VSBuild IDE, i tried to set the limit for 'Number of tries' under "On Step Failure" option.
And i also tried to set the option Build only if expression evaluates to true with below expression:
CURRENT_COMPILE_NUMBER < COMPILE_TIME
But it didn't help! Values for these macros are coming correctly though.

Could you please see if anything is going wrong in local_CompileAgain() function or let me know how can i limit the number of passes\trials for a step.

The options in IDE barely seems to work. Looks like it should be something in script.

Thanks,
Sujay

kinook
01-27-2011, 03:11 PM
Since you're calling local_CompileAgain in a script expression, see here for preventing multiple calls to this function, which could affect build behavior: http://www.kinook.com/Forum/showthread.php?threadid=4767

If that doesn't help, please ZIP and post the build log file.

sujay_hsk
01-29-2011, 12:39 PM
We tried your suggestions but looping continued. I've attached the log file.
And you can see that though we have set the max compile time to 5, it continued till 8 times and we had to stop the build.
It should end after 5 times irrespective of compilation succeeds or not.

Thanks,
Sujay

kinook
01-29-2011, 11:26 PM
Cast the macro values to integers so that integer rather than string comparisons will be performed:

NUMBER_OF_FAILED_PROJECTS=CLng(Project.Macros("NUMBER_OF_FAILED_PROJECTS").Value)
CURRENT_COMPILE_NUMBER=CLng(Project.Macros("CURRENT_COMPILE_NUMBER").Value)
COMPILE_TIME=CLng(Project.Macros("COMPILE_TIME").Value)
...

sujay_hsk
02-04-2011, 02:20 AM
Your suggestion worked out! Thanks a lot!!
I appreciate your responsiveness and your turnaround time is really great.

Thanks,
Sujay