我正在构建一个Windows窗体应用程序,该应用程序执行选定的程序包,所有程序包都发送邮件。我想添加选项让用户 禁用所选软件包的发送邮件任务。
我正在使用vs 2015集成服务来构建软件包。
执行程序包的代码:
string pkgLocation = @" C:\temp\Testing\"+ PackageName + ".dtsx";
Package Package = new Package();
Microsoft.SqlServer.Dts.Runtime.Application app;
DTSExecResult res;
Cursor.Current = Cursors.WaitCursor;
app = new Microsoft.SqlServer.Dts.Runtime.Application();
PackageEvents packageEvents = new PackageEvents();
Package.EnableConfigurations = true;
Package = app.LoadPackage(pkgLocation, packageEvents);
res = Package.Execute();
Cursor.Current = Cursors.Default;
if (res == DTSExecResult.Success)
{
//code
}
else if (res == DTSExecResult.Failure)
{
//code
}
是否可以从应用程序中禁用任务?
答案 0 :(得分:0)
我在网上找到了另一个解决方案。这很简单。我遍历了软件包中的所有可执行文件,如果任务是我要寻找的任务,请将disable属性设置为false。这是下面的代码。
for (int i = 0; i < Package.Executables.Count; i++)
{
if ((TaskHost)Package.Executables[i] == (TaskHost)Package.Executables["Send Mail Task"])
{
var task = (TaskHost)Package.Executables["Send Mail Task"];
task.Properties["Disable"].SetValue(task, true);
break;
}
}
谢谢您的帮助。