Nuget软件包未安装.NETCoreApp的依赖项

Nuget软件包未安装.NETCoreApp的依赖项,.net,nuget,.net-core,.net,Nuget,.net Core,我创建了一个包含2个程序集的nuget包。一个目标是.Net Framework 4.0,另一个目标是.Net标准1.6 这似乎没有任何问题。但是,针对.NET标准的版本需要几个额外的依赖项才能正常工作,因此我将这些作为依赖项添加到nuspec文件中并重新构建 依赖项在NuGet软件包管理器中按预期显示,但当我从.Net核心或.Net标准应用程序引用软件包时,它不会添加对依赖项的引用。 软件包似乎安装得很好,日志中没有错误 这是我的nuspec文件的相关部分: <dependencies&

我创建了一个包含2个程序集的nuget包。一个目标是.Net Framework 4.0,另一个目标是.Net标准1.6

这似乎没有任何问题。但是,针对.NET标准的版本需要几个额外的依赖项才能正常工作,因此我将这些作为依赖项添加到nuspec文件中并重新构建

依赖项在NuGet软件包管理器中按预期显示,但当我从.Net核心或.Net标准应用程序引用软件包时,它不会添加对依赖项的引用。 软件包似乎安装得很好,日志中没有错误

这是我的nuspec文件的相关部分:

<dependencies>
    <group targetFramework="netstandard1.3">
        <dependency id="System.Collections.Specialized" version="4.0.1.0" />
        <dependency id="System.Threading.Tasks.Parallel" version="4.3.0.0" />
    </group>
    <group targetFramework="netcoreapp1.0">
        <dependency id="System.Collections.Specialized" version="4.0.1.0" />
        <dependency id="System.Threading.Tasks.Parallel" version="4.3.0.0" />
    </group>
</dependencies> 

我错过了什么

编辑:

更多信息:

我尝试从上面的配置中删除分组,只是列出了没有分组的依赖项,然后我尝试在常规ASP.NET项目上安装该包

当您通过软件包管理器安装软件包时,会弹出一个窗口,列出正在安装的软件包,在本例中,它会列出我的软件包以及依赖项。一切都好

但是,当我在.NETCoreApp或.NETStandard项目上安装相同的包时,列表中只显示我的包

编辑2:

我一直在与NuGet support非常有帮助的人员讨论这一点,发现如果我们使用相同的软件包,添加到Visual Studio 2017中的.NET核心应用程序,那么它工作正常,只有在VS 2015中才会出现问题


他们让我提出一个问题。

在使用包引用管理nuget依赖项的项目中,您没有project.json。相反,您的所有引用都可以在一个位置(即项目文件)中找到。 在dotnet core或使用的项目中,仅列出对IMMIDATE依赖项的引用。因此,如果您添加对包a的引用,而包a又依赖于包B,那么B将不会显示在项目文件中。这是PackageRef最大的优点之一,我们不会在项目文件中塞满消费者可能不关心的大量依赖项。
将您的nuget包安装到项目中,导航到project_root/obj/project.assets.json并打开此json,您将看到您的包及其依赖项一起列出。如果您在此处看到预期的依赖项,它将验证包是否正确编写。

可能是缓存导致的?尝试:

清理
VS2017>工具>选项>NuGet软件包管理器>常规>清除所有NuGet缓存
(实际上在%USERPROFILE%\.NuGet中)


这对我很有用。

在我的例子中,我缺少
nuget.org
包源代码

Tools > Options > Nuget Package Manager > Package Sources

应在恢复时通过传递方式添加依赖项,它们是否显示在消费应用程序的obj/project.assets.json文件中?“未添加”的确切含义是什么?当我说“未添加”时,我的意思是nuget包本身在解决方案资源管理器的“引用”下显示为引用。我希望依赖项也会出现在那里,但事实并非如此。而且,不,它们不会出现在任何json文件中。所以答案是,这个问题只存在于VS2015中。VS 2017很好用。恐怕没那么简单。当我尝试从包中使用程序集的函数时,它会给我一个“类型“x”在未引用的程序集中定义”错误,即使该程序集在NuGet包中作为依赖项列出。因此,肯定缺少了参考资料。我真的很想看到一个复制品……你能在这里分享吗?或者给我发一封电子邮件到karann[at]microsoft[dot]comSure,github()上的问题在底部嵌入了NuGet包。在vs2015中,.NET Core处于预览状态。正如您所发现的,这适用于VS2017。我建议使用minClientVersion属性,以确保仅在2017年使用该软件包,因为我预计修复不会很快出现在2015年。你可能是对的。感谢您提供有关minClientVersion的提示。