「模组:在 Windows 上使用 64 位游戏」修訂間的差異

出自Stardew Valley Wiki
跳至導覽 跳至搜尋
(文本替换 - 替换“<br>”为“<br />”)
(文本替换 - 替换“tt>”为“samp>”)
 
第6行: 第6行:
 
===64位意味着什么?===
 
===64位意味着什么?===
 
 程序的“位数”会影响它可以使用的内存量。目前Windows上的星露谷是32位的,32位的应用程序只能使用 4 GB的运行内存。<br />
 
 程序的“位数”会影响它可以使用的内存量。目前Windows上的星露谷是32位的,32位的应用程序只能使用 4 GB的运行内存。<br />
32位适用于大多数玩家,但那些拥有大量模组(或大型模组或需要大量消耗内存的模组)的玩家可能会遇到 <tt>OutOfMemoryException</tt> 错误。<br />
+
32位适用于大多数玩家,但那些拥有大量模组(或大型模组或需要大量消耗内存的模组)的玩家可能会遇到 <samp>OutOfMemoryException</samp> 错误。<br />
 
 使用64位程序可以无限制使用内存(如果计算机本身有足够的可用内存)。
 
 使用64位程序可以无限制使用内存(如果计算机本身有足够的可用内存)。
  
 
===我是否需要64位?===
 
===我是否需要64位?===
 只有在 Windows 上遇到 <tt>OutOfMemoryException</tt> 错误时才需要。否则请保持32位版本,更简单且兼容性好。
+
 只有在 Windows 上遇到 <samp>OutOfMemoryException</samp> 错误时才需要。否则请保持32位版本,更简单且兼容性好。
  
 
===SMAPI 会放弃32位支持吗?===
 
===SMAPI 会放弃32位支持吗?===
第29行: 第29行:
  
 
<dl>
 
