Flutter Windows桌面Release构建失败:MSB3073错误求助
Flutter Windows Release构建失败(调试模式正常)
调试模式下可正常运行和构建Flutter Windows桌面应用,但切换到Release模式后构建失败,报错信息如下:
C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(159,5): error MSB3073: The command "setlocal [C:\Users\doan\Documents\workspace\workspace_proxy\proxy-application\build\windows\_cargo-build_native.vcxproj] C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(159,5): error MSB3073: "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe" -E make_directory C:/Users/doan/Documents/workspace/workspace_proxy/proxy-application/build/windows [C:\Users\doan\Documents\workspace\workspace_proxy\proxy-application\build\windows\_cargo-build_native.vcxproj] C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(159,5): error MSB3073: if %errorlevel% neq 0 goto :cmEnd [C:\Users\doan\Documents\workspace\workspace_proxy\proxy-application\build\windows\_cargo-build_native.vcxproj] C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(159,5): error MSB3073: "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe" -E copy_if_different C:/Users/doan/Documents/workspace/workspace_proxy/proxy-application/build/windows/x64/Release/cargo/build/x86_64-pc-windows-msvc/release/native.lib C:/Users/doan/Documents/workspace/workspace_proxy/proxy-application/build/windows/x64/Release/cargo/build/x86_64-pc-windows-msvc/release/native.dll.lib C:/Users/doan/Documents/workspace/workspace_proxy/proxy-application/build/windows [C:\Users\doan\Documents\workspace\workspace_proxy\proxy-application\build\windows\_cargo-build_native.vcxproj] C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(159,5): error MSB3073: if %errorlevel% neq 0 goto :cmEnd [C:\Users\doan\Documents\workspace\workspace_proxy\proxy-application\build\windows\_cargo-build_native.vcxproj] C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(159,5): error MSB3073: :cmEnd [C:\Users\doan\Documents\workspace\workspace_proxy\proxy-application\build\windows\_cargo-build_native.vcxproj] C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(159,5): error MSB3073: endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone [C:\Users\doan\Documents\workspace\workspace_proxy\proxy-application\build\windows\_cargo-build_native.vcxproj] C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(159,5): error MSB3073: :cmErrorLevel [C:\Users\doan\Documents\workspace\workspace_proxy\proxy-application\build\windows\_cargo-build_native.vcxproj] C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(159,5): error MSB3073: exit /b %1 [C:\Users\doan\Documents\workspace\workspace_proxy\proxy-application\build\windows\_cargo-build_native.vcxproj] C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(159,5): error MSB3073: :cmDone [C:\Users\doan\Documents\workspace\workspace_proxy\proxy-application\build\windows\_cargo-build_native.vcxproj] C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(159,5): error MSB3073: if %errorlevel% neq 0 goto :VCEnd [C:\Users\doan\Documents\workspace\workspace_proxy\proxy-application\build\windows\_cargo-build_native.vcxproj] C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(159,5): error MSB3073: setlocal [C:\Users\doan\Documents\workspace\workspace_proxy\proxy-application\build\windows\_cargo-build_native.vcxproj] C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(159,5): error MSB3073: "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe" -E make_directory C:/Users/doan/Documents/workspace/workspace_proxy/proxy-application/build/windows [C:\Users\doan\Documents\workspace\workspace_proxy\proxy-application\build\windows\_cargo-build_native.vcxproj] C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(159,5): error MSB3073: if %errorlevel% neq 0 goto :cmEnd [C:\Users\doan\Documents\workspace\workspace_proxy\proxy-application\build\windows\_cargo-build_native.vcxproj] C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(159,5): error MSB3073: "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe" -E copy_if_different C:/Users/doan/Documents/workspace/workspace_proxy/proxy-application/build/windows/x64/Release/cargo/build/x86_64-pc-windows-msvc/release/native.dll C:/Users/doan/Documents/workspace/workspace_proxy/proxy-application/build/windows [C:\Users\doan\Documents\workspace\workspace_proxy\proxy-application\build\windows\_cargo-build_native.vcxproj] C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(159,5): error MSB3073: if %errorlevel% neq 0 goto :cmEnd [C:\Users\doan\Documents\workspace\workspace_proxy\proxy-application\build\windows\_cargo-build_native.vcxproj] C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(159,5): error MSB3073: :cmEnd [C:\Users\doan\Documents\workspace\workspace_proxy\proxy-application\build\windows\_cargo-build_native.vcxproj] C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(159,5): error MSB3073: endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone [C:\Users\doan\Documents\workspace\workspace_proxy\proxy-application\build\windows\_cargo-build_native.vcxproj] C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(159,5): error MSB3073: :cmErrorLevel [C:\Users\doan\Documents\workspace\workspace_proxy\proxy-application\build\windows\_cargo-build_native.vcxproj] C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(159,5): error MSB3073: exit /b %1 [C:\Users\doan\Documents\workspace\workspace_proxy\proxy-application\build\windows\_cargo-build_native.vcxproj] C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(159,5): error MSB3073: :cmDone [C:\Users\doan\Documents\workspace\workspace_proxy\proxy-application\build\windows\_cargo-build_native.vcxproj] C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(159,5): error MSB3073: if %errorlevel% neq 0 goto :VCEnd [C:\Users\doan\Documents\workspace\workspace_proxy\proxy-application\build\windows\_cargo-build_native.vcxproj] C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(159,5): error MSB3073: setlocal [C:\Users\doan\Documents\workspace\workspace_proxy\proxy-application\build\windows\_cargo-build_native.vcxproj] C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(159,5): error MSB3073: "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe" -E make_directory C:/Users/doan/Documents/workspace/workspace_proxy/proxy-application/build/windows [C:\Users\doan\Documents\workspace\workspace_proxy\proxy-application\build\windows\_cargo-build_native.vcxproj] C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(159,5): error MSB3073: if %errorlevel% neq 0 goto :cmEnd [C:\Users\doan\Documents\workspace\workspace_proxy\proxy-application\build\windows\_cargo-build_native.vcxproj] C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(159,5): error MSB3073: "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe" -E copy_if_different C:/Users/doan/Documents/workspace/workspace_proxy/proxy-application/build/windows/x64/Release/cargo/build/x86_64-pc-windows-msvc/release/native.pdb C:/Users/doan/Documents/workspace/workspace_proxy/proxy-application/build/windows [C:\Users\doan\Documents\workspace\workspace_proxy\proxy-application\build\windows\_cargo-build_native.vcxproj] C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(159,5): error MSB3073: if %errorlevel% neq 0 goto :cmEnd [C:\Users\doan\Documents\workspace\workspace_proxy\proxy-application\build\windows\_cargo-build_native.vcxproj] C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(159,5): error MSB3073: :cmEnd [C:\Users\doan\Documents\workspace\workspace_proxy\proxy-application\build\windows\_cargo-build_native.vcxproj] C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(159,5): error MSB3073: endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone [C:\Users\doan\Documents\workspace\workspace_proxy\proxy-application\build\windows\_cargo-build_native.vcxproj] C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(159,5): error MSB3073: :cmErrorLevel [C:\Users\doan\Documents\workspace\workspace_proxy\proxy-application\build\windows\_cargo-build_native.vcxproj] C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(159,5): error MSB3073: exit /b %1 [C:\Users\doan\Documents\workspace\workspace_proxy\proxy-application\build\windows\_cargo-build_native.vcxproj] C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(159,5): error MSB3073: :cmDone [C:\Users\doan\Documents\workspace\workspace_proxy\proxy-application\build\windows\_cargo-build_native.vcxproj] C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(159,5): error MSB3073: if %errorlevel% neq 0 goto :VCEnd [C:\Users\doan\Documents\workspace\workspace_proxy\proxy-application\build\windows\_cargo-build_native.vcxproj] C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(159,5): error MSB3073: :VCEnd" exited with code 1. [C:\Users\doan\Documents\workspace\workspace_proxy\proxy-application\build\windows\_cargo-build_native.vcxproj] Building Windows application... Build process failed.
解决方法
1. 排查Rust原生库构建问题
从报错里的_cargo-build_native.vcxproj可知,项目依赖Rust编写的原生组件。Release模式下cargo构建可能出问题:
- 打开终端,进入项目中Rust代码所在目录(通常是
windows/native),执行cargo build --release,查看是否有具体编译错误,比如依赖缺失、语法问题。 - 执行
rustup update将Rust环境更新到最新稳定版。
2. 清理缓存后重建
Flutter和MSBuild的缓存可能引发冲突:
- 执行
flutter clean清理Flutter缓存 - 删除项目根目录的
build文件夹,以及windows目录下的build文件夹 - 重新生成Windows项目配置:
flutter create --platforms windows . - 再次尝试构建Release版本:
flutter build windows --release
3. 检查Visual Studio组件完整性
报错来自MSBuild的C++目标文件,可能是VS缺少必要工具:
- 打开Visual Studio Installer,确认已安装**Desktop development with C++**工作负载,包含MSBuild工具、Windows SDK、CMake组件。
- 右键点击
windows/_cargo-build_native.vcxproj,用Visual Studio打开,直接在VS中构建Release版本,获取更详细的错误提示。
4. 验证文件路径与权限
cmake执行文件复制失败,可能是目标路径无权限或文件未生成:
- 检查`build/windows/x
相关产品推荐
相关产品推荐

