我有一个正常编译的C#项目。当我通过Visual Studio的IDE运行项目时,它运行良好并且干净利落地结束。但是,当我导航到项目目录并尝试通过双击“exe”文件或通过运行窗口引用它来运行程序时,它会出错。
我已将问题缩小到
Console.WriteLine("output ->" + any_variable);
出于某种原因,如果我使用console.writeline打印任何变量,如果按照前面的描述运行,应用程序将会出错。
如果我拿出这一行,Visual Studio创建的可执行文件将会运行得很好,如果我双击它。我真的很困惑。我的目标是将此命令行项目创建为计划任务。
答案 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