Skip to content

Compatibility zh TW

ArchiBot edited this page Sep 22, 2022 · 79 revisions

相容性

ASF是一個在.NET Core平台上執行的C#應用程式。 這代表ASF並不是被編譯成可供CPU直接執行的​機器語言​,而是被編譯成​通用中間語言​(CIL),一種需要對應的執行環境才能執行的語言。

這種方法具有巨大的優勢,因為CIL獨立於平台,這就是為什麼ASF能夠天然地在許多作業系統上執行的原因,特別是Windows、Linux與macOS。 不僅不需要模擬,同時也支援所有平台相關及硬體相關的優化,例如CPU SSE指令。 因此,ASF在表現卓越的效能及優化時,同時仍能提供完美的相容性與可靠性。

這也代表執行ASF​沒有特定的作業系統需求​,因為它需要的只是執行於作業系統上的​執行環境​,而非作業系統本身。 只要在執行期間正確執行ASF程式碼,底層的作業系統無論是Windows、Linux、macOS、BSD、Sony Playstation 4、Nintendo Wii或是您的烤麵包機上都無所謂,只要有相應的​.NET​,就能執行​ASF​。

然而,不論您想要在哪個平台上執行ASF,您都需要確保該平台安裝了​.NET需求套件​。 這些都是確保執行環境功能正常所需的底層函式庫,也是ASF第一時間運作的絕對核心。 很有可能您已安裝了其中的一些(甚至全部)。


ASF 封裝套件

ASF有兩種封裝方式:通用(Generic)套件與特定作業系統(OS-specific)套件。 從功能上來說,這兩種套件是完全相同的,都能夠自動進行更新。 唯一的區別就是​Generic​套件中,不包含能使ASF直接執行適用於您的作業系統的執行環境。


Generic

Generic套件與平台無關,所以它不包含任何給特定設備的程式碼。 這個版本需要您在作業系統中已安裝​適合版本​的.NET執行環境。 我們都知道讓相依套件一直保持在最新是多麼麻煩的一件事,因此這個套件主要是為那些​已在使用​.NET,知道如何使用已安裝的程式,且不想為了ASF單獨複製執行環境的人提供的。 Generic套件還允許您在​任何可以獲得.NET執行環境的的地方​執行ASF,無論是否存在適用於您的作業系統的ASF建置版本。

對於一般或甚至是進階的使用者,如果只想執行ASF而不想鑽研.NET的技術細節,則不建議使用Generic版本。 也就是說,若您瞭解Generic套件,那您就能使用它,否則最好使用下面介紹的適用於您的作業系統的套件。

.NET Framework 套件

除了上面所提到的Generic套件外,我們也有​Generic-netf​套件,它是建立於.NET Framework而不是.NET(Core)之上。 這個套件是個舊的變體版本,它提供了從ASF V2時代開始缺少的相容性,且可以執行於例如​Mono​之上,而.NET的​Generic​套件則無法使用。

在一般情形下,您應該要​盡量避免使用此套件​,因為大多數作業系統都完全(並且更好地)支援上面所提到的 ​Generic​套件。 事實上,這個套件只適用於缺少.NET執行環境,但同時具有Mono實作的平台上。 此類平台的範例包含​linux-x86​(32位元i386/i686 Linux)與​linux-armel​(例如在Raspberry Pi 0 & 1開發版中使用的ARMv6),到目前為止,這些平台都沒有官方的.NET執行環境。

隨著時間的推移,.NET支援的平台會越來越多,.NET Framework與.NET間的相容性會越來越差,而​Generic-netf​套件將會在未來完全被​Generic​套件所取代。 如果您可以使用任何.NET套件,請不要使用它,因為與.NET版本相比,​Generic-netf​缺少很多功能及相容性,而且它的功能會隨時間減少。 我們​只會​對無法使用​Generic​套件的平台提供此版本的支援(例如​linux-x86​),並且也只會支援基於最新版本的執行環境(例如最新版Mono)。


適用於特定作業系統

除了Generic套件中包含的受控代碼外,適用於特定作業系統的套件還包含指定平台的本機碼。 也就是說,適用於特定作業系統的套件​已經在裡面包含了正確的.NET 執行環境​,它允許您完全跳過整個麻煩的安裝過程,直接啟動ASF。 適用於特定作業系統的套件,顧名思義,是針對不同作業系統的,每種作業系統都需要它自己特定的版本:例如Windows需要PE32+ ​ArchiSteamFarm.exe​二進制檔案,而Linux則需要Unix ELF ​ArchiSteamFarm​二進制檔案。 如您所知,這兩種類型彼此不相容。