<dl>
<dt>检查 <tt>目标平台</tt> 设置</dt>
+
<dt>检查 <samp>目标平台</samp> 设置</dt>
<dd>[[模组:制作指南/APIs/Utilities#Constants|<tt>Constants.TargetPlatform</tt>]] 指示模组是在 Android、Linux、MacOS 还是 Windows 上运行。
+
<dd>[[模组:制作指南/APIs/Utilities#Constants|<samp>Constants.TargetPlatform</samp>]] 指示模组是在 Android、Linux、MacOS 还是 Windows 上运行。
  
 如果你使用它来区分 XNA Framework(在 Windows 上)和 MonoGame(在其他平台上),则应该改用新的 <tt>Constants.GameFramework</tt></dd>
+
 如果你使用它来区分 XNA Framework(在 Windows 上)和 MonoGame(在其他平台上),则应该改用新的 <samp>Constants.GameFramework</samp></dd>
  
 
<dt>不要设置为 x86</dt>
 
<dt>不要设置为 x86</dt>
 
<dd>
 
<dd>
 新的模组项目默认选择 <tt>Any CPU</tt> 如果你将其更改为了 <tt>x86</tt>,则需要将其更改回 <tt>Any CPU</tt> 以避免在 64 位游戏上出现错误。
+
 新的模组项目默认选择 <samp>Any CPU</samp> 如果你将其更改为了 <samp>x86</samp>,则需要将其更改回 <samp>Any CPU</samp> 以避免在 64 位游戏上出现错误。
  
 
 修复受影响的模组:
 
 修复受影响的模组:
 
<ol>
 
<ol>
<li>在每个模组的 <tt>.csproj</tt> 项目文件中,删除这些内容(如果有的话):
+
<li>在每个模组的 <samp>.csproj</samp> 项目文件中,删除这些内容(如果有的话):
 
<syntaxhighlight lang="xml">
 
<syntaxhighlight lang="xml">
 
    <Platforms>x86</Platforms>
 
    <Platforms>x86</Platforms>
第46行: 第46行:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 如果模组使用了旧的项目格式(比如说,没有 <code><nowiki><Project Sdk="Microsoft.NET.Sdk"></nowiki></code>),参阅 [https://docs.microsoft.com/en-ca/visualstudio/ide/how-to-configure-projects-to-target-platforms ''如何将项目配置为目标平台''] 来设置到 <tt>Any CPU</tt>.
+
 如果模组使用了旧的项目格式(比如说,没有 <code><nowiki><Project Sdk="Microsoft.NET.Sdk"></nowiki></code>),参阅 [https://docs.microsoft.com/en-ca/visualstudio/ide/how-to-configure-projects-to-target-platforms ''如何将项目配置为目标平台''] 来设置到 <samp>Any CPU</samp>.
 
</li>
 
</li>
 
<li>完全退出 Visual Studio.</li>
 
<li>完全退出 Visual Studio.</li>
<li>在 <tt>.sln</tt> 解决方案文件中把所有 <tt>x86</tt> 替换成 <tt>Any CPU</tt>.</li>
+
<li>在 <samp>.sln</samp> 解决方案文件中把所有 <samp>x86</samp> 替换成 <samp>Any CPU</samp>.</li>
 
</ol>
 
</ol>
 
</dd>
 
</dd>
第68行: 第68行:
 
:# 通过 Microsoft Store 安装 Python
 
:# 通过 Microsoft Store 安装 Python
 
:# 在你的 [https://www.gog.com/account GOG web library]:点击 Stardew Valley, 在“System”下拉列表中选择 Linux,然后下载 列表中显示的安装程序文件。
 
:# 在你的 [https://www.gog.com/account GOG web library]:点击 Stardew Valley, 在“System”下拉列表中选择 Linux,然后下载 列表中显示的安装程序文件。
:# 从 {{github|Yepoleb/gogextract|Yepoleb/gogextract}} 下载 <tt>gogextract.py</tt> 并放到上面下载好的文件的同一目录中
+
:# 从 {{github|Yepoleb/gogextract|Yepoleb/gogextract}} 下载 <samp>gogextract.py</samp> 并放到上面下载好的文件的同一目录中
:# 在这个目录中打开控制台,并运行命令: (如果需要,更改 <tt>.sh</tt> 的文件名): <pre>python gogextract.py stardew_valley_1_5_4_981587505_44377.sh stardew-valley-installer</pre>
+
:# 在这个目录中打开控制台,并运行命令: (如果需要,更改 <samp>.sh</samp> 的文件名): <pre>python gogextract.py stardew_valley_1_5_4_981587505_44377.sh stardew-valley-installer</pre>
:# 在解压后的文件夹中,解压 <tt>data.zip</tt>.
+
:# 在解压后的文件夹中,解压 <samp>data.zip</samp>.
:# 下载的游戏位于解压的 <tt>data/noarch/game</tt> 文件夹中
+
:# 下载的游戏位于解压的 <samp>data/noarch/game</samp> 文件夹中
  
 
===安装教程===
 
===安装教程===
第92行: 第92行:
  
 
; "''Unhandled exception: System.Reflection.TargetInvocationException: [...] Could not load file or assembly 'SMAPI.Toolkit[...]''"
 
; "''Unhandled exception: System.Reflection.TargetInvocationException: [...] Could not load file or assembly 'SMAPI.Toolkit[...]''"
: 确保你运行的是 <tt>StardewModdingAPI.exe</tt>, ''而不是'' <tt>StardewValley.exe</tt>. 如果没有 SMAPI,64 位版本的游戏将无法运行。
+
: 确保你运行的是 <samp>StardewModdingAPI.exe</samp>, ''而不是'' <samp>StardewValley.exe</samp>. 如果没有 SMAPI,64 位版本的游戏将无法运行。
  
 
; 其他问题
 
; 其他问题

於 2021年11月4日 (四) 19:11 的最新修訂

目錄

此頁面的內容會告訴你如何使用 64 位的星露谷

對於玩家

64位意味着什麼?

程序的「位數」會影響它可以使用的內存量。目前Windows上的星露谷是32位的,32位的應用程式只能使用 4 GB的運行內存。
32位適用於大多數玩家,但那些擁有大量模組(或大型模組或需要大量消耗內存的模組)的玩家可能會遇到 OutOfMemoryException 錯誤。
使用64位程序可以無限制使用內存(如果計算機本身有足夠的可用內存)。

我是否需要64位?

只有在 Windows 上遇到 OutOfMemoryException 錯誤時才需要。否則請保持32位版本,更簡單且兼容性好。

SMAPI 會放棄32位支持嗎?

SMAPI 將始終支持遊戲的正式版本,SMAPI 安裝程序會自動檢測您的遊戲是 32 位還是 64 位版本。

我該如何啟用64位版本?

參閱下面的 啟用64位版本

對於模組作者

確保已參閱上方的 對於玩家 內容

這是模組的末日嗎?

不,絕大多數玩家都會使用普通的 32 位版本。這只會影響那些必須要使用64位遊戲的玩家,並且大多數模組已經與 64 位遊戲兼容。

如何更新到 64 位的模組代碼?

大多數 SMAPI 模組 已經可以在 32 位和 64 位模式下工作,並且其內容包也不需要做任何事情(如果加載它們的 SMAPI 模組是兼容的,那它們就是兼容的)。
對於 SMAPI 模組,64 位兼容性有兩個主要要求:

檢查 目標平台 設置
Constants.TargetPlatform 指示模組是在 Android、Linux、MacOS 還是 Windows 上運行。 如果你使用它來區分 XNA Framework(在 Windows 上)和 MonoGame(在其他平台上),則應該改用新的 Constants.GameFramework
不要設置為 x86
新的模組項目默認選擇 Any CPU 如果你將其更改為了 x86,則需要將其更改回 Any CPU 以避免在 64 位遊戲上出現錯誤。 修復受影響的模組:
  1. 在每個模組的 .csproj 項目文件中,刪除這些內容(如果有的話):
        <Platforms>x86</Platforms>
        <PlatformTarget>x86</PlatformTarget>
    

    如果模組使用了舊的項目格式(比如說,沒有 <Project Sdk="Microsoft.NET.Sdk">),參閱 如何將項目配置為目標平台 來設置到 Any CPU.

  2. 完全退出 Visual Studio.
  3. .sln 解決方案文件中把所有 x86 替換成 Any CPU.

啟用64位版本

下載 Linux 版本

首先需要一個單獨的 Linux 版本的遊戲。要下載它,請按照以下適用於您的遊戲平台的說明進行操作。

適用於 Steam 平台:
  1. 在你的瀏覽器地址欄中輸入 steam://nav/console 訪問,來啟用 Steam 控制台
  2. 在控制台中運行此命令:download_depot 413150 413153
  3. 等待下載完成。
    這可能需要很長時間,並且不會顯示任何下載進度。最終控制台會輸出「Depot download complete」並顯示下載文件夾的路徑。
  4. 最終下載的遊戲文件路徑會顯示在 Steam 控制台中

或者,如果你對命令行非常熟悉,你可以使用 DepotDownloader 開源工具. 在這種情況下,下載的文件夾將位於 depots 文件夾下,該文件夾將在運行該工具時所在的文件夾下創建。這是解釋這些步驟的視頻

適用於 GOG 平台:(這部分內容需要實際操作來校正翻譯)
  1. 通過 Microsoft Store 安裝 Python
  2. 在你的 GOG web library:點擊 Stardew Valley, 在「System」下拉列表中選擇 Linux,然後下載 列表中顯示的安裝程序文件。
  3. Yepoleb/gogextract 下載 gogextract.py 並放到上面下載好的文件的同一目錄中
  4. 在這個目錄中打開控制台,並運行命令: (如果需要,更改 .sh 的文件名):
    python gogextract.py stardew_valley_1_5_4_981587505_44377.sh stardew-valley-installer
  5. 在解壓後的文件夾中,解壓 data.zip.
  6. 下載的遊戲位於解壓的 data/noarch/game 文件夾中

安裝教程

  1. 將所有模組更新到最新版本(因為它們可能會添加 64 位支持)。
  2. 如果你還沒有準備好的話,先下載 Linux 版本.
    這將會下載到一個新的遊戲,使用這個下載的遊戲版本繼續操作,而不是原來的版本
  3. 讓遊戲成為64位:
    1. 下載 最新的 Stardew64Installer 安裝程序 並解壓,別忘了運行庫需求
    2. 運行 Stardew64Installer.exe 並按照程序的提示進行操作(記得要看懂英語,不然大佬會氣死的,實在看不懂就用機翻)
  4. 安裝 SMAPI 64 位:
    1. 下載 SMAPI 最新版 並解壓
    2. 在下載的遊戲文件夾中運行 Windows SMAPI 安裝程序(或者你可以在安裝時輸入64位遊戲的路徑)

完成了!現在運行 StardewModdingAPI.exe,遊戲應該是64位的了

故障排除

畫面撕裂
部分玩家在64位中匯報了 畫面撕裂 問題. 嘗試以下修復操作:
  • 確保在遊戲內選項菜單中啟用了垂直同步
  • 以窗口模式運行,而不是全屏或者無邊框窗口
"Unhandled exception: System.Reflection.TargetInvocationException: [...] Could not load file or assembly 'SMAPI.Toolkit[...]"
確保你運行的是 StardewModdingAPI.exe, 而不是 StardewValley.exe. 如果沒有 SMAPI,64 位版本的遊戲將無法運行。
其他問題
參閱 Modding:Help for the best places to ask.
64位的遊戲版本是 非官方的. 不要在這個版本上給開發者匯報模組問題