Я создал очень простой пакет NuGet из проекта библиотеки классов Visual Studio Visual Studio, в котором источник библиотеки классов находится на C #.
Я использовал эту команду для создания пакета nuget:
nuget pack MyProject.csproj -symbols -Properties "Configuration=Debug" -suffix debug
. Создает, как я ожидаю, два файла пакета nuget, а именно:
- MyProject.1.0.0-debug.symbols.nupkg
- MyProject.1.0.0-debug.nupkg
Эти пакеты в основном идентичны, за исключением того, что пакет с "символами" включает файлы pdb в иерархии lib и исходные файлы в папке src.
Учитывая дублирование, я переименовываю файл MyProject.1.0.0-debug.symbols.nupkg
в MyProject.1.0.0-debug.nupkg
, который перезаписывает один из файлов, ничего страшного в этом нет.Теперь у меня есть условно названный пакет с PDB и исходными файлами в нем.
Я развертываю его на внутреннем фиде общих файлов с:
nuget add MyProject.1.0.0-debug.nupkg \\InternalShare\FeedFolder
В совершенно другом проекте и другомТеперь я использую этот пакет NuGet в Visual Studio с помощью диспетчера пакетов NuGet.Все отлично работает.И код тоже работает отлично, в моем случае я сделал простое консольное приложение, которое использует пару классов в пакете, и я продемонстрировал, что оно использует их правильно и без инцидентов.
Пока все хорошо.
Теперь я установил точку останова в потребляющем коде и попытался перейти к исходному коду для отладки пакета.Кажется, он работает нормально, но на самом деле он не входит в исходный код, который был распространен вместе с пакетом.Фактически он входит в ОРИГИНАЛЬНЫЙ источник после создания пакета в совершенно другой и не связанной иерархии папок на моем компьютере.
ОК.Поэтому теперь я воссоздаю свое простое консольное приложение на отдельном компьютере , который не имеет ОРИГИНАЛЬНОГО источника.И на этом отдельном компьютере, который находится во внутренней сети и, следовательно, имеет доступ к общей папке, я использую пакет NuGet и снова все компилируется и работает нормально.
Когда я пытаюсь войти в исходный код пакетакод в отладчике Visual Studio, однако, он просто не работает.Отладчик не может найти исходный код, даже если он находится прямо в папке пакета.(Отладчик предлагает дизассемблировать код - не очень полезно).
Кажется, это должен быть общий случай использования и желание включить символы и исходный код в пакет nuget, поэтому я должен что-то делатьглупо, что отладчик не может найти источник.
Различные версии вещей:
- Visual Studio: Professional 2017 15.9.11
- Установлен менеджер пакетов NuGetв VS: 4.6.0
- CLI NuGet версия: 4.8.1.5435
- Целевая .NET Framework для моего примера кода: 4.6.1
В чем моя ошибка?
Заранее большое спасибо.
================== ДОБАВЛЕННАЯ ИНФОРМАЦИЯ 04/4/2019, 15:30 Pacific Pacific =======================
Это не так плохо, как я думал.Когда я пытаюсь зайти в код и сказать, что он не может его найти, мне предоставляется возможность просмотреть код, чтобы я мог перейти к пакету (при условии, что я знаю, где он находится!) И освободить отладчик ивсе отлично работаетПриятно то, что Visual Studio, похоже, запоминает, где я находился, и знает, где искать в следующий раз.Не уверен в этом механизме.
И .... Если я иду на свой оригинальный компьютер (с фактическим источником пакета на нем), если я изменяю этот исходный источник, как будто я готовлюсь к следующему пакету,отладчик (конечно) понимает, что источник изменился, и также побуждает меня искать подходящий источник в другом месте.
Тем не менее, было бы здорово не прыгать через обручи, как это, поэтому я бывсе еще ценю любые дальнейшие идеи.