C# 如何从c执行多个ssis包#

C# 如何从c执行多个ssis包#,c#,ssis,C#,Ssis,我已经创建了10个不同的包,我想从c#编码执行它们。可以有人张贴一些屏幕截图来实现这一点。 我试过这个 Application app = new Application(); TraceService("loading system From File system"); //Create package Container to hold the package. //And Load the Package Using the Applica

我已经创建了10个不同的包,我想从c#编码执行它们。可以有人张贴一些屏幕截图来实现这一点。 我试过这个

Application app = new Application();
        TraceService("loading system From File system");
        //Create package Container to hold the package.
        //And Load the Package Using the Application Object.
        Package package = app.LoadPackage(@"C:\User\Kiran\Documents\Visual Studio 2012\Projects\WindowsServiceTest\WindowsServiceTest\Package1.dtsx", null);

        TraceService("Execution Started");
        DTSExecResult result = package.Execute();
        // print the result
        TraceService(result.ToString());
        TraceService("Execution Completed");

在这里,我必须在运行时获取文件名,而不是通过硬编码

以下代码将执行给定文件夹中的所有包

var pkgLocation = @"C:\User\Kiran\Documents\Visual Studio 2012\Projects\WindowsServiceTest\WindowsServiceTest\";
foreach (var file in Directory.EnumerateFiles(pkgLocation, "*.dtsx"))
using (var pkg = new Application().LoadPackage(file, null))
{
   var pkgResults = pkg.Execute();
  Console.WriteLine("Package File Name:{0}, Result:{1}",file.ToString(), pkgResults.ToString());
}

中详细介绍了C#和VB中执行SSIS包的过程。这是我在脚本任务中执行多个SSIS包的完整代码

string packagesFolder = Dts.Variables["User::packagesFolder"].Value.ToString();
string rootFolder = Dts.Variables["User::rootFolder"].Value.ToString();

Package pkg;
Microsoft.SqlServer.Dts.Runtime.Application app;
DTSExecResult pkgResults;

foreach (var pkgLocation in Directory.EnumerateFiles(packagesFolder+"\\", "ValidateDataMigration-*.dtsx"))
{
    try
    {
        app = new Microsoft.SqlServer.Dts.Runtime.Application();
        pkg = app.LoadPackage(pkgLocation, null);
        pkgResults = pkg.Execute();

        File.AppendAllText(rootFolder + "\\DataValidationProgress.log", pkgLocation.ToString()+"=>"+ pkgResults.ToString()+ Environment.NewLine);
    }
    catch(Exception e)
    {
        File.AppendAllLines(rootFolder + "\\DataValidationErrors.log", new string[] { e.Message, e.StackTrace });
    }
}

因此,您的实际问题是将包文件名传递给
LoadPackage
方法?是否要使要执行的包列表可配置,还是要执行给定文件夹中的所有包?包的执行顺序重要吗?您应该解释您面临的问题是“…在运行时获取文件名…”。