在 C# 自定义应用程序中以编程方式禁用 SSIS 任务



我正在构建一个Windows表单应用程序,该应用程序执行选定的包,并且所有包都发送邮件。我想添加让用户的选项 禁用所选包的"发送邮件"任务。

我正在使用与 2015 集成服务来构建包。

用于执行包的代码:

string pkgLocation = @" C:tempTesting"+ 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
}

是否可以从应用程序中禁用任务?

我在网上找到了另一种解决方案。这很简单。我遍历了包中的所有可执行文件,如果任务是我正在寻找的任务,请将 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;
}
}

谢谢你的帮助。

最新更新