Windows Sandbox安装VC90运行时遇Error 1935问题求助
Windows Sandbox中安装VC80/VC90运行时1935错误的排查与解决
从你提供的日志来看,错误核心是0x80070003(路径未找到)和CBS日志中的0x80040154(COM组件未注册),这是因为Windows Sandbox的受限环境与旧版VC运行时的SxS组件部署机制不兼容导致的,以下是具体排查和解决方向:
一、手动部署SxS组件
- 用压缩工具(如7-Zip)解压VC90运行时安装包(
vcredist_x64.exe),找到包含atl90.dll的CAB压缩包。 - 解压CAB包到临时目录,手动创建目标路径
C:\Windows\winsxs\amd64_microsoft.vc90.atl_1fc8b3b9a1e18e3b_9.0.30729.6161_none_0a1fd3a3a768b895\,将atl90.dll复制到该目录。 - 以管理员身份打开命令提示符,执行注册命令:
regsvr32 C:\Windows\winsxs\amd64_microsoft.vc90.atl_1fc8b3b9a1e18e3b_9.0.30729.6161_none_0a1fd3a3a768b895\atl90.dll
二、调整Sandbox配置启动核心服务
旧版VC运行时安装依赖TrustedInstaller服务,Sandbox默认可能未启用该服务。创建自定义.wsb配置文件,自动启动服务:
<Configuration> <Networking>Enable</Networking> <MappedFolders> <MappedFolder> <HostFolder>C:\YourVCInstallerPath</HostFolder> <SandboxFolder>C:\VCInstallers</SandboxFolder> <ReadOnly>true</ReadOnly> </MappedFolder> </MappedFolders> <LogonCommand> <Command>cmd.exe /c sc config trustedinstaller start= auto && net start trustedinstaller</Command> </LogonCommand> </Configuration>
双击该.wsb文件启动Sandbox,再尝试安装VC运行时。
三、使用安装参数绕过SxS检查
运行VC安装包时添加以下参数,跳过MSI的SxS组件验证流程:
vcredist_x64.exe /norestart /quiet /skipmsi
四、修复WinSXS目录权限
如果WinSXS目录权限异常,会导致组件无法写入:
- 管理员命令提示符下执行,查看权限:
icacls C:\Windows\winsxs - 若TrustedInstaller组无完全控制权限,执行修复命令:
icacls C:\Windows\winsxs /setowner "NT SERVICE\TrustedInstaller" /T /C icacls C:\Windows\winsxs /grant "NT SERVICE\TrustedInstaller":F /T /C
补充说明
VC10及以后版本的运行时安装程序更新了部署逻辑,不再依赖旧版SxS组件的严格安装流程,因此能在Sandbox中正常运行。
内容的提问来源于stack exchange,提问作者GeorgeGF
相关产品推荐
相关产品推荐

