Отладка пакетов nuget с помощью Visual Studio 2017

В Visual Studio 2015 и .NET Core мы могли отлаживать пакеты nuget, извлекая исходный код из источника (например, GitHub) на локальный диск, добавляя исходный путь к загруженному исходному коду в global.json и ссылаясь на пакет nuget в нашем проекте. Это вызвало ссылку на проекты в загруженном исходном коде, чтобы автоматически отображаться в текущем решении и, таким образом, позволяло легко отлаживать (Подробнее об этой функции можно прочитать о в этой статье).

Кто-нибудь знает, как сделать то же самое с помощью Visual Studio 2017? Поскольку global.json ушел, я не могу найти решение для этого.

Ответ 1

Я вижу, что это стало популярным вопросом, однако MS (как в большинстве случаев в настоящее время в Visual Studio) отсутствует в запросах, которые действительно могут улучшить их продукт.

Есть несколько сообщений о том, как использовать справочную библиотеку от Microsoft, но это не относится ко всем проектам, и вы будете отлаживать оптимизированные биты релиза, что ограничивает возможности как часов, так и ступеней. Я также чувствую, что этот способ сделать это даже замедляет медленную Visual Studio еще больше. Этот способ сделать это описан в post.

Однако в последнее время я нашел способ обойти эту проблему. Это не всегда стабильно, но что можно сделать, это добавить связанный проект в ваш проект в качестве ссылки на проект.

Но вот шаги, которые я сделал, которые в основном работают:

  • Клонировать хранилище пакета nuget из github (или другого источника)
  • Попробуйте сделать все возможное, чтобы зафиксировать, из которого был создан пакет nuget (большинство ссылок на проекты с тегами или ветвями, но не ожидайте этого, лучше сравнить даты в пакете nuget и совершить).
  • Следуйте инструкциям из проекта о том, как его создать, некоторые просто создают в Visual Studio, другим может потребоваться больше шагов, например, использовать некоторые скрипты сборки в командной строке.
  • Добавьте ссылку на проект в решении, иногда вам также нужно добавить проект, к которому ссылается проект, но не всегда. Пока не нашли правильных правил. Кажется, что новые обновления Visual Studio не нуждаются в этом.
  • Добавьте ссылку на проект во ВСЕХ проектах, которые ссылаются на пакет nuget в вашем решении. Несоблюдение этого может привести к конфликтам, которые компилятор пытается сделать лучше (недостаточно) для решения.

Создайте и отлаживайте, в окне вывода проверьте, что используется сборка, расположенная в выходной папке проекта. Если это так, просто нажмите точки останова в проектах, на которые ссылаются, и у вас будет полная функциональность отладки.

Это немного попытка и неспособность выполнить эту работу, но она действительно работает.

Можно создать условия для ссылок на проект, чтобы гарантировать, что они не построены, например. однако, имейте в виду, что для изменения конфигурации требуется перезагрузка вашего решения ПОСЛЕ изменения!