finally mutex.ReleaseMutex();
Code 6 is often returned when the WaitOne() method on a Mutex object fails – either because the mutex is abandoned, the timeout expires, or the calling thread does not have the required access rights.
taskkill /f /im msbuild.exe taskkill /f /im VBCSCompiler.exe