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 году).