【发布时间】:2018-01-29 07:25:35
【问题描述】:
问一些有据可查的东西真是太尴尬了,但是我在推送我的 NuGet 包时遇到了一个错误:
System.AggregateException:发生一个或多个错误。 ---> System.Net.Http.HttpRequestException:响应状态代码不 表示成功:400(NuGet 包包含 invalid .nuspec 文件。遇到的错误是:'目标框架 不支持,Version=v0.0 不受支持。'。更正错误并重试。)。
我使用 VSTS NuGet 任务将包推送到 NuGet.org,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 一致。我试过像netstandard和netcoreapp2.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 />),则一切正常,除了包没有列出我想要包含的依赖项。另外,如果我不使用组,因此不以框架为目标,而是列出所有依赖包,那么一切正常。
任何解决这个(可能是愚蠢的)问题的提示将不胜感激。
【问题讨论】:
-
尝试使用高于版本 2 的 NuGet 版本。NuGet 2 不了解 .NET Standard。
-
@MattWard 他正在使用比版本 2 更高版本的 nuget。上面屏幕截图中的“2”是包装 nuget 的任务的版本;)如果没有以前的 nuget,此任务使用版本 4.0使用 -installer 任务,否则使用 nuget-installer 任务中指定的版本。 QualityCatalyst:您的定义是否有“Nuget-Installer”任务以及配置了哪个版本?
-
@D.J.感谢您的澄清。不,我只有根据文档使用 NuGet 4.1.0 的屏幕截图的 NuGet Push 任务:docs.microsoft.com/en-us/vsts/build-release/tasks/package/nuget
-
@MattWard:我更新了图像以反映我使用的是 NuGet 版本 4.1.0。
-
我好像无法重现这个问题。 nuspec的详细代码是什么?如果手动推送包,结果如何?你能用新样本重现这个问题吗?
标签: nuget azure-devops azure-pipelines-release-pipeline nuspec nuget-spec