Другое

Исправление ошибки мастера SCD в Visual Studio 2022: Конструктор не найден

Узнайте, как исправить ошибку 'Конструктор типа не найден' при использовании мастера медленно изменяющихся измерений (SCD) в Visual Studio 2022. Полное руководство по устранению неполадок с пошаговыми решениями для проектов SSIS.

Ошибка мастера медленно изменяющихся измерений в Visual Studio 2022: “Конструктор типа не найден”

Описание проблемы

Я сталкиваюсь с ошибками при попытке использовать мастер медленно изменяющихся измерений (SCD) в Visual Studio 2022 с SQL Server Integration Services (SSIS). Сообщения об ошибках различаются при разных попытках:

Ошибка при первой попытке:

Метод не существует. (Исключение из HRESULT: 0x80131513)
(Microsoft Visual Studio)

Расположение программы:
   at EnvDTE.IVsExtensibility.RunWizardFile(String bstrWizFilename, IntPtr hwndOwner, Object[]& vContextParams)
   at Microsoft.DataWarehouse.VsIntegration.Shell.Project.FileProjectHierarchy.RunAddNewItemWizard(String pszItemName, Int32 cFilesToOpen, String[] rgpszFilesToOpen, IntPtr hwndDlg)
   at Microsoft.DataWarehouse.VsIntegration.Shell.Project.FileProjectHierarchy.RunWizard(String wizardName, String newItemName)
   at Microsoft.DataWarehouse.DataWarehouseUtilities.RunWizard(String wizardName, IServiceProvider serviceProvider, Object[] stackParameters)
   at Microsoft.DataTransformationServices.DataFlowUI.SCDComponentUI.EditImpl(IWin32Window parentControl)
   at Microsoft.DataTransformationServices.DataFlowUI.DataFlowComponentUI.Edit(IWin32Window parentWindow, Variables variables, Connections connections)

Ошибка при последующих попытках:

Конструктор типа 'Microsoft.DataTransformationServices.Wizards.DocumentWizardInitializer' не найден.
(Microsoft Visual Studio)

Расположение программы:

   at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, StackCrawlMark& stackMark)
   at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
   at System.Activator.CreateInstance(Type type, Object[] args)
   at Microsoft.SqlServer.Management.UI.WizardManager14.ExecuteWizard(wizardResult& wr)
   at EnvDTE.IVsExtensibility.RunWizardFile(String bstrWizFilename, IntPtr hwndOwner, Object[]& vContextParams)
   at Microsoft.DataWarehouse.VsIntegration.Shell.Project.FileProjectHierarchy.RunAddNewItemWizard(String pszItemName, Int32 cFilesToOpen, String[] rgpszFilesToOpen, IntPtr hwndDlg)
   at Microsoft.DataWarehouse.VsIntegration.Shell.Project.FileProjectHierarchy.RunWizard(String wizardName, String newItemName)
   at Microsoft.DataWarehouse.DataWarehouseUtilities.RunWizard(String wizardName, IServiceProvider serviceProvider, Object[] stackParameters)
   at Microsoft.DataTransformationServices.DataFlowUI.SCDComponentUI.EditImpl(IWin32Window parentControl)
   at Microsoft.DataTransformationServices.DataFlowUI.DataFlowComponentUI.Edit(IWin32Window parentWindow, Variables variables, Connections connections)

Сведения об окружении

  • Версия Visual Studio: Visual Studio Community 2022 (64-bit) (17.14.19)
  • Расширение SSIS: SQL Server Integration Services Projects 2022
  • Другие установленные расширения:
    • Microsoft Reporting Services Projects
    • Microsoft Analysis Services Projects

Уже предпринятые шаги по устранению неполадок

  1. Восстановил Visual Studio 2022 с помощью установщика Visual Studio
  2. Удалил и переустановил расширение SQL Server Integration Services Projects несколько раз
  3. Запустил Visual Studio от имени администратора
  4. Очистил кэш Visual Studio:
    • Удалил %LocalAppData%\Microsoft\VisualStudio\17.0_[InstanceID]\ComponentModelCache
    • Удалил %AppData%\Microsoft\VisualStudio\17.0_[InstanceID]

