gpt4 book ai didi

sdk - 当前的 .NET SDK 不支持面向 .NET Core 2.1.3

转载 作者:行者123 更新时间:2023-12-02 00:58:43 25 4
gpt4 key购买 nike

我想确保我的应用程序是针对 .NET Core 2.1.3 构建的,因此我安装了 SDK 2.1.401 版并设置了 TargetFrameworkVersion项目到2.1.3 .

这给了我以下错误消息(强调我的):

C:\Program Files\dotnet\sdk\2.1.401\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.TargetFrameworkInference.targets(137,5): error NETSDK1045: The current .NET SDK does not support targeting .NET Core 2.1.3. Either target .NET Core 2.1 or lower, or use a version of the .NET SDK that supports .NET Core 2.1.3.



所以有趣的是,构建似乎使用了新安装的 SDK (2.1.401) - 它应该支持 .NET Core 2.1.3 - 但它仍然提示不支持 .NET Core 2.1.3。这对我来说没有意义...

这里可能有什么问题?

最佳答案

(对于我的回答,我假设您正在构建一个依赖于框架的应用程序,而不是一个独立的应用程序。)

您不能设置 2.1.3直接作为 <TargetFramework>.csproj因为只是补丁版本不同而已。

仅允许以下条目:https://docs.microsoft.com/en-us/dotnet/standard/frameworks
所以在你的情况下 .csproj需要<TargetFramework>netcoreapp2.1</TargetFramework> .

但是正如 Damir 在评论中指出的那样,如果您还添加 <RuntimeFrameworkVersion>2.1.3</RuntimeFrameworkVersion>,则可以强制使用该版本。到 <PropertyGroup> .

如果打开“管理 NuGet 包”对话框并查看元包版本 Microsoft.NETCore.App,则可以检查此更改的效果。那是隐式使用的。

没有 <RuntimeFrameworkVersion>它是 2.1.0 , 否则应该是 2.1.3 .

但除此之外,有时还有其他因素会隐含地确定正在使用的版本。

例如,如果你想构建一个自包含的应用程序,你必须指定 <RuntimeIdentifier>这也将强制框架版本为 2.1.3因为它会publish the highest patch runtime自动在您的机器上。

也就是说,我不建议设置任何 <RuntimeFrameworkVersion>大部分是手动的。

从 .NET Core 2.1 开始,所有依赖于框架的应用程序(使用 .NET Core 2.0 或更高版本构建)will automatically roll forward如果系统上不存在运行时的原始版本,则安装到最新的次要版本。

因此,如果您在目标系统上只安装了 .NET Core 2.1.3,则依赖于框架的 .NET Core 2.1.0 应用程序将自动使用该运行时和框架。

您可以阅读更多关于 .NET Core 版本选择机制的信息 here .

关于sdk - 当前的 .NET SDK 不支持面向 .NET Core 2.1.3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52179267/

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