[英]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.