Вопрос

Сталкивался ли кто-нибудь еще с этой проблемой с мастером SCD в Visual Studio 2022? Это известная ошибка в текущей версии расширения SSIS, или есть другое решение, которое я не пробовал?

Буду благодарен за любую помощь!

Ошибка мастера медленно изменяющихся измерений (SCD) в Visual Studio 2022 с сообщением “Конструктор типа не найден”

Ошибка мастера медленно изменяющихся измерений (SCD) в Visual Studio 2022 с сообщением “Конструктор типа не найден” является известной проблемой совместимости между расширением SQL Server Integration Services и Visual Studio 2022, часто вызванной несоответствием версий сборок или поврежденными компонентами установки. Обычно это происходит при несоответствии версий между расширением SSIS и Visual Studio, или когда некоторые необходимые DLL-файлы отсутствуют или повреждены.

Содержание

Понимание ошибки

Ошибка, с которой вы столкнулись, проявляется в двух разных формах, обе связаны с сборкой Microsoft.DataTransformationServices.Wizards:

  1. Ошибка метода не существует: Возникает, когда мастер пытается загрузиться, но не может найти требуемые сигнатуры методов
  2. Ошибка конструктора типа не найден: Происходит, когда мастер пытается создать экземпляр класса DocumentWizardInitializer, но не может найти его конструктор

Согласно обсуждениям в Microsoft Q&A, эта проблема была отмечена многими пользователями и, похоже, связана с проблемами загрузки сборок, а не с ошибками в конфигурации пользователя.

Трассировка стека ошибок указывает на то, что корневая причина находится в классе Microsoft.DataTransformationServices.Wizards.DocumentWizardInitializer, который является частью компонентов времени разработки SSIS, обрабатывающих функциональность мастера.

Основные причины

Несколько факторов могут способствовать возникновению этой ошибки:

  1. Несоответствие версий: Наиболее частая причина - несоответствие между версией Visual Studio 2022 и версией расширения SSIS. Обсуждение на Stack Overflow подтверждает, что это частая проблема.

  2. Поврежденная установка: Как отмечено в анализе Solvusoft, файл Microsoft.DataTransformationServices.Wizards.DLL может быть поврежден или отсутствовать.

  3. Проблемы с зависимостями: У мастера есть несколько зависимостей, которые должны присутствовать и быть правильно зарегистрированы. Отсутствие зависимостей может привести к сбою конструктора.

  4. Повреждение кэша: Кэш модели компонентов Visual Studio может быть поврежден, что приводит к проблемам загрузки, как упоминалось в шагах по устранению неполадок.

Решения и обходные пути

Решение 1: Восстановление и переустановка компонентов

Наиболее эффективное решение, основанное на отчетах пользователей, - это выполнить чистую установку:

  1. Удалите все расширения, связанные с SSIS, через установщик Visual Studio
  2. Сбросьте настройки Visual Studio, удалив папки конфигурации
  3. Восстановите Visual Studio через установщик
  4. Переустановите расширение SSIS Projects из Visual Studio Marketplace

Как указано в документации Microsoft, переустановка DLL-файла часто решает проблемы с отсутствующим конструктором.

Решение 2: Использование альтернативных методов

Когда мастер SCD недоступен, рассмотрите эти альтернативы:

  • Ручная реализация SCD: Создайте логику SCD вручную с помощью компонентов SSIS
  • Задача скрипта: Используйте задачу скрипта для реализации логики медленно изменяющихся измерений
  • Хранимые процедуры SQL Server: Реализуйте логику SCD непосредственно в SQL Server

Решение 3: Проверка совместимости версий

Убедитесь в совместимости компонентов:

  • Проверьте, что ваша версия Visual Studio 2022 (17.14.19) совместима с расширением SSIS
  • Проверьте наличие доступных обновлений как для Visual Studio, так и для расширения SSIS
  • Рассмотрите возможность использования расширения SSIS, специально разработанного для Visual Studio 2022

