После того, как пользователь введет dotnet add package <SomePackage>
, DLL будет установлена по пути, аналогичному:
C:\Users\USER\.nuget\packages\SomePackage\1.0.2\lib\netstandard2.0\SomePackage.dll
Как я могу найти этот путь программным путем?Я вижу, что в obj/project.assets.json
есть некоторая информация, которую я могу проанализировать, а также интересный класс DependencyContextJsonReader в организации dotnet github.
Однако я не могу найти никакой документации или обсуждений по этому поводу, и я не уверен, что это потому, что я придерживаюсь неправильного подхода.
Некоторые сведения: я пишуинструмент, который может создавать проекты на C #.Он использует комбинацию инструментов командной строки dotnet
и API Roslyn Workspace для взаимодействия с сгенерированным проектом.Теперь я хотел бы позволить пользователю устанавливать пакеты Nuget в это сгенерированное решение.Я вызываю dotnet add package SomePackage
, который работает нормально, и теперь я хотел бы добавить DLL к объекту Roslyn Project
, используя AddReferences
API, который требует фактической DLL.