tSQLt - ошибка 'Не удалось найти метод' SigningKey 'для типа' tSQLtCLR.tSQLtPrivate 'в сборке' tSQLtCLR '' - PullRequest
0 голосов
/ 16 марта 2020

Мы переносим Jenkins на новый сервер, на котором установлен SQL Server 2019. Ранее Дженкинс работал на сервере, который использовал SQL Server 2008 R2 (и процесс сборки работал без сбоев)

Мы используем SQL Autogate от Redgate для выполнения чистой сборки базы данных из нашего SVN-репозитория

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

Я следовал совету (Соломона Руцкого), приведенному в этом post: - Невозможно создать сборку tSQLtCLR в SQL Server 2017

Однако каждый раз, когда я пытаюсь выполнить сборку, я вижу это сообщение как первое предупреждение:

Invoke-DatabaseBuild, SQL Автоматизация изменений 4.0.19274.11021, Авторское право ¶¸ Red Gate Software Ltd 2014-2019

Очистка базы данных Blankdb на сервере 'TTS-10 \ TTS2019'.

Проверка SQL Проект управления исходным кодом 'D: \ Jenkins \ workspace \ Manzen Database Trunk'.

ПРЕДУПРЕЖДЕНИЕ: ошибка 'Не удалось найти метод' SigningKey 'для типа' tSQLtCLR.t SQLtPrivate 'в сборке' tSQLtCLR '' произошел при выполнении следующего SQL:

ПРЕДУПРЕЖДЕНИЕ: СОЗДАТЬ ФУНКЦИЮ [tSQLt] .Info

ПРЕДУПРЕЖДЕНИЕ: ВОЗВРАЩАЕТСЯ ТАБЛИЦА

ПРЕДУПРЕЖДЕНИЕ: AS

ПРЕДУПРЕЖДЕНИЕ: ВОЗВРАТ

ПРЕДУПРЕЖДЕНИЕ: ВЫБЕРИТЕ Версия = '1.0.5873.27393',

ПРЕДУПРЕЖДЕНИЕ: ClrVersion = (ВЫБРАТЬ tSQLt.Private :: Info ()),

ПРЕДУПРЕЖДЕНИЕ: ClrSigningKey = (ВЫБЕРИТЕ tSQLt.Private :: SigningKey ()),

ПРЕДУПРЕЖДЕНИЕ: V.SqlVersion,

ПРЕДУПРЕЖДЕНИЕ: V.SqlBuild,

ПРЕДУПРЕЖДЕНИЕ: V.SqlEdition

... для краткости опущен дальнейший код

Сейчас у меня серьезные проблемы с головой, так как я не могу понять, что я должен был сделать.

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

Я был бы очень признателен, если бы кто-то мог указать мне в правильном направлении.

1 Ответ

0 голосов
/ 16 марта 2020

Существует две возможные причины этой ошибки:

  1. Вы создаете tSQLt самостоятельно, а не используете опубликованную сборку tSQLt (-> использовать опубликованную сборку)
  2. Ваш tSQLt Установочный файл поврежден. (-> загрузить новый)

Если есть законная причина для самостоятельной сборки tSQLt, вам необходимо заменить ключ своим собственным, так как оригинальный ключ подписи не публикуется.

...