如何解决无法更改 ASP.NET Core Web App 中生成的 DLL 的运行时版本
我正在为 REST API 构建一个基于 .NET 5 的 ASP.NET Web 应用程序。目前它是一个 POC。我的托管服务提供商仅支持 5.0.2
运行时,但 SDK 版本随附安装了 VS2019 .NET 5.0.103 (runtime 5.0.3)
。我需要使用目标运行时 5.0.2
生成 DLL。
为了能够为运行时 5.0.2
生成 DLL,我安装了 .NET SDK version 5.0.102
。现在我有 SDK 和运行时。
现在,我有如下所示的 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\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 的运行时版本。
如何强制 Visual Studio 生成面向运行时版本 DLL
而不是 5.0.2
运行时的 5.0.3
?
解决方法
来自官方文档Select the .NET version to use:
RuntimeFrameworkVersion 元素会覆盖默认版本政策。对于自包含部署,RuntimeFrameworkVersion 指定确切的运行时框架版本。对于依赖于框架的应用程序,RuntimeFrameworkVersion 指定所需的最低运行时框架版本。
在您的 csproj 中,您可以添加:
<RuntimeFrameworkVersion>5.0.2</RuntimeFrameworkVersion>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。