【发布时间】:2019-07-19 06:08:34
【问题描述】:
我正在编写一个需要动态加载 nuget 包的应用程序(它使用 Roslyn 来扫描文档、类型信息等)。
我有一种情况,我想加载以下包(来自 csproj 文件的信息):
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<AssemblyName>J4JSoftware.Logging</AssemblyName>
<RootNamespace>J4JSoftware.Logging</RootNamespace>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Serilog.Sinks.Console" Version="3.1.1" />
</ItemGroup>
挑战在于我的系统的 nuget 缓存没有用于 netstandard2.0 版本的 Serilog.Sinks.Console 3.1.1 的程序集/DLL(我认为在线也不存在)。它只有一个用于 netstandard1.3。
但我正在扫描的应用程序(即需要 Serilog.Sinks.Console 3.1.1 netstandard2.0 的应用程序)运行良好。因此,我认为该软件包的要求正在解决到 netstandard1.3 版本……即使项目是 netstandard2.0。
问题:
关于如何在运行时解析 nuget 包的文档的最佳位置是什么?也许我可以在我的扫描应用中复制解析功能。
更好的是,是否有自动处理分辨率的库?也许是nuget本身的一部分?我研究了nuget github项目但是没有看到这样的东西,但我不假装是nuget专家。
【问题讨论】: