【发布时间】:2017-04-20 14:04:30
【问题描述】:
我创建了一个包含 2 个程序集的 nuget 包。一个面向 .Net Framework 4.0,另一个面向 .Net Standard 1.6。
这似乎没有任何问题。但是,针对 .NET Standard 的版本需要一些额外的依赖项才能运行,因此我将这些作为依赖项添加到 nuspec 文件中并重新构建。
依赖项在 NuGet 包管理器中按预期显示,但是当我从 .Net Core 或 .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 支持的非常有帮助的人讨论这个问题,发现如果我们使用相同的包,添加到 Visual Studio 2017 中的 .NET Core 应用程序中,那么它可以正常工作,只有在 VS 2015 中出现问题。
他们要求我在 github 上提出问题。
【问题讨论】:
-
依赖项应该在恢复时传递添加,它们是否显示在使用应用程序的 obj/project.assets.json 文件中? “未添加”到底是什么意思?
-
当我说未添加时,我的意思是 nuget 包本身显示为解决方案资源管理器中“参考”下的参考。我希望依赖项也会出现在那里,但它们没有。另外,不,它们不会出现在任何 json 文件中。
-
所以答案是,问题只存在于 VS 2015 中。VS 2017 工作正常。