Автоматически добавлять зависимости NuGet и использовать инструкции в коде Visual Studio?

Я использую код Visual Studio для разработки приложения ASP.NET 5 на Mac. Чтобы использовать новые классы (framework или сторонние) в моем файле .cs, мне нужно

  • Вручную добавьте зависимость NuGet в project.json, а затем
  • Вручную добавьте оператор using в мой файл .cs.

Кажется, что должен быть лучший способ импортировать новые функции, которые не связаны с поиском нужного NuGet и правильного пространства имен. Любые предложения?

Ответ 1

Хорошо, как только я понял мои проблемы с IntelliSense (Visual Studio Code на Mac), мне больше не нужно вводить инструкции using. OmniSharp-based IntelliSense достаточно умен, чтобы предложить (Cmd + . на Mac) добавить их для меня:

введите описание изображения здесь

Мне все равно придется добавлять зависимость NuGet вручную, но я думаю, что это поведение по умолчанию в полной Visual Studio тоже, и вам нужно, чтобы ReSharper стал более умным.

введите описание изображения здесь

Ответ 2

К сожалению, насколько мне известно, короткий ответ - нет.

Код Visual Studio предназначен для облегченного редактирования, поэтому у него нет поддержки той функции, которую вы описываете из коробки. Полная версия Visual Studio для Windows имеет поддержку для этого. При вводе имени типа/типа, который вы хотите использовать, например. JsonConvert, он обнаружит, что отсутствующий тип доступен на NuGet и предлагает вам возможность загрузить правильный пакет и добавить инструкцию using. (На скриншоте у меня уже установлен пакет NuGet, поэтому ему нужно только добавить оператор using)

Roslyn Codefix

Эта функция доступна в версии сообщества Visual Studio, которую вы можете скачать бесплатно с сайта visualstudio.com. Это требует, чтобы вы запускали Windows, поэтому я не уверен, считаете ли вы этот вариант.

Теперь о желательной стороне мышления: VS Code поддерживает расширения в наши дни и обладает мощью механизма Roslyn, поэтому теоретически кто-то может написать расширение, которое будет предлагать эту функциональность в будущем. Вы также можете попробовать добавить его в основной редактор, открыв проблему в GitHub: https://github.com/Microsoft/vscode/issues Я боюсь, что ни один из них не поможет вам в краткосрочной перспективе.