【问题标题】:Nuget package manager installs dependencies for another targetNuget 包管理器为另一个目标安装依赖项
【发布时间】:2018-01-23 23:11:57
【问题描述】:
所以我有一个针对多个版本(.net 4.5、4.6.1、netcore 2.0)的 DLL,它被推送到 Klonkdike
现在我想使用这个 DLL,我的项目是 .net 4.6.1,所以我希望只解决对这个目标的依赖。
但是,我的 packages.config 获取所有 .netcore 依赖项。我怎样才能防止这种情况发生?
这是 DLL:
这是获取此包时添加的内容:
我希望只添加 UAParser 而没有其他更改,因为我已经有了依赖项。
包的lib文件夹中有3个文件夹,所以我希望只需要这些特定的依赖项......
如何避免添加所有这些依赖项?
【问题讨论】:
标签:
c#
nuget
dependency-management
【解决方案1】:
UAParser 是一个纯粹的基于 .NET Standard 的库。
低于 2.0 的 .NET Standard 版本依赖于这些库。但是,VS 2017 中的新工具(确保您至少有 15.5.0)在构建期间删除了这些包并确保正确的程序集就位(这些也可能是 System.* dll 文件,但不是来自这些包)。
这些通过工具放置的 dll 需要在 .NET Framework 上实现 .NET Standard 合同 - 它们转发到 .NET Framework 实现。
在即将发布的 .NET 4.7.2 中,计划不再需要任何这些 DLL。在那之前,它们是必要的。