Skip to content

Compatibility ja JP

ArchiBot edited this page May 28, 2026 · 50 revisions

互換性

ASF は .NET プラットフォーム上で動作する C# アプリケーションです。 これは、ASF が CPU 上で動作する 機械語 に直接コンパイルされるのではなく、実行には CIL 互換ランタイムを必要とする CIL にコンパイルされることを意味します。

このアプローチには非常に多くの利点があります。CIL はプラットフォームに依存しないため、ASF は多くの利用可能な OS、特に Windows、Linux、macOS 上でネイティブに動作できます。 エミュレーションが不要なだけでなく、CPU SSE 命令など、プラットフォーム関連およびハードウェア関連のすべての最適化にも対応しています。 そのおかげで、ASF は優れたパフォーマンスと最適化を実現しながら、完全な互換性と信頼性も提供できます。

これは、ASF に特定の OS 要件がないことも意味します。必要なのは、その OS 上で動作するランタイムであり、OS 自体ではないためです。 そのランタイムが ASF のコードを正しく実行できる限り、基盤となる OS が Windows、Linux、macOS、BSD、Sony Playstation 4、Nintendo Wii、あるいはトースターであっても問題ありません。.NET がその環境に対応している限り、ASF もその環境で動作します(generic バリアント)。

ただし、ASF をどこで実行する場合でも、対象のプラットフォームに .NET の前提条件 がインストールされていることを確認する必要があります。 これらはランタイムが正しく機能するために必要な低レベルライブラリであり、そもそも ASF が動作するために絶対に欠かせない中核的なものです。 すでにその一部(あるいはすべて)がインストールされている可能性も十分にあります。


ASF パッケージ

ASF には主に 2 種類があります。generic パッケージと OS 固有パッケージです。 機能面では、どちらのパッケージもまったく同じで、どちらも自動更新に対応しています。 両者の唯一の違いは、ASF の generic パッケージに、それを動作させるための OS-specific ランタイムも含まれているかどうかです。


Generic

Generic パッケージは、特定のプラットフォームに依存しないビルドであり、マシン固有のコードを含みません。 このセットアップでは、OS に適切なバージョンの .NET ランタイムがすでにインストールされている必要があります。 依存関係を最新の状態に保つのがどれほど面倒かは、誰もが知っています。そのため、このパッケージは主に、すでに .NET を使用している人向けに用意されています。ASF のためだけにランタイムを重複して用意するのではなく、すでにインストール済みのものを活用できる場合に使うものです。 Generic パッケージでは、動作する .NET ランタイムの実装を入手できる限り、OS 固有の ASF ビルドが存在するかどうかに関係なく、ASF をどこでも実行できます。

ASF を動作させたいだけで .NET の技術的な詳細まで掘り下げるつもりがない、一般ユーザーや上級ユーザーであれば、generic 版の使用はおすすめしません。 言い換えると、これが何なのか分かっている場合は使用しても構いません。そうでない場合は、下記で説明する OS 固有パッケージを使用する方がはるかに適しています。


OS 専用

OS 専用パッケージには、generic パッケージに含まれるマネージドコードに加えて、対象プラットフォーム向けのネイティブコードも含まれています。 言い換えると、OS 専用パッケージには適切な .NET ランタイムがすでに含まれているため、面倒なインストール作業をすべて省略して、ASF を直接起動できます。 OS 専用パッケージは、その名前から分かるとおり OS 専用であり、各 OS にはそれぞれ専用のバージョンが必要です。たとえば、Windows では PE32+ ArchiSteamFarm.exe バイナリが必要ですが、Linux では Unix ELF ArchiSteamFarm バイナリで動作します。 ご存じかもしれませんが、この 2 つの形式には互換性がありません。

