Причина ошибки компонента пользовательского потока данных служб SSIS - невозможно обновить

У меня есть очень простой компонент, который обрезает все начальные и конечные пробелы из строк (чтение / запись) в конвейере. Насколько я вижу, у меня есть только один двоичный файл этой DLL на моей машине разработки. Я перенес его на другой компьютер для разработки и зарегистрировал в GAC, но когда я открываю пакет, скопированный на второй компьютер, я получаю это предупреждение:

Ошибка 1 Ошибка проверки. Задача потока данных: DTS.Pipeline: метаданные компонента для компонента "TrimColumnsComponent" (1909)"не могут быть обновлены до более новой версии компонента. Метод PerformUpgrade не выполнен. LD_CXSUM.dtsx 0 0

У меня есть компонент в наборе инструментов, и я могу перетащить другой на холст потока данных, и у него, похоже, нет проблем.

Это SQL Server 2005 и Visual Studio 2005 на обеих машинах.

На втором компьютере я могу создать пакет с нуля, и он будет загружаться на машину, на которой собран компонент (но значок является стандартным значком компонента пользователя, таким же, как на втором компьютере). Если я создаю пакет с нуля на компьютере сборки, у него есть правильный значок, но он выдает сообщение об обновлении на компьютере без сборки. Файлы идентичны в каталоге компонентов, имеют одинаковый идентификатор класса компонента и зарегистрированы в GAC.

Я проверил файлы dtsx вручную, проверив XML и в пакетах, созданных на компьютере сборки и на компьютере без сборки, идентификатор класса и открытый ключ идентичны между компьютерами.

Что может вызвать это?

5 ответов

Решение

Обычно это означает, что компонент был обновлен после сохранения пакета, и поэтому он имеет неправильный номер версии. Вам придется повторно добавить компонент, к сожалению, 1.

Вы можете сохранить пакет как новую версию и попробовать перенести его. Это может решить проблему вызова автоматического обновления (и последующего сбоя).

У меня была такая же проблема, это был неправильный набор версии целевого сервера. Вы можете проверить это, щелкнув правой кнопкой мыши проект в обозревателе решений и выбрав "Свойства". Перейдите в Свойства конфигурации, Общие, и отобразится параметр TargetServerVersion. Вы можете изменить это на свою цель.

У меня была та же проблема, для меня обходила развертывание всего проекта, а не отдельного пакета. Это решило проблему и позволило пакету работать как обычно.

Вы на 100% уверены, что копия компонента в GAC совпадает с копией в папке Program Files\Microsoft SQL Server\90\DTS\PipelineComponents? Копия GAC используется во время выполнения, а копия в PipelineComponents используется VS IDE. Если вы работаете на компьютере с архитектурой x64, я обязательно скопирую его в папку PipelineComponents как в папке обычных программных файлов, так и в папке x86.

Включение Client Tools SDK и Client Tools "Обратная совместимость" в установку SQL Server решило проблему обновления для меня.

У меня была такая же проблема, и мое решение такое же, как и у @AppleG. Проблема была вызвана развертыванием одного пакета, а не всего проекта. Проект был развернут ранее другим разработчиком, скорее всего, с немного другой версией Visual Studio или Мастером развертывания. Затем я развернул только один пакет из моей VS.

В заключение, развертывание всего проекта снова решило проблему.

Другие вопросы по тегам