c#程序是从cmd提示符工作但不能单独运行?

时间:2009-08-05 16:14:36

标签: c# command-line console executable command-prompt

我会发布一个片段,但老实说我不知道​​我的代码可能会做什么。这个程序很大,我不想让你们全部涉足它。可能是什么原因造成的?从命令提示符调用时,一切都运行良好:“readoo.exe”。但是当我单击其文件中的exe时。 。 。 “readoo.exe遇到了问题,需要关闭......”

这最终是一项计划任务 - >我很担心,它会起作用吗?

我从未调试过,我用过的只是记事本。我正在学习,并认为这加强了我对项目的理解。

它立即崩溃了。虽然文件路径是相对的,但没有快捷方式。

尝试此方法:快捷方式 - >属性 - >快捷方式 - >开始。我没有“快捷方式”选项

我的程序读取日志文件,解析,并根据找到的内容创建4个新文件

Microsoft错误报告说未找到文件。但这怎么可能呢?文件在那里,虽然是相对的。

7 个答案:

答案 0 :(得分:3)

获取您项目的副本,然后开始黑客攻击。当它不再崩溃时,你已经移除了导致问题的位。

双击它时,它在什么时候失败?是立即,还是仅在您采取某种行动时?

您还可以添加大量日志记录,这可能表明问题所在。

答案 1 :(得分:3)

这可能正在寻找一个它找不到的dll,或者找不到它想要的版本。

您可以尝试使用sysinternals中的Process Monitor或Process Explorer来查看它在运行时以及在找到它们的位置加载的dll。

答案 2 :(得分:2)

尝试将System.Diagnostics.Debugger.Break()调用作为Main()中的第一项内容,并且您将被要求附加调试器 - 这绝对应该向您显示2次调用之间的不同之处。

答案 3 :(得分:1)

我首先要确定两种执行方法的不同之处。是否有修改任何内容的快捷方式?

  • 起始目录?
  • 执行帐户?
  • 命令行参数?

答案 4 :(得分:1)

如果您的应用程序依赖于某个文件,该文件应位于该exe的同一路径上,则可能会发生这种情况。

您必须将exe的属性(或exe的快捷方式)更改为exe的目录“Start In”。要获得快捷方式,请右键单击快捷方式 - >属性 - >快捷方式 - >开始。

我想这就是我认为可能的原因。

编辑:在代码末尾添加一个Console.ReadLine,让它暂停,以便您查看抛出的任何异常。当您使用Windows资源管理器运行它时,这应该会有所帮助。

答案 5 :(得分:1)

有两件事情可能是:

  • 当您单击程序或从命令提示符运行时,当前目录可能会有所不同。
  • 当您单击使用标准命令提示符的程序时,设置和路径可能不同,是否在从提示符运行程序时打开visual studio命令提示符。

答案 6 :(得分:0)

在代码中放置一个try / catch,并将异常消息输出到catch块中的控制台。这应该会给你一些线索。