无效的 .nuspec 文件:不支持目标框架`Unsupported,Version=v0.0`

Invalid .nuspec file: target framework `Unsupported,Version=v0.0` is not supported

很尴尬地问了一些有据可查的问题,但我在推送 NuGet 包时遇到了一个错误:

System.AggregateException: One or more errors occurred. ---> System.Net.Http.HttpRequestException: Response status code does not indicate success: 400 (The NuGet package contains an invalid .nuspec file. The error encountered was: 'The target framework Unsupported,Version=v0.0 is not supported.'. Correct the error and try again.).

我使用 VSTS NuGet 任务将程序包推送到 NuGet.org,它提供了上述错误。没有任何定制,只有默认设置:

在我的 nuspec 文件中,我列出了依赖项,简化示例:

<dependencies>
  <group targetFramework="netcoreapp">
    <dependency id="Microsoft.NETCore.App" version="2.0.0" exclude="Build,Analyzers" />
  </group>
  <group targetFramework="net462" />
  <group targetFramework="netstandard1.0" />
</dependencies>

我假设我的 targetFramework 设置不正确,但根据文档 NuGet Target Frameworks。我尝试了像 netstandardnetcoreapp2.0 这样的目标框架,它们都会导致同样的问题。

我的包文件:

<files>
  <file src="bin\MINE.Core.dll" target="lib\netcoreapp\MINE.Core.dll" />
  <file src="bin\MINE.Core.NetFX.dll" target="lib\net462\MINE.Core.NetFX.dll" />
  <file src="bin\MINE.Core.PCL.dll" target="lib\netstandard1.0\MINE.Core.PCL.dll" />
  <file src="readme.core.txt" target="" />
</files>

如果我将 dependencies 部分留空 (<dependencies />),除了软件包没有列出我想要包含的依赖项外,一切都运行良好。此外,如果我不使用组,因此不针对框架,但列出所有依赖包,一切正常。

任何解决这个(可能是愚蠢的)问题的提示都将不胜感激。

发布定义不是问题,构建定义才是问题。当要推送的 NuGet 包被打包时,确保使用正确的 NuGet 版本。

例如,用于打包的 VSTS 中已弃用的 NuGet Packager 任务在内部使用旧版本的 NuGet。因此,用推荐的 NuGet 任务替换 VSTS 任务可以解决问题,并且 NuGet.org 不会再抱怨不正确的 nuspec 文件。