ASF は現在、以下の OS 専用バリアントで利用できます:

  • linux-arm は、glibc 2.35/musl 1.2.3 以降を備えた 32 ビット ARM ベース(ARMv7+)の GNU/Linux OS で動作します。 このバリアントは Raspberry Pi 2(およびそれ以降)などのプラットフォームを対象としています。Raspberry Pi 0 & 1 に見られる ARMv6 など、より古い ARM アーキテクチャでは動作しません。また、必要な GNU/Linux 環境を実装していない OS(Android など)でも動作しません。
  • linux-arm64 は 64-bit ARMベース(ARMv8+) GNU/Linux OS glibc 2.27/musl 1.2.3 以降で動作します。 このバリアントは Raspberry Pi 3(およびそれ以降)などのプラットフォームを対象としています。必要な 64 ビットライブラリを利用できない 32 ビット OS(32 ビット Raspberry Pi OS など)では動作しません。また、必要な GNU/Linux 環境を実装していない OS(Android など)でも動作しません。
  • linux-x64 は、glibc 2.27/musl 1.2.3 以降を備えた 64 ビット GNU/Linux OS で動作します。
  • osx-arm64 は 64 ビット ARMベース(Apple シリコン) macOS OS バージョン 13 以降で動作します。
  • osx-x64 は、macOS 15 以降の 64 ビット OS で動作します。
  • win-arm64 は、バージョン 10、11 以降の最新状態に更新された 64 ビット ARM ベース(ARMv8+)の Windows OS で動作します。
  • win-x64 は、最新状態に更新された Windows 10、11、Server 2016+ 以降の 64 ビット OS で動作します。

もちろん、お使いの OS とアーキテクチャの組み合わせに対応する OS 専用パッケージがない場合でも、適切な .NET ランタイムを自分でインストールして、Generic 版の ASF を実行することはいつでも可能です。そもそも Generic 版が存在する主な理由もそこにあります。 Generic ASF ビルドはプラットフォームに依存せず、動作する .NET ランタイムがある任意のプラットフォームで実行できます。 これは重要な点です。ASF が必要とするのは .NET ランタイムであり、特定の OS やアーキテクチャではありません。 たとえば、32 ビット Windows を使用している場合、専用の win-x86 ASF バージョンがなくても、win-x86 版の .NET SDK をインストールすれば、Generic 版の ASF を問題なく実行できます。 存在し、誰かに使われているすべての OS とアーキテクチャの組み合わせを対象にすることはできないため、どこかで線引きする必要があります。 x86 はその線引きの良い例です。少なくとも 2004 年以降、時代遅れのアーキテクチャとなっているためです。

.NET 10.0 でサポートされているすべてのプラットフォームと OS の完全な一覧については、**リリースノート**を参照してください。


ランタイム要件

OS 専用パッケージを使用している場合、ランタイム要件について心配する必要はありません。.NET の前提条件がインストールされ、最新の状態に保たれている限り、ASF には常に、正常に動作するために必要な最新のランタイムが同梱されているためです。 言い換えると、OS 専用ビルドではネイティブな OS 依存関係(前提条件)のみが必要で、それ以外は不要なため、.NET ランタイムや SDK をインストールする必要はありません

ただし、generic ASF パッケージを実行しようとしている場合は、お使いの .NET ランタイムが ASF に必要なプラットフォームをサポートしていることを確認する必要があります。

プログラムとしての ASF は現在 .NET 10.0net10.0)を対象にしていますが、将来的にはより新しいプラットフォームを対象にする可能性があります。 net10.0 は 10.0.100 SDK(10.0.0 ランタイム)以降でサポートされています。ただし、ASF はコンパイル時点で最新のランタイムを優先する場合があるため、お使いのマシンで 最新の SDK(または少なくともランタイム)を利用できるようにしておく必要があります。 お使いのランタイムが、コンパイル時に指定された最小サポートバージョンより古い場合、Generic ASF バリアントは起動を拒否することがあります。

迷った場合は、GitHub 上で ASF リリースをコンパイルおよびデプロイするために、私たちの 継続的インテグレーション が何を使用しているか確認してください。 .NET 検証ステップの一部として、各ビルドで dotnet --info の出力を確認できます。

Clone this wiki locally