ASF目前擁有以下特定作業系統的變體版本:

  • linux-arm​支援32位元基於ARM(ARMv7+)的GNU/Linux作業系統。 這包含例如Raspberry Pi 2(或更新版本)等的平台,以及所有在當前和未來版本中可用的GNU/Linux作業系統(例如Raspberry Pi OS)。 這個變體版本​並不​支援較舊的ARM架構,例如Raspberry Pi 0中的ARMv6 & 1,它也不適用於未實作所需GNU/Linux環境的作業系統(例如Android)。
  • linux-arm64​支援64 位元基於ARM(ARMv8+)的GNU/Linux作業系統。 這包含例如Raspberry Pi 3(或更新版本)等的平台,以及所有在當前和未來版本中可用的AArch64 GNU/Linux作業系統(例如Debian)。 這個變體版本​並不​支援沒有所需64位元函式庫的32位元作業系統(例如Raspberry Pi OS),它也不適用於未實作所需GNU/Linux環境的作業系統(例如Android)。
  • linux-x64​支援64位元的GNU/Linux作業系統。 這包含Alpine、CentOS/Fedora/RHEL、Debian/Ubuntu、OpenSUSE/SLES等很多作業系統,包含它們在當前和未來的版本中的衍生版本。
  • osx-x64​支援64位元基於ARM(Apple silicon)的macOS作業系統。 包含版本11及其更新版本。
  • osx-x64​支援64位元的macOS作業系統。 包含版本10.15及其更新版本。
  • win-x64​支援64位元的Windows作業系統。 包含Windows 8.1、10、11、Server 2012+及其更新版本。 Windows 7需要使用**Generic**變體版本,對它只具有限的支援,您可能會在該環境中執行ASF時遇到問題。 我們強烈建議您盡快進行更新您的作業系統,因為ASF的未來版本可能會完全無法在上面使用,而且說實話,Windows 7在2020年就已經結束了生命週期。

當然,即使沒有適合您作業系統及架構的特定作業系統套件,您也可以手動安裝適當的.NET Core執行環境並執行Generic ASF套件,這也是這個套件存在的主要原因。 Generic ASF套件與平台無關,可以在任何具有可用.NET Core執行環境的平台上執行。 需要注意:ASF需要的是.NET Core執行環境,而不是特定的作業系統或架構。 例如,如果您使用的是32位元Windows,但ASF沒有​win-x86​版本,您仍然可以安裝​win-x86​版本的.NET Core SDK,然後執行Generic版本的ASF。 我們無法為所有作業系統及架構組合都產生一份執行檔,所以我們為此畫下一道分隔線。 x86就是這條線的其中之一,因為這種架構從2004年開始就過時了。

您可以造訪​​發行說明​​來查看.NET Core 6.0支援的平台與作業系統的完整清單。


執行環境需求

若您使用適用於特定作業系統的套件,那麼您不必擔心執行環境的需求,因為ASF總會將所需的最新執行環境封裝在一起,只要您已安裝並更新​.NET Core需求套件​,就能夠正常執行。 也就是說,​您不需要安裝.NET Core執行環境或SDK​,因為特定作業系統的版本只需要本機安裝對應作業系統的相依套件(需求套件),而不需要其他項目。

但是,如果您嘗試執行​Generic​ ASF套件,則必須確保您的.NET執行環境支援ASF所需的平台。

作為一個程式,ASF目前針對的是​.NET 6.0​(​net6.0​),但它可能在未來針對更新的平台。 從6.0.100 SDK(6.0.0執行環境)就開始支援​net6.0​,儘管ASF被設定成在編譯時偏好​最新的執行環境​,所以您應該確保你有​最新的SDK​(或最新的執行環境)可用於您的設備。 若您的執行環境低於編譯期間指定的最低支援版本,Generic ASF變體版本可能會拒絕啟動。

如有疑問,您可以訪問我們用於編譯並在GitHub上部署新版本的​持續整合程序​。 作為.NET驗證步驟的一部分,您可以在每個建置版本中找到​dotnet --info​輸出。

Clone this wiki locally