如何在Linux上安装Microsoft .NET Core SDK
.NET Coreis由Microsoft开发的免费,跨平台和开源框架,以构建桌面应用程序,移动应用程序,Web应用程序,IOT应用程序和游戏应用程序等。
如果我们是来自Windows平台的DotNet Developer,请在任何Linux和UNIX的操作系统上轻松设置开发环境。
此步骤教程介绍了如何在Linux上安装Microsoft .NET Core SDK以及如何使用.NET编写第一个应用程序。
在Linux上安装Microsoft .NET Core SDK
.NET核心支持GNU/Linux,Mac OS和Windows。
.NET核心可以安装在流行的GNU/Linux操作系统上,包括Debian,Fedora,CentOS,Oracle Linux,Rhel,Suse/OpenSuse和Ubuntu。
首先编写本教程,最新的.NET核心版本为2.2.
在Debian 10:
注册Microsoft键并添加.NET存储库:
$wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.asc.gpg $sudo mv microsoft.asc.gpg /etc/apt/trusted.gpg.d/ $wget -q https://packages.microsoft.com/config/debian/10/prod.list $sudo mv prod.list /etc/apt/sources.list.d/microsoft-prod.list $sudo chown root:root /etc/apt/trusted.gpg.d/microsoft.asc.gpg $sudo chown root:root /etc/apt/sources.list.d/microsoft-prod.list
然后使用命令安装.NET核心:
$sudo apt-get update $sudo apt-get install apt-transport-https $sudo apt-get update $sudo apt-get install dotnet-sdk-3.1
安装ASP.NET核心运行时:
$sudo apt-get install aspnetcore-runtime-3.1
安装.NET核心运行时:
$sudo apt-get install dotnet-runtime-3.1
在Debian 9:
注册Microsoft键并添加.NET存储库:
$wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.asc.gpg $sudo mv microsoft.asc.gpg /etc/apt/trusted.gpg.d/ $wget -q https://packages.microsoft.com/config/debian/9/prod.list $sudo mv prod.list /etc/apt/sources.list.d/microsoft-prod.list $sudo chown root:root /etc/apt/trusted.gpg.d/microsoft.asc.gpg $sudo chown root:root /etc/apt/sources.list.d/microsoft-prod.list
使用命令安装.NET SDK:
$sudo apt-get update $sudo apt-get install dotnet-sdk-3.1
安装ASP.NET核心运行时:
$sudo apt-get install aspnetcore-runtime-3.1
安装.NET核心运行时:
$sudo apt-get install dotnet-runtime-3.1
在Fedora 30:
添加Microsoft键和存储库:
$sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc $sudo wget -q -O /etc/yum.repos.d/microsoft-prod.repo https://packages.microsoft.com/config/fedora/30/prod.repo
安装.NET Core SDK:
$sudo dnf install dotnet-sdk-3.1
安装ASP.NET核心运行时:
$sudo dnf install aspnetcore-runtime-3.1
安装.NET核心运行时:
$sudo dnf install dotnet-runtime-3.1
在Fedora 29:
添加Microsoft键并启用.NET存储库:
$sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc $sudo wget -q -O /etc/yum.repos.d/microsoft-prod.repo https://packages.microsoft.com/config/fedora/29/prod.repo
现在,安装.NET SDK:
$sudo dnf update $sudo dnf install dotnet-sdk-2.2
安装ASP.NET核心运行时:
$sudo dnf install aspnetcore-runtime-3.1
安装.NET核心运行时:
$sudo dnf install dotnet-runtime-3.1
在CentOS 7:
添加Microsoft键并启用.NET核心存储库:
$sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
更新存储库并安装.NET SDK:
$sudo yum update $sudo yum install dotnet-sdk-3.1
安装ASP.NET核心运行时:
$sudo yum install aspnetcore-runtime-3.1
安装.NET核心运行时:
$sudo yum install dotnet-runtime-3.1
OpenSUSE 15:
添加密钥,启用存储库并使用以下命令安装必要的依赖项:
$sudo zypper install libicu $sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc $wget -q https://packages.microsoft.com/config/opensuse/15/prod.repo $sudo mv prod.repo /etc/zypp/repos.d/microsoft-prod.repo $sudo chown root:root /etc/zypp/repos.d/microsoft-prod.repo
使用命令更新存储库并安装.NET SDK:
$sudo zypper update $sudo zypper install dotnet-sdk-3.1
安装ASP.NET核心运行时:
$sudo zypper install aspnetcore-runtime-3.1
安装.NET核心运行时:
$sudo zypper install dotnet-runtime-3.1
在Ubuntu 19.04上:
注册Microsoft键并添加.NET核心存储库:
$wget -q https://packages.microsoft.com/config/ubuntu/19.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb $sudo dpkg -i packages-microsoft-prod.deb
安装.NET Core SDK:
$sudo apt-get update $sudo apt-get install apt-transport-https $sudo apt-get update $sudo apt-get install dotnet-sdk-3.1
安装ASP.NET核心运行时:
$sudo apt-get install aspnetcore-runtime-3.1
安装.NET核心运行时:
$sudo apt-get install dotnet-runtime-3.1
在Ubuntu 18.04 LTS上:
使用命令注册Microsoft键并添加.NET核心存储库:
$wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb $sudo dpkg -i packages-microsoft-prod.deb
使用:启用"Universe"存储库:
$sudo add-apt-repository universe
然后,使用命令安装.NET Core SDK:
$sudo apt-get install apt-transport-https $sudo apt-get update $sudo apt-get install dotnet-sdk-3.1
安装ASP.NET核心运行时:
$sudo apt-get install aspnetcore-runtime-3.1
安装.NET核心运行时:
$sudo apt-get install dotnet-runtime-3.1
在Ubuntu 16.04 LTS上:
使用命令注册Microsoft密钥和.NET存储库:
$wget -q https://packages.microsoft.com/config/ubuntu/16.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb $sudo dpkg -i packages-microsoft-prod.deb
然后,安装.NET Core SDK:
$sudo apt-get install apt-transport-https $sudo apt-get update $sudo apt-get install dotnet-sdk-3.1
安装ASP.NET核心运行时:
$sudo apt-get install aspnetcore-runtime-3.1
安装.NET核心运行时:
$sudo apt-get install dotnet-runtime-3.1
对于其他分布,请参阅官方安装部分。
创建第一个应用程序
我们在Linux框中成功安装了.NET Core SDK。
现在是时候使用dotnet创建我们的第一个应用程序了。
出于本教程的目的,我将创建一个名为"theitroadApp"的新应用程序。
为此,只需运行以下命令:
$dotnet new console -o theitroadApp
示例输出:
Welcome to .NET Core! -------------------- Learn more about .NET Core: https://aka.ms/dotnet-docs Use 'dotnet --help' to see available commands or visit: https://aka.ms/dotnet-cli-docs Telemetry -------- The .NET Core tools collect usage data in order to help us improve your experience. The data is anonymous and doesn't include command-line arguments. The data is collected by Microsoft and shared with the community. You can opt-out of telemetry by setting the DOTNET_CLI_TELEMETRY_OPTOUT environment variable to '1' or 'true' using your favorite shell. Read more about .NET Core CLI Tools telemetry: https://aka.ms/dotnet-cli-telemetry ASP.NET Core ----------- Successfully installed the ASP.NET Core HTTPS Development Certificate. To trust the certificate run 'dotnet dev-certs https --trust' (Windows and macOS only). For establishing trust on other platforms refer to the platform specific documentation. For more information on configuring HTTPS see https://go.microsoft.com/fwlink/?linkid=848054. Getting ready... The template "Console Application" was created successfully. Processing post-creation actions... Running 'dotnet restore' on theitroadApp/theitroadApp.csproj... Restoring packages for /home/sk/theitroadApp/theitroadApp.csproj... Generating MSBuild file /home/sk/theitroadApp/obj/theitroadApp.csproj.nuget.g.props. Generating MSBuild file /home/sk/theitroadApp/obj/theitroadApp.csproj.nuget.g.targets. Restore completed in 894.27 ms for /home/sk/theitroadApp/theitroadApp.csproj. Restore succeeded.
正如我们在上面的输出中看到的,所以.NET已创建了类型控制台的新应用程序。
参数-o创建名为"theitroadapp"的目录,其中我们将应用程序数据与所有必要的文件存储。
让我们切换到theitroadApp目录,看看有什么。
$cd theitroadApp/ $ls obj theitroadApp.csproj Program.cs
正如我们,有三个名为theitroadApp.csproj和程序和一个名为obj的目录。
默认情况下,Program.CS文件将包含在控制台中运行"Hello World"程序的代码。
让我们看看代码。
$cat Program.cs using System; namespace theitroadApp { class Program { static void Main(string[] args) { Console.WriteLine("Hello World!"); } } }
要运行新创建的应用程序,只需运行以下命令:
$dotnet run Hello World!
现在,我们可以在Program.CS文件中编写代码并如上所示运行它。
或者,我们可以使用命令创建一个新目录,例如mycode:
$mkdir ~/.mycode
$cd mycode/
...并通过运行以下命令使其作为新的开发环境:
$dotnet new console
示例输出:
The template "Console Application" was created successfully. Processing post-creation actions... Running 'dotnet restore' on /home/sk/mycode/mycode.csproj... Restoring packages for /home/sk/mycode/mycode.csproj... Generating MSBuild file /home/sk/mycode/obj/mycode.csproj.nuget.g.props. Generating MSBuild file /home/sk/mycode/obj/mycode.csproj.nuget.g.targets. Restore completed in 331.87 ms for /home/sk/mycode/mycode.csproj. Restore succeeded.
上面的命令将创建名为mycode.csproj和程序和一个名为obj的一个目录的文件。
在我们喜欢的编辑器中打开Program.CS文件,用自己的代码删除或者修改现有的"Hello World"代码。
编写代码后,保存和关闭程序文件并使用命令运行应用程序:
$dotnet run
要检查已安装的.NET Core SDK版本,只需运行:
$dotnet --version 2.2.101
要获得帮助,请运行:
$dotnet --help
获取Microsoft Visual Studio代码编辑器
要编写代码,我们可以使用我们喜欢的最喜欢的编辑。
Microsoft还拥有自己的编辑器,名为"Microsoft Visual Studio代码",支持.NET支持。
它是一个开源,轻量级和强大的源代码编辑器。
它配备了对JavaScript,Typescript和Node.js的内置支持,并具有富有的其他语言的扩展生态系统(例如C++,C#,Python,PHP,Go)和运行时(例如.NET和Unity)。
它是一个跨平台代码编辑器,因此我们可以在Microsoft Windows,GNU/Linux和Mac OS X中使用它,如果我们有兴趣,我们可以使用它。
要知道如何在Linux上安装和使用它,请参阅以下教程。
- 在Linux中安装Microsoft Visual Studio代码
此页面使用Visual Studio代码编辑器具有一些基本教程.NET核心和.NET Core SDK工具。
去检查他们以了解更多信息。
Telemetry
默认情况下,.NET Core SDK将使用名为"Telemetry"的功能收集使用数据。
收集的数据是匿名的,并根据Creative Commons归属许可下的开发团队和社区分享。
因此,.NET团队将了解如何使用工具并决定如何随时间提高。
如果我们不想共享使用信息,可以通过使用我们喜欢的shell将DotNet_Cli_Telemetry_optout环境变量设置为"1"或者"True"来简单地选择退出遥测Telemetry。