VS 2019 выдает ошибку NotSupportedException при попытке удалить ссылку на пакет Nuget из проекта. NET Core - PullRequest
0 голосов
/ 19 июня 2020

TL; DR: VS2019 - Удаление ссылки Nuget из основного проекта. NET программно вызывает NotSupportedException.

Я пытаюсь исправить расширение на github, которое переключается между пакетами Nuget и локальными проектами ( для простого тестирования новых версий пакета nuget) - https://marketplace.visualstudio.com/items?itemName=RicoSuter.NuGetReferenceSwitcherforVisualStudio2019

Однако при запуске расширения происходит сбой при удалении ссылки с исключением NotSupportedException. Исключение возникает, когда вы пытаетесь удалить ссылку, которая является фактическим пакетом Nuget, когда проект является проектом. NET Core. Это не сработает, если проект основан на. NET Framework.

Я выделил это в отдельный проект - в нем я сделал следующее в пункте меню (никаких других изменений в шаблоне по умолчанию) :

    var application = (DTE)(await package.GetServiceAsync(typeof(SDTE)));

    var proj = application.Solution.Projects.OfType<Project>().FirstOrDefault(x => x.Name.Contains("TestProject"));

    var proj2 = (VSProject)proj.Object;

    var rf = proj2.References.OfType<Reference>().FirstOrDefault(x => x.Name.ToLower().Contains("newton"));

    rf.Remove(); // This line throws on core, does not throw on framework.

И это действительно умирает, когда я пытаюсь удалить пакет newtonsoft nuget из проекта. NET Core, но работает, когда я делаю это в проекте Framework (все они были созданы в 2019 году).

...