如果安装了多个dotnet版本,我如何在Ubuntu 20.04服务配置中选择特定版本的dotnet?
示例服务conf:
[Unit]
Description=example .NET Web App running on Ubuntu
[Service]
WorkingDirectory=/var/www/example.com
ExecStart=/usr/bin/dotnet /var/www/axample.com/WebApplication.dll
如何更改ExecStart=/usr/bin/dotnet哪个版本5?
dotnet --info :
.NET SDK (reflecting any global.json):
Version: 6.0.100
Commit: 9e8b04bbff
Runtime Environment:
OS Name: ubuntu
OS Version: 20.04
OS Platform: Linux
RID: ubuntu.20.04-x64
Base Path: /usr/share/dotnet/sdk/6.0.100/
Host (useful for support):
Version: 6.0.0
Commit: 4822e3c3aa
.NET SDKs installed:
3.1.415 [/usr/share/dotnet/sdk]
5.0.403 [/usr/share/dotnet/sdk]
6.0.100 [/usr/share/dotnet/sdk]
.NET runtimes installed:
Microsoft.AspNetCore.App 3.1.21 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 5.0.12 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 6.0.0 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 3.1.21 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 5.0.12 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 6.0.0 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
这不是运行时设置,而是构建时设置。
当您构建应用程序时,您必须选择用于编译它的SDK以及它针对的.NET运行时。
在构建了应用程序并希望运行它之后,所有的决定都已经做出了,如果不让事情变得更加困难,你就无法真正改变它们。
您可以使用global.json
来选择要使用的SDK。您可以使用项目文件本身(.csproj
(,通过适当设置TargetFramework
来选择使用哪个运行时。
请参阅https://learn.microsoft.com/en-us/dotnet/core/versions/selection了解更多详细信息。
一旦您对应用程序进行了dotnet publish
审核,所有这些决定都将被冻结。
将有一个扩展名为.runtimeconfig.json 的文件
这显示了将要使用的框架。
使用.net核心3.1.0的项目示例:
{
"runtimeOptions": {
"tfm": "netcoreapp3.1",
"framework": {
"name": "Microsoft.AspNetCore.App",
"version": "3.1.0"
},
"configProperties": {
"System.GC.Server": true,
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
}
}
}