C#命令行项目 - 通过.exe运行时出错

时间:2010-07-21 20:59:36

标签: c# visual-studio command-line

我有一个正常编译的C#项目。当我通过Visual Studio的IDE运行项目时,它运行良好并且干净利落地结束。但是,当我导航到项目目录并尝试通过双击“exe”文件或通过运行窗口引用它来运行程序时,它会出错。

我已将问题缩小到

Console.WriteLine("output ->" + any_variable);

出于某种原因,如果我使用console.writeline打印任何变量,如果按照前面的描述运行,应用程序将会出错。

如果我拿出这一行,Visual Studio创建的可执行文件将会运行得很好,如果我双击它。我真的很困惑。我的目标是将此命令行项目创建为计划任务。

3 个答案:

答案 0 :(得分:4)

我认为该错误与WriteLine甚至Console没有任何关系。虽然从IDE运行和从双击运行之间的共同区别可能是权限(即,您可以以管理员身份启动IDE,或者您正在编写/从/读取的位置不同并且附加了不同的ACL它),这里的情况似乎并非如此。

要捕获实际错误,请编译为调试模式。启动您的应用程序(可能带有某种消息框)。启动IDE并选择Debug and Attach进行处理(如果您使用消息框暂停应用程序,则可以随时使用)。选择您的流程。运行直到收到错误。您现在应该在IDE中收到错误,即使该应用程序是通过双击EXE运行的。您可以像平常一样查看堆栈和调试。

我的猜测?您正在打印的变量会引发错误。

另外一个简单的尝试/捕获有问题的声明加上一个带有Exception.Message的消息框应该会给你一些更多的英特尔。

答案 1 :(得分:1)

对不起,我错了......所以编辑

将代码放入try {} catch {} construct:

try
{
//your code goes here
}
catch (Exception ex)
{
    Console.WriteLine("An error occured: {0}", ex.Message);
    if (ex.InnerException != null)
       Console.WriteLine("Inner Exception: {0}", ex.InnerException.Message);
    Console.WriteLine("Stack Trace: {0}", ex.StackTrace);
}

这是必要的,找出你的问题,在哪行代码等。

答案 2 :(得分:0)

我不知道这是否适用于你的情况,但我有一个非常类似的问题,我前几天在这里发布:Weird error message when running my application