Kinook Software Forum

Go Back   Kinook Software Forum > Visual Build Professional > [VBP] General Discussion

Reply
 
Thread Tools Rate Thread Display Modes
  #1  
Old 01-17-2006, 11:57 AM
jnapier jnapier is online now
Registered User
 
Join Date: 07-29-2003
Posts: 32
Conditional Build Rule Problem

I am having a problem with a conditional build rule. I have set the step to only run if the %FAILSTEP_NAME% equals a certian value. But it only fires randomly on the same fail step. The step in question is is in the Failute Steps section so I only want it fired if certain steps caused the failure.

Here is the build rule
-Build only if the macro or expression

[InStr("%FAILSTEP_NAME%", "Solution") > 0 or InStr("%FAILSTEP_NAME%", "AssemblyInfo") > 0 or InStr("%FAILSTEP_NAME%","Sign Solution") > 0 or InStr("%FAILSTEP_NAME%", "Strong Name") > 0]

Is True

Here is the output that i am getting when the step is evaluated

Step 'Prepare Solution Failure' build rule evaluates false: [InStr("%FAILSTEP_NAME%", "Solution") > 0 or InStr("%FAILSTEP_NAME%", "AssemblyInfo") > 0 or InStr("%FAILSTEP_NAME%","Sign Solution") > 0 or InStr("%FAILSTEP_NAME%", "Strong Name") > 0] is true

So you can see the rule is evaluating false. the next evaluated rul actually expands the name of the step and here is the output

Step 'No VSS Label' build rule evaluates false: %FAILSTEP_NAME% (expanded value = Check Out AssemblyInfo Files from Solution) is equal to Label the Build

So you can see that the output indicate the name of the macro, so "Check Out AssemblyInfo Files from Solution" should have evaluated true in the first step. and the problem is that sometimes it actually does work. I havent pinned down the conditions of when it does work though.

What appers that is happening is that the macro is not getting expanded because successfull tests show the output with the macro expanded as opposed to %FAILSTEP_NAME%

Any help would be appreciated.
Reply With Quote
  #2  
Old 01-18-2006, 07:06 AM
kinook kinook is online now
Administrator
 
Join Date: 03-06-2001
Location: Colorado
Posts: 6,013
While investigating this, we found that there is a bug in handling of nested script expressions that reference the Step, FailedStep, or LastStep objects. In VBP v6, the value of the FAILSTEP_NAME system macro is the script expression [FailedStep.Name]. Your build rule is itself a script expression; with macros expanded [FailedStep.Name] is a nested expression within it, and the bug prevents FailedStep from being evaluated properly. One workaround would be to use

FailedStep.Name

(no quotes) in place of

"%FAILSTEP_NAME%"

in your build rule expression to eliminate the nested script expression. We've also patched the main download with a fix for the problem.

Finally, just FYI, another way (in v6) to approach selective building of failure steps depending on the step that failed would be to specify a failure step subroutine to build for the various project/subroutine steps that require different failure steps to be built.
Reply With Quote
Reply

Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



All times are GMT -5. The time now is 03:19 AM.


Copyright © 1999-2023 Kinook Software, Inc.