#sql-server #visual-studio #ssis #sql-agent-job
#sql-сервер #visual-studio #ssis #sql-agent-job
Вопрос:
У меня установлен SQL Server 2019 на виртуальной машине Windows 2019. На этом сервере установлен Microsoft Visual studio Professional 2012.
- У меня есть куча пакетов SSIS в проекте, некоторые из них имеют задачу сценария, написанную на C # 2012, и все они отлично работают из Visual Studio.
- Любой пакет, в котором есть задача сценария, завершается с ошибкой при запуске из задания агента SQL Server со следующими ошибками.
Описание: При загрузке задачи скрипта из XML возникло исключение: System.IO.FileNotFoundException: не удалось загрузить файл или сборку ‘Microsoft.VisualStudio.Инструменты.Приложения, версия = 15.0.0.0, Культура = нейтральная, PublicKeyToken = xxxxxxxxx’ или одна из его зависимостей. Системе не удается найти указанный файл. Имя файла: ‘Microsoft.VisualStudio.Инструменты.Приложения, версия = 15.0.0.0, Культура = нейтральная, PublicKeyToken= xxxxxxxxxx’ на Microsoft.SQLServer.IntegrationServices.VSTA.VstaHelper.b__31_0() на Microsoft.SQLServer.VSTAHosting.VSTAScriptingEngine.DisposeVstaHelper() в Microsoft.SQLServer.Dts.Tasks.ScriptTask.ScriptTask.MigrateVSTADenaliScriptProject(XmlElement elemProj, события IDTSInfoEvents) в Microsoft.SQLServer.Dts.Tasks.ScriptTask.ScriptTask.LoadFromXML(XmlElement elemProj, события IDTSInfoEvents)
WRN: ведение журнала привязки сборки отключено. Чтобы включить ведение журнала сбоев привязки сборки, установите значение реестра [HKLM Software Microsoft Fusion!Включить журнал] (DWORD) до 1. Примечание: Существует некоторое снижение производительности, связанное с протоколированием сбоев привязки сборки. Чтобы отключить эту функцию, удалите значение реестра [HKLMSoftwareMicrosoftFusion!Включить журнал]. Ошибка завершения Ошибка: 2021-01-21 20:52:01.92 Код: 0x00000003 Источник: Создать ваучер в ERP Описание: Задача скрипта повреждена. Ошибка завершения Ошибка: 2021-01-21 20:52:01.92 Код: 0xC0024107 Источник: Создать ваучер в ERP Описание: Во время проверки задачи были ошибки. Ошибка завершения DTExec: выполнение пакета вернуло DTSER_FAILURE (1). Начато: 8:52:01 ВЕЧЕРА Закончено: 8:52:01 вечера Прошло: 0,5 секунды
В некоторых потоках говорилось об изменении свойства проекта Run64bitruntime на False , не сработало.
В некоторых потоках говорилось о переустановке SQL Server и Visual Studio, но я действительно не хочу этого делать, так как многие из этих разговоров о множестве других ошибок всплывают после переустановки.
Пожалуйста, предложите, что можно сделать, чтобы решить эту проблему.
Спасибо
Комментарии:
1. 1) Вы уверены, что VS 2012 полностью совместим с SQL Server 2019? 2) Как вы развертываете свои пакеты и куда?
2. @RogerWolf, вы правы. Я установил VS2019 Professional, открыл новый проект в 2019 году, добавил все свои пакеты 2012 года в новый проект, который обновил их все. Я видел предупреждения о необходимости переноса задачи сценария, но все они начали работать, как ожидалось. Задания Sql начали выполнять все пакеты с / без задач скрипта. Спасибо.
Ответ №1:
Переведенная DLL версии 15.0.0.0 «Microsoft.VisualStudio.Инструменты.Приложения » не могут быть найдены.
Сообщение удобно, но оно не сообщает вам, отсутствует ли 64/32-разрядная dll. Некоторые люди предполагают, что нужно переключаться между режимами 32/64, и им повезло.
Проверьте свои программы и функции, чтобы подтвердить, что «Microsoft Visual Studion Tools for Application 2017» установлен.
Версия 14.0 = VSTA 2015
Версия 15.0 = VSTA 2017
Версия 16.0 = VSTA 2019
После версии 12 установщик vsta должен был устанавливать библиотеки DLL для поддержки 32/64 бит.
Комментарии:
1. Я вижу, что были установлены инструменты Microsoft Visual Studio для приложений 2012, а не 2017. Итак, если была установлена версия 2017, эти пакеты 2012 года работали бы с sql server 2019 …? Просто любопытно.
2. Это должно помочь вам преодолеть эту конкретную ошибку. Не пробовал напрямую. Как правило, мы получаем меньше головной боли, когда сопоставляем SSDT с версией SQL Server . Запуск с более поздней версии Visual Studio и назначение (на уровне или ниже) версии SQL Server в свойствах проекта. Но эти отсутствующие проблемы с dll по-прежнему время от времени появляются, если вы обращаетесь к библиотеке, к которой VS может получить доступ, но которой нет в глобальном кэше сборок сервера.