本ページは広告が含まれています。気になる広告をクリック頂けますと、サーバ運営費になります(^^
環境
VisualStudio 2017
C#
Ubuntu 18.04.1 LTS (GNU/Linux 4.15.0-43-generic x86_64)
cat /etc/debian_version
buster/sid → これUbuntuが動いているVMです。WebArenaを借りています。
プロジェクト作成
まずはWindows上でプログラムを作成します。今回はコンソールアプリで試してみます。
.NET Coreのコンソールアプリを作成してみます。
コード
作成すると、Consoleに Hello Worldが表示されるアプリが作成されています。
Console.ReadKey();
だけ付け加えてあげます。でないとデバッグ起動したときにコンソールが起動したらすぐにとじてしまいます。
using System;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
Console.ReadKey();
}
}
}
デバックすると、コンソールが立ち上がり、Hello World!が表示されます。
また、コマンドプロンプトから同様の事が可能です。
ConsoleApp1.csproj
Program.cs
があるディレクトリに移動し
dotnet restore
dotnet run
で実行されます。
C:\Users\User\source\repos\test\ConsoleApp1\ConsoleApp1>dotnet restore
C:\Users\User\source\repos\test\ConsoleApp1\ConsoleApp1\ConsoleApp1.csproj の復元が 31.78 ms で完了しました。
C:\Users\User\source\repos\test\ConsoleApp1\ConsoleApp1>dotnet run
Hello World!
Debian に .Net Coreをインストールする
Debian に .NET SDK または .NET ランタイムをインストールする
Debian10の場合
実際の環境はUbuntu 18.04.1 LTS (GNU/Linux 4.15.0-43-generic x86_64)です。最初stretchが入っているつもりで設定していったのですが、実はDebian10のbusterが入っていました。だけど、以下の手順で動いたのは間違いありません。
信頼されたキーの一覧に Microsoft パッケージ署名キーを追加し、パッケージ リポジトリを追加
wget -O - https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.asc.gpg
sudo mv microsoft.asc.gpg /etc/apt/trusted.gpg.d/
wget 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 -y apt-transport-https && \
sudo apt-get update && \
sudo apt-get install -y dotnet-sdk-5.0
Debian上で実行する
ConsoleApp1.csproj
Program.cs
をLinux環境にコピーして実行してみました。
この状態では、frameworkの違いにより実行できないようです。
/home/ubuntu/dotnettest# dotnet restore
Determining projects to restore...
Restored /home/ubuntu/dotnettest/ConsoleApp1.csproj (in 260 ms).
root@webarena01:/home/ubuntu/dotnettest# dotnet run
It was not possible to find any compatible framework version
The framework 'Microsoft.NETCore.App', version '2.1.0' was not found.
- The following frameworks were found:
5.0.6 at [/usr/share/dotnet/shared/Microsoft.NETCore.App]
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.NETCore.App&framework_version=2.1.0&arch=x64&rid=ubuntu.18.04-x64
apt-cache search .net
で探してみると、いっぱい出てくる状態になりました。その中で、今回怒られているのは
version ‘2.1.0’ was not found
なので、
dotnet-sdk-2.1 – Microsoft .NET Core SDK 2.1.816
をインストールしてみる事にしました。
すると、無事に Hello World! の文字列が表示されました。
home/ubuntu/dotnettest# dotnet restore
Determining projects to restore...
Restored /home/ubuntu/dotnettest/ConsoleApp1.csproj (in 395 ms).
/home/ubuntu/dotnettest# dotnet run
Hello World!
まとめ
.Net Coreはオープンソースで開発されているとの事。しかも、.Net 5からは、FrameWorkという言葉が抜けて、.Net Coreと統合されるそうです。
一つアプリケーションを作れば、他のOSのデバイスでも動いてくれる。.NETを実装したフリーでオープンなクロスプラットフォームと表現するそうです。
あまり開発に携わっていない私でも、何とか動かせそうで、ちょっとワクワクしますね。