gpt4 book ai didi

.net - Nuget 包未安装 .NETCoreApp 的依赖项

转载 作者:行者123 更新时间:2023-12-02 01:14:05 25 4
gpt4 key购买 nike

我创建了一个包含 2 个程序集的 nuget 包。一个针对 .Net Framework 4.0,另一个针对 .Net Standard 1.6。

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

依赖项在 NuGet 包管理器中按预期显示,但是当我从 .Net Core 或 .Net Standard 应用程序引用包时,它不会添加依赖项的引用。
该软件包似乎安装正常,日志中没有错误。

这是我的 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 上提出问题.

最佳答案

在使用包引用来管理 nuget 依赖项的项目中,您没有 project.json。相反,您的所有引用资料都可以在一个地方找到,即项目文件。
在 dotnet 核心或使用 PackageReference 的项目中, 仅列出了对直接依赖项的引用。因此,如果您添加对包 A 的引用,而包 A 又依赖于包 B,则 B 将不会出现在您的项目文件中。这是 PackageRef 的最大优势之一,我们不会将项目文件与消费者可能不关心的无数依赖项混在一起。
将您的 nuget 包安装到项目中,导航到 project_root/obj/project.assets.json 并打开此 json,您将看到您的包及其依赖项列出。如果您在此处看到预期的依赖项,则表明该包已正确编写。

关于.net - Nuget 包未安装 .NETCoreApp 的依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43521810/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com