Я создал собственный диспетчер соединений служб SSIS (.NET 4.6.2):
namespace HelloWorldCm
{
using Microsoft.SqlServer.Dts.Runtime;
[DtsConnection(
ConnectionType = "HELLOWORLD",
DisplayName = "Hello World Connection Manager",
Description = "Connection manager for Hello World")]
public class HelloWorldConnectionManager : ConnectionManagerBase
{
public override DTSExecResult Validate(IDTSInfoEvents infoEvents)
{
return DTSExecResult.Success;
}
}
}
Я ссылаюсь на Microsoft.SQLServer.ManagedDTS
версию 14.0.0.0
, в моем понимании это SQL Server 2017. Локально,если я зарегистрирую его в GAC и скопирую в папку /Connections
, я смогу использовать SSIS из Visual Studio и добавить диспетчер подключений в мой DTSX
.
Я могу сохранить / построить и т. Д., И все работает нормально, поэтому я затем копирую диспетчер подключений и DTSX на свою виртуальную машину с SQL Server 2017. Я снова регистрируюсь в GAC и копирую в папку /Connections
.
Я затем Import Packages...
в моем Integration Services Catalogs
, выберите DTSX и нажмите Далее .Затем это говорит мне, что:
Один или несколько выбранных пакетов не готовы.
И когда я смотрю, почему я вижу:
Тип соединения «HELLOWORLD», указанный для диспетчера соединений «Hello World Connection Manager», не распознается как допустимый тип диспетчера соединений.Эта ошибка возвращается при попытке создать диспетчер соединений для неизвестного типа соединения.Проверьте правильность написания в имени типа соединения.
Я уже довольно давно пытаюсь заставить это работать, поэтому я перечислю то, что попробовал:
- Пробная версия 'Any CPU'
- Пробная версия 'x86'
- Пробная версия 'x64'
- Пробная версия DTSX с фиктивной задачей, а также
- Перезапуск сервера (после любого развертывания)
Уверен, другие.Я также создал пользовательскую задачу, которая просто печатала «Hello World» в журналах, она была скомпилирована как «Any CPU», развернута таким же образом (в тех же местах), и SSIS, похоже, невозникли проблемы с его поиском и принятием DTSX.Поэтому я достаточно уверен, что «Любой процессор» должен быть достаточно хорошим.
Я не уверен, куда идти сейчас - насколько я вижу, у меня есть правильные ссылки, правильная версия .NET, и развертывание такое же, как для задачи.
Я поставил dtsx
ниже на случай, если там что-то есть:
<?xml version="1.0"?>
<DTS:Executable xmlns:DTS="www.microsoft.com/SqlServer/Dts"
DTS:refId="Package"
DTS:CreationDate="6/11/2019 1:09:07 PM"
DTS:CreationName="Microsoft.Package"
DTS:CreatorComputerName="CHRIS"
DTS:CreatorName="CHRIS\cskar"
DTS:DTSID="{0F2D59A1-461B-46ED-8765-75484C06253C}"
DTS:ExecutableType="Microsoft.Package"
DTS:LastModifiedProductVersion="15.0.1100.123"
DTS:LocaleID="2057"
DTS:ObjectName="Package1"
DTS:PackageType="5"
DTS:VersionBuild="1"
DTS:VersionGUID="{E688A11B-234E-4F39-991E-BAA0A37642E6}">
<DTS:Property
DTS:Name="PackageFormatVersion">8</DTS:Property>
<DTS:ConnectionManagers>
<DTS:ConnectionManager
DTS:refId="Package.ConnectionManagers[Hello World Connection Manager]"
DTS:CreationName="HELLOWORLD"
DTS:DTSID="{9E82E067-2A0A-4C9C-931D-FD59FD159B5C}"
DTS:ObjectName="Hello World Connection Manager">
<DTS:ObjectData>
<InnerObject>
<TargetServerVersion
Type="3"
Value="150" />
</InnerObject>
</DTS:ObjectData>
</DTS:ConnectionManager>
</DTS:ConnectionManagers>
<DTS:Variables />
<DTS:Executables />
<DTS:DesignTimeProperties><![CDATA[<?xml version="1.0"?>
<Objects Version="8">
</Objects>]]></DTS:DesignTimeProperties>
</DTS:Executable>