【发布时间】:2015-11-12 23:39:53
【问题描述】:
我在 C# 中创建了一个 WinForm 项目,并添加了一个名为 Loader.cs 的代码文件。在该文件中,我有一个名为 LoadData() 的方法。我从项目中删除了默认的“Form1”,更改了 Main() 中的逻辑以运行 LoadData() 方法。在我的 VS2008 IDE 中运行时,这一切都有效。然后,我构建为 Release 并将生成的 .exe 移动到另一台机器,并设置一个计划任务,每小时触发一次,动作指向 .exe,并以 /Auto 作为参数。该任务什么都不做,只是坐着运行,不做任何处理。我必须最终结束任务。如果手动运行也一样。如果我从它所在的文件夹中双击 exe,它什么也不做。我怎样才能让这个 exe 作为计划任务运行,甚至独立运行?
在 Program.cs 中:
static class Program
{
[STAThread]
static void Main()
{
Loader lc = new Loader();
lc.LoadData();
}
}
在 Loader.cs 文件中:
public void LoadData()
{
// ...processing
}
【问题讨论】:
-
我会尝试将 try { } catch { } 放在您的 main 中并编写异常(如果发生在磁盘上进行检查)
-
好吧,如果它在第二台机器上运行正常时失败,这与它是计划任务无关。查看事件日志,确保您没有吞下代码中的任何异常后添加一些诊断日志记录。
-
什么是
Loader是实际的任务调度程序..?如果是,那么您需要删除该代码并将任务调度程序指向 .exe 并让它调用您的 winforms .exe 应用程序 -
在 Main 及其 WCF 端点中添加了日志记录。
标签: c# .net winforms scheduled-tasks exe