簡體   English   中英

從 SSIS 腳本任務創建對自定義程序集的引用 - vb

[英]Creating a reference to a custom assembly from an SSIS Script Task - vb

我正在尋找一種在我的 SSIS 腳本任務中創建“導入 Newtonsoft.Json.Linq”的方法,但這顯然不像 SSIS 中的“管理 NuGet 包”那么簡單。 那么有沒有另一種方法來解決這個問題。

我找到了一個鏈接到什么在我看來就像一個可能的解決方案,但我沒有熟練的程序員,我有從C#麻煩翻譯成VB。 我希望有人可以幫助我,或者指導我走向另一個方向。

我使用的是Visual Studio 2010 Shell,.Net Framework 4.6.0,公司代碼語言是vb。

這是來自上面鏈接的 C# 代碼的副本。

[Microsoft.SqlServer.Dts.Tasks.ScriptTask.SSISScriptTaskEntryPointAttribute]
public partial class ScriptMain : Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase
{
     static ScriptMain()
     {
         AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);
     }
     static System.Reflection.Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
     {
         if (args.Name.Contains("ssisHelper"))
         {
             string path = @"c:\temp\";
             return System.Reflection.Assembly.LoadFile(System.IO.Path.Combine(path, "ssisHelper.dll"));
         }
         return null;
     }
    . . .

不可能。

如果添加任何第三方庫 (.dll) 文件,SSIS 將在 Visual Studio(本地)內運行。 因此,在本地它會正常工作(在 Visual Studio 中運行時)。 但是一旦你通過 SQL Server 作業/ETL 運行它,它就不會。

唯一的方法是您需要在運行 SSIS 的服務器的“GACUTIL”中添加第三方庫/庫(通過 SQL-JOB/ETL...)。

正如您所提到的,您使用的是“Newtonsoft.Json”,因此,將 Newtonsoft.Json.dll 復制到運行 SSIS 包的服務器 (gacutil)。

試試這個,如果你遇到任何問題,請告訴我

您必須將Newtonsoft.Json dll 文件添加到以下目錄

(1).Net Framework dll目錄

 C:\Windows\Microsoft.NET\Framework\v[.net installed version]\ 

例子

C:\Windows\Microsoft.NET\Framework\v4.0.30319\

(2)SQL server數據工具dll運行目錄

C:\Program Files (x86)\Microsoft SQL Server\[SQL Server version]\DTS\Binn

例子

C:\Program Files (x86)\Microsoft SQL Server\130\DTS\Binn

之后,在腳本任務中,轉到項目資源管理器,然后添加此 dll 作為引用,它將出現在列出的引用中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM