private static void ParseErrors(PeVerifyResult result, string stdOut)
        {
            result.Errors = new List <string>();

            int startIndex = 0;

            while (startIndex < stdOut.Length)
            {
                startIndex = stdOut.IndexOf("[IL]:", startIndex);
                if (startIndex == -1)
                {
                    break;
                }

                int endIndex = stdOut.IndexOf("[IL]:", startIndex + 1);
                if (endIndex == -1)
                {
                    // Look for the last line...
                    endIndex = stdOut.IndexOf("\r\n", startIndex + 1);
                }

                result.Errors.Add(result.NormalizeErrorString(stdOut.Substring(startIndex, endIndex - startIndex)));
                startIndex = endIndex;
            }
        }
        public static PeVerifyResult VerifyAssembly(string assemblyName)
        {
            PeVerifyResult result = new PeVerifyResult();
            result.AssemblyName = assemblyName;

            string stdOut, stdErr;
            //result.ExitCode = StartAndWaitForResult(PeVerifyPath, assemblyName + " /UNIQUE /IL /NOLOGO", out stdOut, out stdErr);
            result.ExitCode = StartAndWaitForResult(PeVerifyPath, assemblyName + " /IL /NOLOGO", out stdOut, out stdErr);

            if (stdOut.Contains("The assembly is built by a runtime newer than the currently loaded runtime"))
            {
                Console.WriteLine("********* You should use a higher .NET version of PeVerify.exe.  Press Enter to continue.");
                Console.ReadLine();
            }
            ParseErrors(result, stdOut);

            return result;
        }
        public static PeVerifyResult VerifyAssembly(string assemblyName)
        {
            PeVerifyResult result = new PeVerifyResult();

            result.AssemblyName = assemblyName;

            string stdOut, stdErr;

            //result.ExitCode = StartAndWaitForResult(PeVerifyPath, assemblyName + " /UNIQUE /IL /NOLOGO", out stdOut, out stdErr);
            result.ExitCode = StartAndWaitForResult(PeVerifyPath, assemblyName + " /IL /NOLOGO", out stdOut, out stdErr);

            if (stdOut.Contains("The assembly is built by a runtime newer than the currently loaded runtime"))
            {
                Console.WriteLine("********* You should use a higher .NET version of PeVerify.exe.  Press Enter to continue.");
                Console.ReadLine();
            }
            ParseErrors(result, stdOut);

            return(result);
        }
        private static void ParseErrors(PeVerifyResult result, string stdOut)
        {
            result.Errors = new List<string>();

            int startIndex = 0;
            while (startIndex < stdOut.Length)
            {
                startIndex = stdOut.IndexOf("[IL]:", startIndex);
                if (startIndex == -1) break;

                int endIndex = stdOut.IndexOf("[IL]:", startIndex + 1);
                if (endIndex == -1)
                {
                    // Look for the last line...
                    endIndex = stdOut.IndexOf("\r\n", startIndex + 1);
                }

                result.Errors.Add(result.NormalizeErrorString(stdOut.Substring(startIndex, endIndex - startIndex)));
                startIndex = endIndex;
            }
        }