如何在asp.net核心应用程序中运行ssis包?

时间:2016-08-05 14:43:09

标签: asp.net asp.net-core

我使用Microsoft.SqlServer.Dts.Runtime在ASP.NET MVC中运行包。但是我需要在asp.net核心中运行它。由于我们无法在asp.net核心中添加单独的dll,我想知道是否有人知道是否有nuget包可以提供帮助。

3 个答案:

答案 0 :(得分:4)

只是详细说明我是如何解决这个问题的。以下是答案

要运行SSIS包,您需要在代码

中的DLL下面
  1. Microsoft.SqlServer.ManagedDTS.dll

  2. Microsoft.SqlServer.PipelineHost.dll

  3. Microsoft.SqlServer.DTSRuntimeWrap.dll

  4. Microsoft.SqlServer.DTSPipelineWrap.dll

  5. 在MVC项目中添加DLL很容易,但是在asp.net核心中,它需要采用Nuget包的形式。

    因此可以使用nuget package explorer轻松创建nuget包。以下是链接

    https://docs.nuget.org/create/using-a-gui-to-build-packages

    在nuget包资源管理器中添加一个lib文件夹,在里面添加一个.net文件夹dnxcore50并添加上面的DLL。单击工具分析包并保存nuget

    enter image description here

    在visual studio 2015解决方案中,您可以参考本地软件包。 工具 - Nuget包管理器 - 包管理器设置 - 包源 添加本地包路径。

    enter image description here

    之后,您将能够使用nuget包管理器添加nuget包并选择本地包作为源

    enter image description here

    如果恢复包时出错,请将dnxcore添加到导入部分并添加" Microsoft.NETCore.Portable.Compatibility":" 1.0.1-rc2-24027"到project.json中的依赖项

    "dependencies": {
    "Microsoft.AspNet.Hosting": "1.0.0-rc1-final",
    "Microsoft.NETCore.Portable.Compatibility": "1.0.1-rc2-24027",
    "SSISPackage": "1.0.0"
     }
    
    "frameworks": {
    "netcoreapp1.0": {
      "imports": [
        "dotnet5.6",
        "portable-net45+win8",
        "dnxcore"
      ]
      }
    }
    

    之后,您将能够使用代码运行类似于MVC项目的SSIS包。

    Application app = new Application();
            Package package = null;
            try
            {
                package = app.LoadPackage(@"C:\Files\Package.dtsx", null);
                Variables vars = package.Variables;
                vars["status"].Value = "ACTIVE";
    
                DTSExecResult results = package.Execute();
    
            }
            catch
            {
                return false;
    
            }
            finally
            {
                package.Dispose();
                package = null;
            }
    

答案 1 :(得分:2)

您可以将程序集打包到nuget包中,在解决方案中创建一个Lib文件夹以保存nuget包,然后创建一个nuget.config文件来设置包源,以便在解决方案中包含Lib文件夹。

以下链接包含有关创建nuget包并在本地托管的更多详细信息:

希望有所帮助

答案 2 :(得分:0)

您现在可以从以下位置直接在.net核心项目中引用dll(每个dll)以立即运行ssis软件包

C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.SqlServer.ManagedDTS
C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.SqlServer.PipelineHost
C:\Windows\Microsoft.NET\assembly\GAC_64\Microsoft.SqlServer.DTSRuntimeWrap
C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.SqlServer.DTSPipelineWrap

您不再需要创建nuget包