资讯详情

资讯详情

WSL 在 ARM64 Windows 上构建时 WiX 工具集缺少 x64 .NET 6.0 运行时怎么解决?

WSL 在 ARM64 Windows 上构建时 WiX 工具集缺少 x64 .NET 6.0 运行时怎么解决【免费下载链接】WSLWindows Subsystem for Linux项目地址: https://gitcode.com/GitHub_Trending/ws/WSL在 ARM64 Windows 机器上构建 WSL 时构建流程需要调用 WiX 工具集wix.exe来打安装包。wix.exe是 x64 二进制它需要x64 的 .NET 6.0 运行时才能工作机器上只有 ARM64 的 .NET 运行时是不够的。遇到这个情况时按本文操作安装 x64 .NET 6.0 运行时并设置DOTNET_ROOT_X64让运行时可被发现然后重新执行 ARM64 构建即可。以下内容依据仓库文档 Building WSL 整理。先确认是不是这个问题出现该问题的前提和判断依据来自 dev-loop.md 的 “ARM64 development” 一节你在ARM64 Windows上构建 WSL例如使用cmake . -A arm64生成 ARM64 包构建过程由wix.exe执行打包而wix.exe是 x64 二进制机器上未安装 x64 .NET 6.0 运行时或者设置了 x64 运行时但没有配置DOTNET_ROOT_X64导致运行时不可发现。如果是在 x64 Windows 上构建不属于本文场景。准备条件修复本身不改变构建前置条件先按 dev-loop.md 的要求确认这些依赖已就位CMake 3.25可用winget install Kitware.CMake安装Visual Studio 2022 及其所需组件可用 VS Installer 导入.vsconfig配置Windows 设置中启用 Developer Mode或者以管理员权限运行构建符号链接支持需要这些前置条件也可以用一条脚本自动安装该脚本通过 WinGet Configuration 安装 Developer Mode、CMake、Visual Studio 2022 及.vsconfig中要求的组件tools\setup-dev-env.ps1安装 x64 .NET 6.0 运行时在 PowerShell 中执行以下两条命令。先说明副作用第一条命令从https://dot.net/v1/dotnet-install.ps1下载官方 dotnet-install 脚本到临时目录属于网络下载第二条命令执行该脚本把 x64 .NET 6.0 运行时安装到C:\Program Files\dotnet\x64会向系统目录写入文件。# Download the official dotnet-install script Invoke-WebRequest -Uri https://dot.net/v1/dotnet-install.ps1 -OutFile $env:TEMP\dotnet-install.ps1 # Install the x64 .NET 6.0 runtime powershell -ExecutionPolicy Bypass -File $env:TEMP\dotnet-install.ps1 -Channel 6.0 -Runtime dotnet -Architecture x64 -InstallDir C:\Program Files\dotnet\x64其中-Channel 6.0指定 .NET 6.0 版本线-Runtime dotnet表示安装 .NET 运行时-Architecture x64指定 x64 架构-InstallDir指定安装目录。设置 DOTNET_ROOT_X64 让运行时可被发现安装完成后设置DOTNET_ROOT_X64环境变量指向运行时安装目录。该命令会修改当前会话或当前用户的环境变量# Set for the current session $env:DOTNET_ROOT_X64 C:\Program Files\dotnet\x64 # Set permanently for your user [System.Environment]::SetEnvironmentVariable(DOTNET_ROOT_X64, C:\Program Files\dotnet\x64, User)注意两点DOTNET_ROOT_X64的值必须与上一步-InstallDir使用的目录一致上例中均为C:\Program Files\dotnet\x64。如果你自定义了安装目录两处都要改成同一目录。设置后可能需要重启 VS Code 或打开一个新终端环境变量才会生效。重新构建并验证回到 WSL 仓库根目录重新配置并构建 ARM64 包cmake . -A arm64 cmake --build .也可以打开cmake .生成的wsl.sln在 Visual Studio 中构建。构建完成后按以下方式验证检查安装包是否生成构建完成后 WSL 的 MSI 位于bin\platform\target\wsl.msi在 ARM64 机器上 platform 段为arm64文档中测试示例显示 target 段形如debug例如bin\x64\debug\test.bat。该文件生成说明 WiX 打包环节已经正常工作。安装验证直接安装该 MSI或运行powershell tools\deploy\deploy-to-host.ps1部署到本机。限制与补充-DCMAKE_BUILD_TYPERelease用于 Release 构建需与cmake --build . --config Release配合使用如果需要构建 bundle msix 包-DBUILD_BUNDLETRUE文档要求先完成 ARM64 构建即先跑通本文这条路径文档没有给出该故障的具体报错文本判断依据是 “wix.exe为 x64 二进制、需要 x64 .NET 6.0 运行时、仅 ARM64 运行时不够” 这一说明如果你确认运行时已安装到C:\Program Files\dotnet\x64且DOTNET_ROOT_X64已在新终端中生效问题仍未解决则超出了文档覆盖的范围需要进一步自行排查。【免费下载链接】WSLWindows Subsystem for Linux项目地址: https://gitcode.com/GitHub_Trending/ws/WSL创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →