Visual Studio - 使用exe进行后期构建时出错

时间:2014-03-21 08:49:36

标签: c# visual-studio-2012 post-build-event

如果我想在Visual Studio 2012中的C#项目的后期构建事件中运行一个简单程序,Visual Studio将失败并显示错误“从命令c:\ test.exe退出,代码为-532462766”。

程序'test.exe'很简单:

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("ciao");
        Console.ReadKey();
    }
}

但是,如果我删除'ReadKey()',它运行没有错误。 有人可以解释我的错误吗?

1 个答案:

答案 0 :(得分:4)

退出代码是0xe0434352," CCR"异常,它是在.NET程序中触发托管异常处理的非托管异常。您的代码中没有try / catch,也没有AppDomain.CurrentDomain.UnhandledException的事件处理程序,因此您无需查看,但是"它崩溃了#34;退出代码。

对于在pre / post-build事件中运行的代码,这是正常的。这样的代码在沙盒中运行,试图击败你正在尝试做的事情,任何会导致构建停止的事情"按Enter继续"风格互动。非常重要的是,没有人喜欢在构建服务器上构建30个小时来停止这样的事情。您可以捕获异常,您将获得InvalidOperationException:

  

当任一应用程序没有控制台或从文件重定向控制台输入时,无法读取密钥。试试Console.Read

哪个好建议,你的程序将不再崩溃。但也不会停止,Console.Read / Line()当然也被击败了。这个功能非常扎实。我只需要这样做一次,而我想出的唯一方法就是Thread.Sleep()。

当你在罗马时,就像罗马人一样。将输出重定向或写入文件,以便在构建完成后稍后读取。