阻止 Steam 安装 Windows 运行库

前言

Steam 安装游戏时会自动安装需要的运行库, 这点在 20 年前 Steam 还只是 CS 启动器,商城游戏数量还不如蒸汽平台, 各种下载站群魔乱舞的时候很实用,但放在今天就没什么意义。 况且 Steam 判断运行库安装的标准是「有没有通过 Steam 安装过」, 如果自己下载安装,但没有在 Steam 安装过,Steam 通通当作没有安装, 愉快地下载 CommonRedist 到本地,然后再提示系统已经安装了更新版本🙃, 浪费多余的带宽、硬盘和时间。

原理

Steam 安装 _CommonRedist 后在注册表会写入对应信息,以此判断运行库是否安装。 所以只要把运行库的信息提前写入注册表,即可避免重复安装。

提醒

运行库安装

下面 #注册表 提到的路径适用于 64 位 Windows 10/11 系统, 32 位对应位置为 HKEY_LOCAL_MACHINE\Software\Valve\Steam\Apps\CommonRedist

这个方法只能阻止 Steam 自动安装运行库,请提前确保系统已经安装, 如果系统本身没有安装,游戏是无法运行的。

首选 vcredist,集成了常用的各种版本 .NET 和 Visual C++ 运行库, 不用在 M$ 那难用的各种跳转链接中找下载地址。

如果已经在使用 winget 或 Chocolatey/Scoop 等第三方软件包管理器, 搜索 vcredist 等关键词安装即可。附一个 winget 使用的命令,仅供参考:

# 仅适用于 winget
# https://github.com/abbodi1406/vcredist/issues/30
winget install --id=Microsoft.VC++2005Redist-x86 -e && 
winget install --id=Microsoft.VC++2005Redist-x64 -e && 
winget install --id=Microsoft.VC++2008Redist-x86 -e && 
winget install --id=Microsoft.VC++2008Redist-x64 -e && 
winget install --id=Microsoft.VC++2010Redist-x86 -e && 
winget install --id=Microsoft.VC++2010Redist-x64 -e && 
winget install --id=Microsoft.VC++2012Redist-x86 -e && 
winget install --id=Microsoft.VC++2012Redist-x64 -e && 
winget install --id=Microsoft.VC++2013Redist-x86 -e && 
winget install --id=Microsoft.VC++2013Redist-x64 -e && 
winget install --id=Microsoft.VC++2015-2022Redist-x86 -e && 
winget install --id=Microsoft.VC++2015-2022Redist-x64 -e

注册表备份

同时由于需要操作注册表,导入前建议自行备份,出错了可以回退。

注册表

只推荐屏蔽 .NET、DirectX 和 vcredist 这烂大街的三大件,OpenAL/PhysX/XNA 引擎/运行库等在现代游戏中比较少见,安装包可能也不太好找,建议从 Steam 安装。

下面的是完整版,复制内容保存为 no-steam-commonredist.reg,(备份注册表)导入即可,其他分支版本可到 anti-steam-commondist 下载或基于完整版删减得到。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Valve\Steam\Apps\CommonRedist]

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Valve\Steam\Apps\CommonRedist\.NET]

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Valve\Steam\Apps\CommonRedist\.NET\3.5]
"3.5 SP1"=dword:00000001
 
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Valve\Steam\Apps\CommonRedist\.NET\4.0]
"4.0"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Valve\Steam\Apps\CommonRedist\.NET\4.5.2]
"4.5.2"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Valve\Steam\Apps\CommonRedist\.NET\4.6.2]
"4.6.2"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Valve\Steam\Apps\CommonRedist\.NET\4.7.2]
"4.7.2"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Valve\Steam\Apps\CommonRedist\.NET\4.8]
"4.8"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Valve\Steam\Apps\CommonRedist\DirectX]
"June2010"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Valve\Steam\Apps\CommonRedist\DirectX\Jun2010]
"dxsetup"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Valve\Steam\Apps\CommonRedist\OpenAL]

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Valve\Steam\Apps\CommonRedist\OpenAL\2.0.7.0]
"2.0.7.0"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Valve\Steam\Apps\CommonRedist\PhysX]
"9.14.0702"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Valve\Steam\Apps\CommonRedist\vcredist]

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Valve\Steam\Apps\CommonRedist\vcredist\2005]
"x86 SP1"=dword:00000001
"x64 SP1"=dword:00000001
 
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Valve\Steam\Apps\CommonRedist\vcredist\2008]
"x86 SP1"=dword:00000001
"x64 SP1"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Valve\Steam\Apps\CommonRedist\vcredist\2010]
"x86"=dword:00000001
"x64"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Valve\Steam\Apps\CommonRedist\vcredist\2012]
"x86 Update 4"=dword:00000001
"x64 Update 4"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Valve\Steam\Apps\CommonRedist\vcredist\2013]
"x86 12.0.40664"=dword:00000001
"x64 12.0.40664"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Valve\Steam\Apps\CommonRedist\vcredist\2015]
"x86 Update 3 14.0.24215.0"=dword:00000001
"x64 Update 3 14.0.24215.0"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Valve\Steam\Apps\CommonRedist\vcredist\2017]
"x86 14.10.25008.0"=dword:00000001
"x64 14.10.25008.0"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Valve\Steam\Apps\CommonRedist\vcredist\2019]
"x86 14.28.29334.0"=dword:00000001
"x64 14.28.29334.0"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Valve\Steam\Apps\CommonRedist\vcredist\2022]
"x86 14.38.32919.0"=dword:00000001
"x64 14.38.32919.0"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Valve\Steam\Apps\CommonRedist\XNA]

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Valve\Steam\Apps\CommonRedist\XNA\3.0]
"3.0"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Valve\Steam\Apps\CommonRedist\XNA\3.1]
"3.1"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Valve\Steam\Apps\CommonRedist\XNA\4.0]
"4.0 Refresh"=dword:00000001

参考

Vinfall's Geekademy

VENI VIDI VICI