.NET 6 不支持 .NET Standard 2.1?
.NET 6 does not support .NET Standard 2.1?
我刚刚将一个项目从 .NET 5 更新到 .NET 6。它在本地编译和运行完美。当我将它推到天蓝色时,运行 我的 CI 管道,报告错误:
NU1202: Package MyStandardPackaged 1.0 is not compatible with net60 (.NETFramework,Version=v6.0). Package MyStandardPackaged 1.0 supports: netstandard2.1 (.NETStandard,Version=v2.1)
是否有解决方法,或者我必须更新此包以声明 .NET 6?
如果您仔细查看您发布的错误消息:
NU1202: Package MyStandardPackaged 1.0 is not compatible with net60 (.NETFramework,Version=v6.0). Package MyStandardPackaged 1.0 supports: netstandard2.1 (.NETStandard,Version=v2.1)
请注意,net6.0
是 .NETFramework,Version=v6.0
。然而,.NET 6 实际上是 .NETCoreApp,Version=v6.0
.
因此,我断定您正在使用一些甚至不了解 .NET 5 的旧版本 NuGet 来恢复您的 project/solution。
我的建议是避免 Azure DevOps 中的 NuGetCommand
任务。我想不出有什么理由使用它,CI 脚本所需的所有重要功能都存在于 dotnet
CLI 和 MSBuild.exe
.
因此,如果您的solution/repo中的所有项目都是SDK风格的(项目文件中包含Sdk="whatever"
),则使用dotnet restore
。如果您甚至只有一个非 SDK 样式的项目(目录中的每个 .cs
都列在 XML 中),那么请使用 msbuild -t:restore
。这样,您就再也不会遇到 NuGet 版本不匹配的问题了。
我刚刚将一个项目从 .NET 5 更新到 .NET 6。它在本地编译和运行完美。当我将它推到天蓝色时,运行 我的 CI 管道,报告错误:
NU1202: Package MyStandardPackaged 1.0 is not compatible with net60 (.NETFramework,Version=v6.0). Package MyStandardPackaged 1.0 supports: netstandard2.1 (.NETStandard,Version=v2.1)
是否有解决方法,或者我必须更新此包以声明 .NET 6?
如果您仔细查看您发布的错误消息:
NU1202: Package MyStandardPackaged 1.0 is not compatible with net60 (.NETFramework,Version=v6.0). Package MyStandardPackaged 1.0 supports: netstandard2.1 (.NETStandard,Version=v2.1)
请注意,net6.0
是 .NETFramework,Version=v6.0
。然而,.NET 6 实际上是 .NETCoreApp,Version=v6.0
.
因此,我断定您正在使用一些甚至不了解 .NET 5 的旧版本 NuGet 来恢复您的 project/solution。
我的建议是避免 Azure DevOps 中的 NuGetCommand
任务。我想不出有什么理由使用它,CI 脚本所需的所有重要功能都存在于 dotnet
CLI 和 MSBuild.exe
.
因此,如果您的solution/repo中的所有项目都是SDK风格的(项目文件中包含Sdk="whatever"
),则使用dotnet restore
。如果您甚至只有一个非 SDK 样式的项目(目录中的每个 .cs
都列在 XML 中),那么请使用 msbuild -t:restore
。这样,您就再也不会遇到 NuGet 版本不匹配的问题了。