[英]SSIS how to execute dll in script-task (SharePoint function not found)
我不能在SSIS腳本任務中使用特定的DLL。 在c#console-project中,一切都很好。 SSIS引發錯誤:
錯誤:無法加載程序集“ Microsoft.SharePoint.Client,版本= 14.0.0.0,區域性=中性PublicKeyToken = ....”中的類型“ Microsoft.SharePoint.Client.ClientRuntimeContext”。
我正在使用Datatools運行Visual Studio 2017。 我從NuGet-paket-manager獲得了庫,並將它們保存在本地C:/
我的控制台項目是.NET 4.6,並且我還將SSIS項目也設置為.NET 4.6。 在這兩種情況下,我都通過右鍵單擊“引用”>“添加”>“從計算機搜索”來添加庫
我剛剛測試了一個控制台項目,沒有任何問題:
static void Main(string[] args)
{
using (ClientContext clientContext = new ClientContext("urltomysite.com"))
{
}
Console.WriteLine("finished");
}
這是SSIS中的代碼(類似...僅使用對象ClientContext:
public void Main()
{
//Loading assemblies extra
AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);
AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve2);
try
{
//Testing the assembly method
Class1.TESTIT();
}
catch (Exception ex)
{
Dts.Events.FireError(0, "Error", ex.Message, null, 0);
Dts.TaskResult = (int)ScriptResults.Failure;
}
}
static System.Reflection.Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{
return System.Reflection.Assembly.LoadFile(System.IO.Path.Combine("C:/", "Microsoft.SharePoint.Client.dll"));
}
static System.Reflection.Assembly CurrentDomain_AssemblyResolve2(object sender, ResolveEventArgs args)
{
return System.Reflection.Assembly.LoadFile(System.IO.Path.Combine("C:/", "Microsoft.SharePoint.Client.Runtime.dll"));
}
class Class1
{
public static void TESTIT()
{
using (ClientContext clientContext = new ClientContext("urltomysite.com"))
{
}
}
}
我終於找到了錯誤...
我必須先加載
然后,我不得不加載另一個庫
所以在Main我切換了庫加載:
AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve2);
AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.