views:

109

answers:

2

I have msbuild building my solutions. msbuild is being called inside a batch file and the file is being called in cruisecontrol.net. When msbuild throws an error, these errors appear in the logs but cruisecontrol still builds successfully since the batch file was executed successfully. Is there any way I can have cruisecontrol change it's status to Failure in this situation????

+1  A: 

Have you tried using the CC.NET MSBuild Task instead of calling out to a batch file?

Sayed Ibrahim Hashimi
A: 

@Sayed Ibrahim Hashimi makes a good suggestion.

If you're using an exec task in cc.net to run the batch file that runs MSBuild then you are going to need to make sure that the failure from MSBuild is reported in the return code from the batch file. You will also need to make sure that this isn't one of the specified for the exec task.

An MSBuild task in cc.net explicitly understands the output from MSBuild and will pass or fail your integration project based on success of failure of the build.

An Executable task has no special understanding of what the process is and will simply accept as having succeeded any process that exits with a code in the list of successExitCodes. This means that a batch file that you execute would need to return an appropriate exit code to cc.net for the failure to be recognized.

Hamish Smith