LoginSignup
3
0

.NET SDK を Ubuntu にインストールして Hello World する

Last updated at Posted at 2023-03-23

.NET SDK を Ubuntu にインストールして Hello World する

こんにちは、@studio_meowtoon です。今回は、WSL の Ubuntu 22.04 に .NET SDK をインストールする手順と、Hello World を出力する方法を紹介します。
dotnet_on_ubuntu.png

目的

Windows 11 の Linux でクラウド開発します。

こちらから記事の一覧がご覧いただけます。

実現すること

  • Windows 11 の WSL Ubuntu 22.04 に .NET SDK をインストールして、C# プログラムをビルド、実行するシンプルな開発環境を構築します。

技術トピック

.NET とは?

こちらを展開してご覧いただけます。

Microsoft .NET

.NET は、マイクロソフトによって開発されたオープンソースのクロスプラットフォーム開発フレームワークです。

キーワード 内容
クロスプラットフォーム対応 .NET は、Windows、macOS、Linux、Android、iOS など、複数のプラットフォームで実行されるように設計されています。これにより、同じコードを複数のプラットフォームで共有できます。
豊富なライブラリ .NET には、豊富なライブラリが含まれています。これにより、開発者は、簡単にデータベースやネットワーク、GUIなどの機能を組み込むことができます。
マルチ言語サポート .NET は、複数のプログラミング言語 (C#、F#、Visual Basic など) をサポートしています。開発者は、自分の好きな言語でアプリケーションを開発できます。
高速性 .NET は、JIT コンパイラによって実行されるため、高速に動作します。また、メモリ管理が自動的に行われるため、開発者はメモリ管理に関する問題を心配する必要がありません。
セキュリティ .NET には、セキュリティに関する多数の機能が含まれています。たとえば、コードアクセスセキュリティ (CAS) があり、アプリケーションに対する不正なアクセスを防止することができます。

これらの特徴とメリットにより、.NET は、クロスプラットフォーム開発において人気のあるフレームワークの一つとなっています。

開発環境

  • Windows 11 Home 22H2 を使用しています。

WSL の Ubuntu を操作していきますので macOS の方も参考にして頂けます。

WSL (Microsoft Store アプリ版) ※ こちらの関連記事からインストール方法をご確認いただけます

> wsl --version
WSL バージョン: 1.0.3.0
カーネル バージョン: 5.15.79.1
WSLg バージョン: 1.0.47

Ubuntu ※ こちらの関連記事からインストール方法をご確認いただけます

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.1 LTS
Release:        22.04

この記事では基本的に Ubuntu のターミナルで操作を行います。Vim を使用してコピペする方法を初めて学ぶ人のために、以下の記事で手順を紹介しています。ぜひ挑戦してみてください。

.NET SDK をインストール

Ubuntu 22.04 に .NET をインストールする場合、パッケージリポジトリの追加は必要ありません。しかし、Microsoft から提供される最新のパッケージが必要になるケースがあります。この記事では Ubuntu リポジトリの .NET パッケージを無視するようにパッケージマネージャーを構成します。ご注意ください!

既存の .NET パッケージを完全に削除します。

$ sudo apt remove 'dotnet*' 'aspnet*' 'netstandard*'
$ sudo apt purge 'dotnet*' 'aspnet*' 'netstandard*'
$ sudo rm -fr /usr/share/dotnet

/etc/apt/preferences ファイルを作成します。

$ sudo vim /etc/apt/preferences

ファイルの内容

preferences
Package: dotnet* aspnet* netstandard*
Pin: origin "archive.ubuntu.com"
Pin-Priority: -10

spnetcore、または netstandard や dotnet で始まるパッケージが Ubuntu リポジトリからソース化されなくなります。

Microsoft のパッケージリポジトリを追加します。

$ repo_version=$(if command -v lsb_release &> /dev/null; then lsb_release -r -s; \
    else grep -oP '(?<=^VERSION_ID=).+' /etc/os-release | tr -d '"'; fi)
$ wget https://packages.microsoft.com/config/ubuntu/$repo_version/packages-microsoft-prod.deb \
    -O packages-microsoft-prod.deb
$ sudo dpkg -i packages-microsoft-prod.deb
$ rm packages-microsoft-prod.deb

インストールします。

$ sudo apt update
$ sudo apt install dotnet-sdk-7.0

次のパッケージが新たにインストールされます。
aspnetcore-runtime-7.0 dotnet-runtime-7.0 dotnet-sdk-7.0

バージョンを確認します。

$ dotnet --list-sdks
7.0.202 [/usr/share/dotnet/sdk]
$ dotnet --version
7.0.202

情報を表示します。

$ dotnet --info
.NET SDK:
 Version:   7.0.202
 Commit:    6c74320bc3

ランタイム環境:
 OS Name:     ubuntu
 OS Version:  22.04
 OS Platform: Linux
 RID:         ubuntu.22.04-x64
 Base Path:   /usr/share/dotnet/sdk/7.0.202/

Host:
  Version:      7.0.4
  Architecture: x64
  Commit:       0a396acafe

.NET SDKs installed:
  7.0.202 [/usr/share/dotnet/sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 7.0.4 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 7.0.4 [/usr/share/dotnet/shared/Microsoft.NETCore.App]

Other architectures found:
  None

Environment variables:
  Not set

global.json file:
  Not found

Learn more:
  https://aka.ms/dotnet/info

Download .NET:
  https://aka.ms/dotnet/download

Hello World を表示する手順

プロジェクトルートフォルダに移動します。
※ ~/tmp をプロジェクトルートフォルダとします。

$ cd ~/tmp

コンソールアプリを作成します。
※ HelloApp がアプリ名です。

$ dotnet new console -o HelloApp -f net7.0

コンソールアプリをビルド・実行します。

$ cd ~/tmp/HelloApp
$ dotnet run
Hello, World!

ターミナルに "Hello, World!" が表示されました。

コンソールアプリの内容確認

プロジェクト構成を確認します。

$ tree -I 'bin|obj'
.
├── HelloApp.csproj
└── Program.cs

プロジェクトファイルを確認します。

$ cat HelloApp.csproj
HelloApp.csproj
<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net7.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>

</Project>

プログラムを確認します。

$ cat Program.cs
Program.cs
// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");

.NET 5.0 まではこうでした。

Program.cs ※ .NET 5.0
using System;
namespace MyApp {
    class Program {
        static void Main(string[] args) {
            Console.WriteLine("Hello, World!");
        }
    }
}

まとめ

  • Ubuntu に .NET SDK をインストールして、シンプルな開発環境を構築することが出来ました。

実際の開発では、軽量なテキストエディタである VS Code や、IDE (統合開発環境) を使用して、.NET プログラムを開発することが一般的です。しかし、dotnet コマンドでビルドしたり、実行したりすることも、.NET 開発環境を理解する上で役立ちます。

どうでしたか? Window 11 の WSL Ubuntu に、.NET の開発環境を手軽に構築することができます。ぜひお試しください。今後も .NET の開発環境などを紹介していきますので、お楽しみに。それでは失礼します。

推奨コンテンツ

参考資料

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0