What Was I Thinking?

Follies & Foils of .NET Development
posts - 95 , comments - 352 , trackbacks - 0

FIX: Visual Studio Post Build Event Returns –1 when it should not.

I had written a Console Application that I run as part of my post build for other projects.. 

The Console application logs a series of messages to the console as it executes.  I use the Environment.ExitCode value to specify an error or success condition.  When the application executes without issue, the ExitCode is 0, when there is a problem its –1.

As part of my logging, I log the value of the exit code right before the application terminates.  When I run this executable from the command line, it behaves as it should; error scenarios return –1 and success scenarios return 0.


When I run the same command line as part of the post-build event, Visual Studio reports the exit code as –1, even when the application reports the exit code as 0.   A snippet of the build output follows:

Verbose: Exiting with ExitCode=0
C:\Windows\Microsoft.NET\Framework\v3.5\Microsoft.Common.targets(3397,13): error MSB3073: The command ""MGC.exe" "-TargetPath=C:\TFS\Solutions\Research\Source\Framework\Services\Identity\STS\_STSBuilder\bin\Debug\_STSBuilder.dll"
C:\Windows\Microsoft.NET\Framework\v3.5\Microsoft.Common.targets(3397,13): error MSB3073: 
C:\Windows\Microsoft.NET\Framework\v3.5\Microsoft.Common.targets(3397,13): error MSB3073: " exited with code -1.

The Application returns a 0 exit code.  But visual studio is reporting an error.  Why?

The answer is in the way I format my log messages.  Apparently Visual Studio watches the messages that get streamed to the the output console.  If those messages match a pattern used by visual studio to communicate errors, Visual Studio assumes an error has occurred in the executable and returns a –1.  This post details the formats used by Visual Studio to determine error conditions.

In my case, the presence of the colon was tripping up Visual studio.  I Replaced all occurrences of colon with an equal sign and Visual Studio once again respected the exit code of the application.

Verbose= Exiting with ExitCode=0
========== Build: 3 succeeded or up-to-date, 0 failed, 0 skipped ==========

Print | posted on Thursday, May 27, 2010 12:00 PM | Filed Under [ Visual Studio ]



# delete history

I just like to inform all the web users if they are working with old version of browsing history they are getting lots of problems so no need to worry just install this recently upgraded browsing setting delete web history Thank you so much for installing.Use it and give me feedback also how it working.
1/27/2018 4:33 AM | omejames
Post A Comment

Powered by: