1

我会发布一个片段,但老实说,我不知道我的代码的哪一部分可能会这样做。程序很大,我不想让你们都涉水而过。什么样的事情可能是造成这种情况的原因?从命令提示符调用时一切正常:“readoo.exe”。但是当我单击其文件中的 exe 时。. . “readoo.exe遇到问题需要关闭……”

这最终打算成为一个计划任务->我很担心,它会起作用吗?

我从来没有调试过,我用过的只是记事本。我正在学习,并觉得这加强了我对项目的理解。

它几乎立即崩溃。尽管文件路径是相对的,但没有快捷方式。

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

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

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

4

7 回答 7

3

复制你的项目,然后开始修改它。当它不再崩溃时,您已经删除了导致问题的位。

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

您还可以向其中添加大量日志记录,这也可以指示问题所在。

于 2009-08-05T16:17:42.010 回答
3

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

您可以尝试使用 sysinternals 中的 Process Monitor 或 Process Explorer 来查看它在工作时加载的 dll 以及在哪里找到它们。

于 2009-08-05T17:13:25.623 回答
2

尝试将System.Diagnostics.Debugger.Break()调用作为第一件事Main(),您将被要求附加调试器 - 这绝对应该向您展示 2 调用之间的不同之处。

于 2009-08-05T16:25:05.893 回答
1

有两件事可能是:

  • 当您单击程序或从命令提示符运行时,当前目录可能会有所不同。
  • 当您单击正在使用标准命令提示符的程序时,设置和路径可能会有所不同,当您从提示符运行程序时是否打开了 Visual Studio 命令提示符。
于 2009-08-05T16:24:49.310 回答
1

我将首先确定两种执行方法的不同之处。有修改任何东西的快捷方式吗?

  • 起始目录?
  • 执行账户?
  • 命令行参数?
于 2009-08-05T16:17:29.857 回答
1

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

您必须将 exe 的属性(或 exe 的快捷方式)更改为“开始于”您的 exe 所在的目录。对于快捷方式,右键单击快捷方式 -> 属性 -> 快捷方式 -> 开始。

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

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

于 2009-08-05T16:18:26.283 回答
0

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

于 2009-08-05T16:29:56.430 回答