2016-08-05 125 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並直接使用它們。 –

相關問題