2018年11月3日土曜日

C#(.NET Framework)で作ったコンソールアプリを .NET Core を使ってLinuxで動かしてみる!【前編】


こんにちは。よっしーです。


さて今回は、タイトルにもある通り、

C#(.NET Framework)で作ったコンソールアプリをLinux上で動かす。

ということをご紹介したいと思います。


.NET Framework って Microsoft が提供してるから、

.NET Framework = Windows というイメージがありますが、

最近ではLinux上でも動作することが出来るんです。


さっそく Visual Studio 2017 Community でチャレンジしてみましょう。


プロジェクトの作成画面から以下を選択します。
 → Visual C#
  → .NET Core
   → コンソール アプリ(.NET Core)


実行すると 「Hello World!」 と出力されるテンプレートが作成されます。


今回は、.NET Framework が Linux上で動作するかを確かめたいので、
Systemのクラスライブラリを使って簡単なサンプルを組んでみました。

<内容>
・カレントディレクトリパスを取得
・コマンドライン引数とカレントディレクトリ名をコンソール出力
・カレントディレクトリにtest.txtを作成し、コマンドライン引数の内容をそのファイルへ出力


あとは、適当に Visual Studio 上から実行する際のコマンドライン引数と、
作業するディレクトリ(カレントディレクトリ)を情報として設定します。


Visual Studio上で実行してみましょう。もちろんWindows上で動作します。

動作結果として、
設定したコマンドライン引数とカレントディレクトリパスがターミナル上に出力され、
出力された test.txt にはコマンドライン引数の内容が出力されます。

まぁ、実装通りですね。。。


下準備はここまでです。

で、このプログラムを Linux 上で動作させるのが今回の目的となりますので、

次に進めていきましょう。


ビルドメニューから、○○○○(プロジェクト名) の発行 というのがあるので選択します。


次の画面に進むので、続けて 発行 を選択します。


すると、対象のディレクトリに以下のような生成物が出力されます。


DLLファイルが出力されていることがわかりますが、これが Linux上 で動作する
プログラムファイルとなります。

DLLなのに実行ファイル?と、Windows脳だとちょっとシックリこないのですが、
Linux で動作させる場合は、dotnet という実行ファイルに このDLLファイルを
指定して動作させるので、そんなに違和感は感じなくなります。

次は Linux 側での操作となりますが、ちょっと説明も長くなってきたので、
今回はここまでとさせてもらいます。

ではまた~。

0 件のコメント:

コメントを投稿