Я не могу использовать конкретную DLL в скриптовой задаче SSIS. В консольном проекте c # все в порядке. SSIS выдает ошибку:
Ошибка: не удалось загрузить тип «Microsoft.SharePoint.Client.ClientRuntimeContext» в сборке «Microsoft.SharePoint.Client, Version = 14.0.0.0, Culture = нейтральный PublicKeyToken = ....».
Я запускаю Visual Studio 2017 с Datatools. Я получил библиотеки из NuGet-paket-manager и сохранил их локально на C: /
- Microsoft.SharePoint.Client, версия 14.0.0.0, версия среды выполнения v2.0.50727
- Microsoft.SharePoint.Client.Runtime, версия 15.0.0.0, версия среды выполнения v4.0.30319
Мой консольный проект - .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"))
{
}
}
}
return System.Reflection.Assembly.LoadFile(System.IO.Path.Combine(@"C:\", "Microsoft.SharePoint.Client.dll"));
и убедитесь, что dll находится наC:
- person Hadi   schedule 26.06.2019Get-Project –All | Add-BindingRedirect
. Он просто показывает мне один из пакетов Microsoft.SharePoint.Client.Runtime. Я почистил, перестроил и сохранил раствор. При следующем запуске пакета ssis снова происходит сбой. Я установил SSIS-проект на SQL-Server 2016: та же проблема. Есть ли у вас еще какие-нибудь советы? - person   schedule 27.06.2019