2016-08-05 116 views
1

我已经使用Microsoft.SqlServer.Dts.Runtime在ASP.NET MVC中运行包。不过,我需要在asp.net核心中运行这个。由于我们不能在asp.net核心中添加个人DLL,我想知道是否有人有想法,如果有nuget包,这将有所帮助。如何在asp.net核心应用程序中运行ssis包?

+2

这不再是一个问题ASP.net核心1.1。我们可以添加个人DLL并直接使用它 –

回答

3

只是为了阐述我如何解决问题他的问题。下面就是答案

要运行,你需要下面的DLL的代码

  1. Microsoft.SqlServer.ManagedDTS.dll

  2. Microsoft.SqlServer.PipelineHost.dll

  3. SSIS包Microsoft.SqlServer.DTSRuntimeWrap.dll

  4. Microsoft.SqlServer.DTSPipelineWrap.dll

很容易在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; 
     } 
+0

这不再是ASP.net核心1.1 Visual Studio 2017中的一个问题。我们可以添加单个DLL并直接使用它们。 –

相关问题