.NET(以前的 .NET Core) 是 Microsoft 开发的开源软件框架,支持 C#, Visual Basic 和 F#。和之前的 .NET Framework 相比,它支持跨平台开发,设计上更加模块化,面向现代程序开发。
安装
如果要运行 .NET 管理的程序,请安装 dotnet-runtime包。
要使用 .NET 编写程序,还需要安装 dotnet-sdk包。
要使用 ASP.NET 建立动态网站和应用和服务,安装 aspnet-runtime包.
微软推荐使用 Visual Studio Code 编译和调试 .NET Core 程序,它是微软开发的基于 Electron 的开源 IDE。
~/.dotnet/tools
加入 PATH
,否则 dotnet 工具无法在 shell 中启动。通过脚本安装
你可以通过执行 .NET 官方提供的 dotnet-install.sh 脚本来同时安装 .NET SDK 或 .NET 运行时的多个版本。另外,你可以在 此链接中找到关于这个脚本的说明。
以下示例会将 LTS(长期支持)版本安装到默认位置,即 $HOME/.dotnet
下:
# ./dotnet-install.sh --channel LTS
以下是指定特定目录安装的命令,在这个示例中 STS(标准期限支持)渠道的最新版将会被安装到 /usr/share/dotnet
下:
# ./dotnet-install.sh --install-dir /usr/share/dotnet -channel STS -version latest
你可以通过添加 -ProxyAddress
参数来指定代理,以及通过添加 -Runtime
参数来实现只安装运行时的目的,具体信息请查阅上面提供的官方文档链接。
脚本执行完毕后,你可以通过以下命令来验证是否安装成功:
$ dotnet --list-sdks
2.2.108 [/usr/share/dotnet/sdk] 3.0.103 [/usr/share/dotnet/sdk]
$ dotnet --version
3.0.103
手动卸载已安装版本
如果你想卸载以前通过 dotnet-install.sh
脚本安装的过时版本,并且是在官方提供的卸载工具 .NET Uninstall Tool 还是没有支持 LInux 的情况下,你可以按照以下步骤完成:
$ dotnet --list-sdks
5.0.100 [/usr/share/dotnet/sdk] 5.0.102 [/usr/share/dotnet/sdk]
解除特定版本的安装:
$ SDK_VERSION="5.0.100" $ DOTNET_UNINSTALL_PATH="/usr/share/dotnet" # rm -rf $DOTNET_UNINSTALL_PATH/sdk/$SDK_VERSION
你可能会安装了一些额外的依赖,通过下面的命令移除他们:
$ SDK_VERSION="5.0.100" $ DOTNET_VERSION="5.0.0" $ DOTNET_UNINSTALL_PATH="/usr/share/dotnet" # rm -rf $DOTNET_UNINSTALL_PATH/sdk/$SDK_VERSION # rm -rf $DOTNET_UNINSTALL_PATH/shared/Microsoft.NETCore.App/$DOTNET_VERSION # rm -rf $DOTNET_UNINSTALL_PATH/shared/Microsoft.AspNetCore.All/$DOTNET_VERSION # rm -rf $DOTNET_UNINSTALL_PATH/shared/Microsoft.AspNetCore.App/$DOTNET_VERSION # rm -rf $DOTNET_UNINSTALL_PATH/host/fxr/$DOTNET_VERSION
通过 AUR 安装
Some of the AUR dotnet packages are made to be installed alongside each other. Only one host package (dotnet-host-binAUR or dotnet-host包) is needed containing the command-line tool and you can install any of the available SDKs and Runtimes (latest packages of all major versions) next to it. List of compatible packages:
- dotnet-host-binAUR, dotnet-runtime-binAUR, aspnet-runtime-binAUR, dotnet-sdk-binAUR
- dotnet-host-preview-binAUR, dotnet-runtime-preview-binAUR, aspnet-runtime-preview-binAUR, dotnet-sdk-preview-binAUR
- dotnet-runtime-3.0AUR, aspnet-runtime-3.0AUR, dotnet-sdk-3.0AUR,
- dotnet-runtime-2.2AUR, aspnet-runtime-2.2AUR, dotnet-sdk-2.2AUR, dotnet-sdk-2.2-vs2017AUR
- dotnet-runtime-2.1AUR, aspnet-runtime-2.1AUR, dotnet-sdk-2.1AUR
安装 PowerShell Core
You can install PowerShell Core as a "global" tool also [1] [2]
# dotnet tool install --global PowerShell
to update to the current version
# dotnet tool update --global PowerShell
遥测
遥测功能默认被打开,可以通过设置环境变量 DOTNET_CLI_TELEMETRY_OPTOUT=1
关闭遥测。
问题解决
It was not possible to find any compatible framework version
If you get the following error when you try to run a newly created project, you no longer need to set a DOTNET_ROOT
variable as described in the solutions of various GitHub issues. Arch's dotnet package (as of 3.1) installs it to the Microsoft recommended location of /usr/share/dotnet
.
$ dotnet run
It was not possible to find any compatible framework version The framework 'Microsoft.AspNetCore.App', version '3.1.0' was not found. - No frameworks were found. You can resolve the problem by installing the specified framework and/or SDK. The specified framework can be found at: - https://aka.ms/dotnet-core-applaunch?framework=Microsoft.AspNetCore.App&framework_version=3.1.0&arch=x64&rid=arch-x64
This is caused because the runtime is shipped as a separate package in Arch. You just need to make sure you have the aspnet-runtime包 package installed as well.
"the required library libhostfxr.so could not be found" error
Some of the dotnet SDK tools (for example libman, dotnet-watch etc.) may expect you to have the environment variable DOTNET_ROOT
pre-configured. If it is not, an error like this one could be observed: [3]
A fatal error occurred, the required library libhostfxr.so could not be found. If this is a self-contained application, that library should exist in [/home/my_user/.dotnet/tools/.store/microsoft.web.librarymanager.cli/1.0.172/microsoft.web.librarymanager.cli/1.0.172/tools/netcoreapp2.1/any/]. If this is a framework-dependent application, install the runtime in the default location [/usr/share/dotnet] or use the DOTNET_ROOT environment variable to specify the runtime location.
The workaround is to manually export DOTNET_ROOT
in your shell:
~/.bashrc
export DOTNET_ROOT=/opt/dotnet
This happens after an update. The currently running shell / login session is storing environment variables for the dotnet SDK version different from one installed. Restarting the shell or logging in again should fix this.
无法找到指定的 SDK
Mono 和 Dotnet 的 MSBuild SDK 库冲突了,请在 shell 中手动设置路径,将示例中的版本号替换为实际安装的版本:
~/.bashrc
export MSBuildSDKsPath=$( echo /usr/share/dotnet/sdk/3.*/Sdks );
dotnet command still installed
Installed packages do not uninstall dotnet-host, so uninstall dotnet-host包