我尝试从 .NET 4.7.2 类库 (VS2017) 制作 NuGet 包,但结果 NuGet 包令人惊讶地显示没有依赖项(这是一个错误)。
我的设置是这样的:
该nuget.exe包命令应自动填写所需的依赖-这也曾经是较早(在其他项目中)的情况。但是,当时我在我的类库中使用了packages.config而不是packageReferences。这有什么改变吗?
到底是怎么回事?
如何强制系统再次在我的包中包含所需的依赖项?
笔记:
该包由我们 TeamCity 构建服务器(不带 VS2017)上的 MSBuild 脚本构建。构建脚本同时调用“nuget.exe restore”和后来的 “nuget.exe pack”作为其构建逻辑的一部分。
MSBuild 是 15.7 版
nuget.exe 是版本 4.6.2
我有一个指向 .NET 4.7.1 库的 DLL。
可能无关紧要,但它是用 C# 编写的,并且使用“packages.config”模式而不是较新的 PackageReference 配置使用 NuGet 包。
我将它发布为 NuGet 包(多年来一直这样做)。但是现在当我执行以下操作时:
nuget pack -Properties Configuration=Release
Run Code Online (Sandbox Code Playgroud)
我收到以下警告:
错误 NU5128:在 nuspec 和 lib/ref 文件夹的依赖项组中声明的某些目标框架在其他位置没有完全匹配。请参阅以下操作列表: - 将 .NETFramework4.7.1 的依赖项组添加到 nuspec
我在 nuspec 的依赖项组中没有任何内容:
<?xml version="1.0"?>
<package >
<metadata>
<id>*******</id>
<version>*******</version>
<title>*******</title>
<authors>*******</authors>
<owners>*******</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>*******</description>
<releaseNotes>*******</releaseNotes>
<copyright>*******</copyright>
<tags>*******</tags>
</metadata>
</package>
Run Code Online (Sandbox Code Playgroud)
这会消耗以下 NuGet 包:
当我查看参考文献时,我看到以下内容(使用 ~ 来缩短路径):