Windowsのシステム開発でおなじみの.NET Framework(ネットフレームワーク)。 社内の古いWindowsサーバーをLinuxへ移行する際、以下のような疑問を持つインフラエンジニアやデポッパーは非常に多いです。
「Linuxサーバーに、Windowsと同じように .NET Framework をインストールすることはできるの?」
今回は、この疑問に対する結論と、Linux上で.NETアプリケーションを動かすための現実的なアプローチを徹底解説します!
結論:基本的には「NO」だが、別の選択肢がある
ストレートに回答すると、マイクロソフト公式の「.NET Framework」そのものをLinuxにインストールすることはできません。
なぜなら、.NET FrameworkはWindows OSの機能(Win32 APIやレジストリ、IISなど)に密接に依存して作られているためです。
しかし、「Linux上で.NETアプリケーションを動かす」という目的を達成するための方法は、主に以下の2つ存在します。
-
本命: 後継の「.NET(旧:.NET Core)」を使う(推奨)
-
代替: 互換レイヤーである「Mono」を使う
それぞれの詳細を見ていきましょう。
選択肢①:モダンな「.NET」(旧 .NET Core)を使う【推奨】
現在、マイクロソフトは従来の「.NET Framework」の開発を終了(保守のみ)し、オープンソースでクロスプラットフォームに対応した「.NET」(バージョン5、6、7、8、9〜)に完全移行しています。
この新しい「.NET」であれば、Linuxに公式パッケージとしてインストールすることが可能です!
-
対応OS: RHEL(Red Hat)、CentOS、Ubuntu、Debian、Alpine Linuxなど主要なディストリビューションに対応。
-
特徴:
-
マイクロソフトが公式にLinux用インストーラーを提供している。
-
非常に軽量で高速、コンテナ化(Docker)との相性も抜群。
-
⚠️ 注意点:アプリの「移植(ポーティング)」が必要
既存の .NET Framework(例: v4.8など)で書かれたシステムをそのままLinuxに持ってきても、新しい .NET 上では動きません。 コード内のWindows固有機能(WCF、Web Forms、WinForms/WPFなどのGUI)をWeb APIや別のフレームワークに書き換える移植作業が必要になります。
選択肢②:オープンソースの互換環境「Mono」を使う
「どうしても古い .NET Framework 用に作られたC#プログラム(.exeや.dll)を、ソースコードの書き換えなしでLinuxで動かしたい!」という場合の最後の砦が、Mono(モノ)というオープンソースプロジェクトです。
Monoは、.NET Frameworkの互換環境をLinuxやmacOS向けに実装したものです。
-
特徴:
-
Linux上にMonoをインストールすれば、Windows用にビルドされた一部の
.exeファイルをそのままmono app.exeコマンドで実行できる。
-
-
デメリット・注意点:
-
完全な互換性はない: Windows APIに深く依存したライブラリや、一部の複雑な機能はエラーで動きません。
-
パフォーマンスと将来性: 現在、開発コミュニティの主流は公式の「.NET」に移行しており、Mono自体の新規機能追加はほぼ行われていません。積極的な採用は避けるべきです。
-
Linuxに最新の「.NET」をインストールする手順(Ubuntuの例)
もしLinuxで新しくC#開発を行ったり、移行を検討したりする場合は、マイクロソフト公式の「.NET」をインストールしましょう。Ubuntuであれば、コマンド数発で簡単に導入できます。
1. .NET SDK(開発・実行用)のインストール
Bash
sudo apt-get update && \
sudo apt-get install -y dotnet-sdk-8.0
2. インストールの確認
Bash
dotnet --version
バージョン番号(例: 8.0.xxx)が表示されれば、Linux上でC#プログラムをビルド・実行する準備は完了です!
まとめ
-
Windows専用の「.NET Framework」自体はLinuxに入らない。
-
どうしても古いバイナリを動かしたい場合は 「Mono」 という互換環境がある(ただし、動作制限あり)。
-
今後のシステム開発や移行では、Linux公式サポートの「.NET(旧 .NET Core)」へ移行・開発するのが大正解。
Linuxサーバーはランセンスコストを抑えられ、クラウドとの親和性も高いため、C#プログラムを最新の「.NET」にアップデートしてLinuxで動かすメリットは非常に大きいです。ぜひこの機会にモダンな.NETへの移行を検討してみてはいかがでしょうか?
参考
Rocky Linux9.8でdotnet-sdkを検索
Last metadata expiration check: 2:12:04 ago on Thu 16 Jul 2026 12:26:52 PM JST. Available Packages Name : dotnet-sdk-10.0 Version : 10.0.109 Release : 1.el9_8 Architecture : x86_64 Size : 96 M Source : dotnet10.0-10.0.109-1.el9_8.src.rpm Repository : appstream Summary : .NET 10.0 Software Development Kit URL : https://github.com/dotnet/ License : 0BSD AND Apache-2.0 AND (Apache-2.0 WITH LLVM-exception) AND APSL -2.0 AND BSD-2-Clause AND BSD-3-Clause AND BSD-4-Clause AND BSL-1.0 AND bzip2-1. 0.6 AND CC0-1.0 AND CC-BY-3.0 AND CC-BY-4.0 AND CC-PDDC AND CNRI-Python AND EPL- 1.0 AND GPL-2.0-only AND (GPL-2.0-only WITH GCC-exception-2.0) AND GPL-2.0-or-la ter AND GPL-3.0-only AND ICU AND ISC AND LGPL-2.1-only AND LGPL-2.1-or-later AND LicenseRef-Fedora-Public-Domain AND LicenseRef-ISO-8879 AND MIT AND MIT-Wu AND MS-PL AND MS-RL AND NCSA AND OFL-1.1 AND OpenSSL AND Unicode-DFS-2015 AND Unicod e-DFS-2016 AND W3C-19980720 AND X11 AND Zlib Description : The .NET SDK is a collection of command line applications to : create, build, publish and run .NET applications. : : .NET is a fast, lightweight and modular platform for creating
【参考リンク】
