Windowsで開発した.Net Core 実行ファイルをLinuxで動かしたい

この記事で説明している事

この記事では、.NET Coreを利用し、コンソールアプリを作成して、Linux上でフレームワーク依存の実行可能ファイルを実行しています。

.Net Coreはクロスプラットフォーム

クロスプラットフォームで実行する際に

1.自己完結型

2.フレームワーク依存型

の2つの形式があります。

自己完結型にすると、そのアプリに.NETランタイムが含められます。ユーザは、.NETフレームワークのインストールをすることなく実行が可能です。

クロスプラットフォームバイナリ作成

dllファイルの形式で、フレームワーク依存として発行すると、クロスプラットフォームバイナリが作成されます。

Linux上に filename.dllを置くと

dotnet <filename.dll> 

というコマンドで実行が可能です。

コンソールアプリの実行について

VisualStudio2017

.Net Core 2.1

でコンソールアプリを作成してみました。

    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
            Console.ReadKey();
        }
    }

コンパイルするとdllファイルができています。特に発行形式を意図せずdebugモードで実行した際にできた実行ファイルです。

これをLinux上にコピーし、実行します。

$ dotnet ConsoleApp1.dll
Hello World!

実行できました。

この実行方法は、フレームワーク依存のクロスプラットフォームバイナリという位置づけで、予めLinuxに.NET Coreをインストールしておく必要があります。

詳しくは、こちらから

まとめ

.NET Core のフレームワーク依存のクロスプラットフォームバイナリを実行する方法は、

dotnet <filename.dll> 

で実行できます。