11
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Ubuntu18.04, C#】UbuntuでC#プログラムをコンパイル・実行したい

Last updated at Posted at 2019-09-15

#目的
WindowsPCでC#プログラムを作成したが、それをUbuntuの仮想マシンで実行したくなった。
さらにソースコードにちょこちょこ変更を加えながら実行したくもなった。
よってC#プログラムを仮想マシン上でコンパイル・実行だけできるような環境を作ろうとした。

#前提
・Windows10のPCでUbuntu18.04の仮想マシンを作成し、そこで作業

#環境構築手順
###やることの概略
「Mono」という、異なるプラットフォームで動く.NETアプリを作るためのソフトをUbuntuにインストールする。

###手順
1.Ubuntuにログインする。

2.Mono公式の「Download」のページのLinuxタブを開いたところに実行すべきコマンドが記載されているので、ぞの通りに実行する。
記事執筆時点でのコマンドは以下の通りであった。

sudo apt install gnupg ca-certificates
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb https://download.mono-project.com/repo/ubuntu stable-bionic main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
sudo apt update

 

サイトはこんな感じになっている↓
image.png

 
で、自身は1行目の「sudo apt install gnupg ca-certificates」で早速こけた。

root@ubuntu-VirtualBox:/home/ubuntu# apt install gnupg ca-certificate
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package ca-certificate

 
この場合は、「apt install gnupg ca-certificate」する前に「apt-get update」する必要があるのだそう
askubuntuの:"Ubuntu Docker Container update-ca-certificates: command not found"より)。
で、その通りにやってみたらうまくいった↓

コマンド実行し直し・・・

sudo apt-get update
sudo apt install gnupg ca-certificates

結果は?

root@ubuntu-VirtualBox:/home/ubuntu# apt install gnupg ca-certificates
Reading package lists... Done
Building dependency tree       
Reading state information... Done
ca-certificates is already the newest version (20180409).
gnupg is already the newest version (2.2.4-1ubuntu1.2).
0 upgraded, 0 newly installed, 0 to remove and 15 not upgraded.

 

3.以下のコマンドを実行してMonoをインストール。
しばらくログがだ~っと出力されて、いつの間にかインストールが終わる。

sudo apt install mono-devel

 

4.monoコマンドが使えるようになっているか確認するため、「mono --version」を実行する。
以下のような感じに出力されればOK。
image.png

#コンパイル・実行の動作確認
適当な場所に簡単なC#ソースコードを作成して試してみる。
今回は「/home/[ユーザ名]/」配下に「Sources」ディレクトリを作り、その中にソースコードを置くことにした。

1.ディレクトリを移動してからviコマンドで新規ファイルを.cs拡張子で作り・・・

cd /home/[ユーザ名]/Sources
vi Hello.cs

 

2.手抜きコードを書いて保存して閉じる

using System;

namespace Hello
{
    class HelloWorld
    {
        static void Main()
        {
            Console.WriteLine("Hello World!!");
            Console.ReadLine();
        }
    }
}

 
3.以下のコマンドを実行してソースコードをコンパイルする。

mcs Hello.cs

コマンド実行後に現在のディレクトリを見てみると、新たにソースコードのファイル名と同名のexeファイルが作られていることがわかる。
image.png

 
4.そしていよいよexeファイルを実行する

mono Hello.exe

ざわざわ・・・
image.png

((゚∀゚))

#参考にさせて頂いたサイト

Monoの公式サイト
LinuxでもC#プログラミング(導入編)

#追記(2020/01/25)
「コンパイル・実行の動作確認」の手順3に誤りがある旨をご指摘頂きましたので、修正しました。
実行コマンドが"msc"となっていましたが、正しくは"mcs"です。
これまで読んでいただいた方にはご迷惑をおかけしました。

11
7
2

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
11
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?