Ориентированное на Microsoft.VisualStudio во время выполнения.Композиция.Исключение CompositionFailedException в предварительном просмотре VS 2019

#visual-studio #visual-studio-2019

#visual-studio #visual-studio-2019

Вопрос:

Я пытаюсь запустить расширение в visual studio 2019 preview и получаю следующие ошибки.

  1. Система.Исключение AggregateException: поток системных данных проекта ‘DynamicOrderPrecedenceDataSourceImporter`3: 54884337’ закрыт из-за исключения: System.Исключение AggregateException: произошла одна или несколько ошибок. —> Система.Исключение AggregateException: произошла одна или несколько ошибок. —> Система.Исключение AggregateException: произошла одна или несколько ошибок. —> Система.Исключение AggregateException: произошла одна или несколько ошибок. —> Microsoft.VisualStudio.Композиция.Исключение CompositionFailedException: при инициализации части «Класс A» было выдано исключение. —> System.missingmethod Исключение: метод не найден: ‘Microsoft.VisualStudio.ProjectSystem.IConfiguredProjectServices Microsoft.VisualStudio.ProjectSystem.ConfiguredProject.get_Services()’.

  2. Система.Исключение AggregateException: произошла одна или несколько ошибок. —> Microsoft.VisualStudio.Композиция.Исключение CompositionFailedException: при инициализации части «Класс B» было выдано исключение. —> System.missingmethod Исключение: метод не найден: ‘Microsoft.VisualStudio.ProjectSystem.IUnconfiguredProjectServices Microsoft.VisualStudio.ProjectSystem.UnconfiguredProject.get_Services()’.

Пожалуйста, помогите в устранении вышеуказанных ошибок

С уважением,

Комментарии:

1. Как вы ссылаетесь на API ProjectSystem? Я думаю, что между VS2017 и первым предварительным просмотром VS2019 произошло существенное изменение в отношении этого конкретного API.

2. Я пытаюсь использовать тот же код, который был написан для VS 2017 в VS 2019. несколько примеров того, как я пытаюсь использовать. 1. Iunconfiguredprojectcommon Services использует CommonProjectServices; CommonProjectServices. ActiveConfiguredProject. Службы; // получение исключения здесь 2. UnconfiguredProject, unconfiguredProject; unconfiguredProject. Службы; // получение исключения здесь 3. IProjectService projectService; projectService. Службы; // получение исключения здесь

Ответ №1:

В VS2019 в этом API произошли кардинальные изменения. Если сравнить эталонные сборки из Microsoft.VisualStudio.Пакет ProjectSystem nuget с последней версии 15.x по 16.x вы увидите изменения:

Сравнение подписей в методе UnconfiguredProject.get_Services

Обратите внимание, что в 15.x это были IUnconfiguredProjectServices, а в 16.x теперь это UnconfiguredProjectServices (без I).

Вам необходимо обновить ваши ссылки для VS2019.

Комментарии:

1. 16.x все еще находится в предварительном выпуске, и я все еще использую 15.8.243 в своем коде. Можете ли вы также помочь в предоставлении какого-либо примера кода, на который я могу сослаться?

2. Изменение кода не требуется (ваш код все равно будет использоваться .Services ), но для VS2019 вам необходимо обновить способ ссылки на эту сборку. Если вы используете пакет NuGet, обновитесь до последнего пакета при сборке для VS2019; если вы ссылаетесь на сборки напрямую, вам также понадобятся отдельные копии.

3. я обновил зависимость до предварительной версии, и она работает нормально. Спасибо

4. Однако в предварительном просмотре VS 2019 ссылка на dll visual studio не работает, которая была приведена в VS 2017. Мне приходится вручную удалять нерабочие ссылки и повторно добавлять в VS 2019, как я добавил ссылку для «Microsoft.VisualStudio. XmlEditor » и в VS 2019 его не удалось идентифицировать, поэтому мне приходится удалять и повторно просматривать dll. Что может быть причиной этого? есть идеи?

5. @golf89 Я не уверен, на какие именно ссылки вы ссылаетесь, но между VS2017 и VS2019 есть многочисленные критические (несовместимые) изменения. Эти проблемы, вероятно, являются результатом этого. Вероятно, вам понадобятся отдельные сборки для настройки ссылок для каждой версии VS, на которую вы нацелены.

Ответ №2:

В моем случае я много чего перепробовал, и это, наконец, решило мою проблему:

https://developercommunity.visualstudio.com/content/problem/660096/service-fabric-project-not-loading.html

(0) Исключение произошло, когда я попытался открыть проект, он остался «незагруженным», и возникло исключение (1) Перезагрузите компьютер, убедитесь, что не запущен экземпляр Visual Studio (2) Удалите (не только для безопасности переименуйте его :-)) указанную папку C:Program Файлы (x86) Microsoft Visual Studio2019 Community Common7 IDE Extensions gramtlyq.e04 (около 6 тысяч файлов!) (3) Запустите консоль разработчика для VS2019 и выполните: devenv / UpdateConfiguration (4) Теперь Open project был в порядке

Всем удачи с этой загадочной ошибкой!

Ответ №3:

Мой случай был немного другим. Я пытался обновить проект с .NET Core 3.0 до 3.1. Я не получал ошибок или предупреждений при обновлении версии до следующего закрытия и повторного открытия проекта. Я перепробовал много разных исправлений, и ни одно из них не сработало. Мое решение и проекты все еще компилировались должным образом все время.

Что в конечном итоге привело к устранению моей проблемы, так это изменение версии обратно на .NET Core 3.0 и повторное обновление до 3.1. Я не знаю, почему это было исправлено, и я не видел, чтобы это предлагалось где-либо на других форумах. Надеюсь, это кому-то поможет.