繁体   English   中英

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

[英]C# command line project - Error when run via .exe

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

我已将问题缩小到

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

由于某种原因,如果我使用console.writeline打印任何变量,则如前所述运行该应用程序将出错。

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

我认为错误与WriteLineConsole没有任何关系。 从IDE运行和通过双击运行之间的常见区别可能是权限(即,您可以以admin身份启动IDE,或者您正在写入/读取/从中读取的位置不同,并且附加了不同的ACL。它),这似乎不是这种情况。

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

我猜? 您要打印的变量会引起错误。

替代性地:围绕违规语句进行简单的try / catch以及带有Exception.Message的消息框也应为您提供更多的信息。

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

将您的代码放入try {} catch {}结构中:

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);
}

这很有必要找出是您的问题,在哪一行代码等处。

我不知道这是否适用于您的情况,但是前几天我在这里发布了一个非常类似的问题: 运行应用程序时出现奇怪的错误消息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM