我使用CodeDom编译以下代码并保存为EXE
using System;
using System.Windows.Forms;
using Microsoft.Win32.TaskScheduler;
class Program
{
static void Main(string[] args)
{
using (TaskService ts = new TaskService())
{
TaskDefinition td = ts.NewTask();
td.RegistrationInfo.Description = "Does something";
// Create a trigger that will fire the task at this time every other day
td.Triggers.Add(new DailyTrigger { DaysInterval = 1 });
// Create an action that will launch Notepad whenever the trigger fires
td.Actions.Add(new ExecAction("notepad.exe", "c:\\test.log", null));
// Register the task in the root folder
ts.RootFolder.RegisterTaskDefinition(@"Test", td);
// Remove the task we just created
ts.RootFolder.DeleteTask("Test");
}
}
}
唯一的问题是,当我选择保存位置并编译时,我得到错误"新的表达式需要()或类型"后面的[]。我真的无法看到我在这里失踪的东西,我们将非常感谢任何帮助。
答案 0 :(得分:1)
CodeDOM默认使用C#2编译器,因此您的示例将无法编译。要使用C#3编译器进行编译,您可以在构造时将选项传递给提供程序:
var csc = new CSharpCodeProvider(new Dictionary<string, string>() { { "CompilerVersion", "v3.5" } });
答案 1 :(得分:0)
这一行应该解决它:
td.Triggers.Add(new DailyTrigger() { DaysInterval = 1 });
下次,将代码放入Visual Studio并使用警告/错误窗口来查找问题。