Я не могу использовать конкретную DLL в скрипте-задаче SSIS. В c # console-project все нормально. SSIS выдает ошибку:
Ошибка: не удалось загрузить тип «Microsoft.SharePoint.Client.ClientRuntimeContext» в сборке «Microsoft.SharePoint.Client, версия = 14.0.0.0, Culture = нейтральный PublicKeyToken = ....».
Я использую Visual Studio 2017 с Datatools. Я получил библиотеки от NuGet-paket-manager и сохранил их локально на C: /
- Microsoft.SharePoint.Client, версия 14.0.0.0, Runtime-версия v2.0.50727
- Microsoft.SharePoint.Client.Runtime, версия 15.0.0.0, Runtime-версия v4.0.30319
Мой консольный проект - .NET 4.6, и я настроил проект SSIS также на .NET 4.6. В обоих случаях я добавил библиотеки, щелкнув правой кнопкой мыши на References> Add> Search from computer
Я только что без проблем протестировал консольный проект:
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"))
{
}
}
}