用户执行 后dotnet add package <SomePackage>
,DLL 将安装到类似于以下的路径:
C:\Users\USER\.nuget\packages\SomePackage\1.0.2\lib\netstandard2.0\SomePackage.dll
如何以编程方式找到此路径?我看到其中有一些obj/project.assets.json
我可以解析的信息,以及dotnet github 组织下的一个有趣的DependencyContextJsonReader类。
但是,我找不到有关此的文档或讨论,我不确定这是否是因为我采用了错误的方法。
一些背景知识:我正在编写一个可以构建 C# 项目的工具。它使用dotnet
命令行工具和 Roslyn Workspace API 的组合与生成的项目进行交互。我现在想允许用户将 Nuget 包安装到这个生成的解决方案中。我调用dotnet add package SomePackage
哪个工作正常,现在我想使用API将 DLL 添加到 RoslynProject
对象,这需要实际的 DLL。AddReferences