无法在 ASP.NET Core Web App 中更改生成的 DLL 的运行时版本
Can't change runtime version of produced DLL in ASP.NET Core Web App
我正在为 REST API 构建一个基于 .NET 5 的 ASP.NET Web 应用程序。目前它是一个 POC。我的托管服务提供商仅支持 5.0.2
运行 时间,但 SDK 版本附带安装了 VS2019 .NET 5.0.103 (runtime 5.0.3)
。我需要生成目标为 运行time 5.0.2
.
的 DLL
为了能够生成 运行 时间 5.0.2
的 DLL,我安装了 .NET SDK version 5.0.102
。现在我有 SDK 和 运行time.
现在,我有如下 SDK 和运行时 (dotnet --info
)
.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]
我试图通过 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.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 的 运行time 版本。
如何强制 Visual Studio 生成针对 运行time 版本 5.0.2
而不是 5.0.3
运行time 的 DLL
?
来自官方文档Select the .NET version to use :
The RuntimeFrameworkVersion element overrides the default version policy. For self-contained deployments, the RuntimeFrameworkVersion specifies the exact runtime framework version. For framework-dependent applications, the RuntimeFrameworkVersion specifies the minimum required runtime framework version.
在您的 csproj 中,您可以添加:
<RuntimeFrameworkVersion>5.0.2</RuntimeFrameworkVersion>
我正在为 REST API 构建一个基于 .NET 5 的 ASP.NET Web 应用程序。目前它是一个 POC。我的托管服务提供商仅支持 5.0.2
运行 时间,但 SDK 版本附带安装了 VS2019 .NET 5.0.103 (runtime 5.0.3)
。我需要生成目标为 运行time 5.0.2
.
为了能够生成 运行 时间 5.0.2
的 DLL,我安装了 .NET SDK version 5.0.102
。现在我有 SDK 和 运行time.
现在,我有如下 SDK 和运行时 (dotnet --info
)
.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]
我试图通过 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.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 的 运行time 版本。
如何强制 Visual Studio 生成针对 运行time 版本 5.0.2
而不是 5.0.3
运行time 的 DLL
?
来自官方文档Select the .NET version to use :
The RuntimeFrameworkVersion element overrides the default version policy. For self-contained deployments, the RuntimeFrameworkVersion specifies the exact runtime framework version. For framework-dependent applications, the RuntimeFrameworkVersion specifies the minimum required runtime framework version.
在您的 csproj 中,您可以添加:
<RuntimeFrameworkVersion>5.0.2</RuntimeFrameworkVersion>