无法更改 ASP.NET Core Web 应用程序中生成的 DLL 的运行时版本

问题描述 投票:0回答:1

我正在为 REST API 构建基于 .NET 5 的 ASP.NET Web 应用程序。目前这是一个概念验证。我的托管提供商仅支持 5.0.2 运行时,但 SDK 版本安装了 .NET 5.0.103(运行时 5.0.3)。我需要生成目标运行时为 5.0.2 的 DLL。

为了能够为运行时 5.0.2 生成 DLL,我安装了 .NET SDK 版本 5.0.102。

现在,我有如下的 SDK 和运行时 (

dotnet --info
):

.NET SDK 安装:

  • 5.0.102 [C:\Program Files\dotnet\sdk]
  • 5.0.103 [C:\Program Files\dotnet\sdk]

已安装 .NET 运行时:

  • Microsoft.AspNetCore.App 5.0.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  • Microsoft.AspNetCore.App 5.0.3 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]

我尝试使用 global.json 文件强制使用早期版本。我将该文件放在 .csproj 文件所在的文件夹中。内容如下:

{
  "sdk": {
    "version": "5.0.102"
  }
}
如果我从项目目录运行这些命令,

dotnet --version
dotnet --info
还报告正在使用的SDK是
5.0.102

D:\Projects-DriveD\VS\AspNetCoreWebSample\AspNetCoreWebSample>dotnet --version
5.0.102

D:\Projects-DriveD\VS\AspNetCoreWebSample\AspNetCoreWebSample>dotnet --info
.NET SDK (reflecting any global.json):
 Version:   5.0.102
 Commit:    71365b4d42

Runtime Environment:
 OS Name:     Windows
 OS Version:  10.0.19042
 OS Platform: Windows
 RID:         win10-x64
 Base Path:   C:\Program Files\dotnet\sdk\5.0.102\

Host (useful for support):
  Version: 5.0.3  <==========================================
  Commit:  c636bbdc8a

.NET SDKs installed:
  5.0.102 [C:\Program Files\dotnet\sdk]
  5.0.103 [C:\Program Files\dotnet\sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 5.0.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 5.0.3 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]

但即便如此,生成的 DLL 仍以运行时版本 5.0.3 为目标。我认为问题可能是因为主机版本仍然是 5.0.3,但我不完全确定。

我正在使用 Jetbrains dotpeek 工具验证生成的 DLL 的运行时版本。 enter image description here

如何强制 Visual Studio 生成针对运行时版本 5.0.2 而不是 5.0.3 的 DLL?

c# asp.net-core .net-core runtime .net-5
1个回答
1
投票

从官方文档选择要使用的.NET版本

RuntimeFrameworkVersion 元素会覆盖默认版本策略。对于独立部署,RuntimeFrameworkVersion 指定确切的运行时框架版本。对于依赖于框架的应用程序,RuntimeFrameworkVersion 指定所需的最低运行时框架版本。

在您的csproj中,您可以添加:

<RuntimeFrameworkVersion>5.0.2</RuntimeFrameworkVersion>
© www.soinside.com 2019 - 2024. All rights reserved.