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

标签 c# visual-studio command-line

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

我已经将问题缩小到

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

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

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

最佳答案

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

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

我猜?您正在打印的变量做了一些引发错误的事情。

或者:围绕有问题的语句进行简单的 try/catch 以及带有 Exception.Message 的消息框也应该给您更多的情报。

关于C# 命令行项目 - 通过 .exe 运行时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3303820/

相关文章:

c# - WPF 中的 MenuItem 仅注册右键单击,但不注册左键单击

c++ - 在 VS2010 中动态链接 Boost 1.51.0 时链接器错误 LNK2019

c# - 如何更新FormView?

java - 从命令行使用处理时出现 UnsupportedClassVersionError

c# - 如何在 selenium 中获取已经打开的 IE 浏览器句柄?

c# - EF 核心数据库特定列到嵌套对象

intellij-idea - IntelliJ IDEA 中 Diff 文件的语法荧光笔

java - 在 Java 中执行 Linux 命令

c# - 414 - 请求的 uri 太长 - url 长度为 70 个字符

c++ - MSDN 站点上调用 AdjustTokenPrivileges() 的示例代码因 "Cannot enable the SE_LOCK_MEMORY_NAME privilege"而失败