Шаги по устранению неполадок

На основе успешных решений, предложенных сообществом, вот расширенный подход к устранению неполадок:

Расширенный процесс восстановления

  1. Полное удаление:

    • Полностью удалите Visual Studio 2022
    • Удалите все оставшиеся папки Visual Studio в %ProgramFiles% и %LocalAppData%
    • Очистите реестр (будьте осторожны)
  2. Чистая установка:

    • Сначала установите Visual Studio 2022 с минимальными рабочими нагрузками
    • Отдельно установите SSDT (SQL Server Data Tools)
    • Установите расширение SSIS Projects
    • Устанавливайте другие расширения по одному
  3. Регистрация сборки:

    • Вручную зарегистрируйте Microsoft.DataTransformationServices.Wizards.DLL с помощью regsvr32
    • Проверьте зависимости сборки с помощью инструментов Dependency Walker

Специфические исправления для среды

Как отмечено на форумах SQLServerCentral, некоторые пользователи решили эту проблему:

  • Установив соответствующую версию SQL Server Data Tools
  • Убедившись, что все расширения Microsoft.AnalysisServices и Microsoft.ReportingServices совместимы
  • Запустив Visual Studio в безопасном режиме для изоляции конфликтов расширений

Предотвращение и обслуживание

Чтобы предотвратить повторение проблемы в будущем:

  1. Держите компоненты в актуальном состоянии: Регулярно обновляйте Visual Studio и расширения SSIS
  2. Следите за совместимостью расширений: Перед установкой новых расширений проверяйте их совместимость с вашей настройкой SSIS
  3. Регулярное обслуживание кэша: Периодически очищайте кэш Visual Studio как часть планового обслуживания
  4. Резервное копирование рабочих конфигураций: Сохраняйте рабочие конфигурации расширений перед крупными обновлениями

Когда обращаться за дополнительной помощью

Если вышеуказанные решения не работают, рассмотрите возможность:

  1. Поддержки Microsoft: Обратитесь в службу поддержки Microsoft для получения корпоративной помощи
  2. Форумов сообщества: Опубликуйте подробные журналы ошибок на Microsoft Q&A или Stack Overflow
  3. SQL Server Central: Взаимодействуйте с сообществом SQL Server на форумах SQLServerCentral

Заключение

Ошибка мастера SCD “Конструктор типа не найден” в Visual Studio 2022 является известной проблемой совместимости, которая обычно возникает из-за несоответствия версий или поврежденных компонентов установки. Хотя эта ошибка может быть неприятной, большинство пользователей успешно решили ее с помощью комплексных процессов восстановления и тщательного управления компонентами.

Основные рекомендации:

  1. Выполните полное удаление/установку Visual Studio и компонентов SSIS
  2. Проверьте совместимость версий между всеми установленными расширениями
  3. Рассмотрите возможность использования альтернативных методов для реализации SCD, когда мастер недоступен
  4. Поддерживайте регулярные обновления и очистку кэша для предотвращения будущих проблем

Эта проблема, похоже, более распространена при определенных комбинациях версий Visual Studio 2022 и расширений SSIS, поэтому следование актуальным обновлениям и тщательное управление средой разработки может помочь предотвратить возникновение этих проблем.

Источники

  1. Microsoft Q&A - Ошибка SSIS - Конструктор типа не найден
  2. Stack Overflow - Ошибка мастера медленно изменяющихся измерений в Visual Studio 2022
  3. Microsoft Q&A - Не удается создать интеграционные проекты
  4. Solvusoft - Исправление ошибки отсутствия Microsoft.DataTransformationServices.Wizards.DLL
  5. Форумы SQLServerCentral - Business Intelligence не работает должным образом
  6. Microsoft Q&A - Ошибка конфигурации пакета сообщества SSIS VS 2019
  7. Сообщество разработчиков - Проблемы конструктора Microsoft Data Transformation Services
Авторы
Проверено модерацией
Модерация