 错误)
解决 MFC 应用程序 Side-by-Side (SxS) 错误flyfishMFC 应用程序的 SxS 错误最常见提示是 “The application has failed to start because its side-by-side configuration is incorrect” 或中文“应用程序的并行配置不正确”通常是因为程序依赖的 Visual C 运行库CRT/MFC没有正确安装到目标机器的 WinSxS 目录或者清单manifest配置有问题。解决方法方法 1安装正确的 Visual C Redistributable方法 2检查并修复程序自身的清单Manifest确保项目属性中开启了“生成清单”Linker → Manifest File → Generate Manifest Yes。确认清单嵌入正确Resource ID 为 1。如果使用了外部.manifest文件检查 XML 语法是否正确、版本号是否匹配。可用 Visual Studio 的资源编辑器或mt.exe查看/修改嵌入的清单。方法 2静态链接 MFC/CRT彻底避免 SxS 问题在项目属性中C/C → 代码生成 → 运行库选择/MTRelease或/MTdDebug常规 → 使用 MFC选择“在静态库中使用 MFC”程序完全独立不依赖任何外部运行库。 程序体积变大且不能使用某些动态加载特性。这里是清单manifest配置有问题,一般使用 sxstrace.exe 详细跟踪这里没有,即 app.manifest 出现了问题1. MSBuild 是什么MSBuildMicrosoft Build Engine是微软的构建引擎/平台也是 Visual Studio 的构建系统。它是一个基于 XML 的构建工具用来编译、链接、打包项目。Visual Studio 里的.csproj、.vbproj、.vcxproj、.sln等项目文件本质上都是 MSBuild 项目文件。当在 Visual Studio 里点击“生成”或按 F5 时底层就是调用 MSBuild。也可以在没有安装 Visual Studio的机器上单独使用命令行或 CI/CD 流水线只要安装了 MSBuild 或 .NET SDK。安装路径局里C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\MSBuild.exe这是Visual Studio 2022 Community默认安装的MSBuild.exe位置64 位版本现在是默认。其他版本Professional、Enterprise、Build Tools路径类似只是中间文件夹名不同。常用命令示例MSBuild.exe YourProject.csproj /p:ConfigurationRelease2. app.manifest 是什么app.manifestApplication Manifest应用程序清单是一个XML 文件用来描述 Windows 应用程序的运行时行为、依赖关系和权限要求。常见用途包括UAC用户账户控制指定程序以普通用户asInvoker、管理员requireAdministrator还是最高可用权限运行。兼容性声明告诉系统本程序支持哪些 Windows 版本。依赖关系声明程序依赖的 Side-by-Side 程序集如 Visual C 运行时。DPI 感知、长路径支持等现代 Windows 特性。典型文件名是app.manifest也可以是YourApp.exe.manifest。它可以作为外部文件存在也可以嵌入到 EXE/DLL里。C 项目默认会 自动生成 链接器可根据依赖的 MSVC 库CRT、MFC、ATL 等自动生成清单。项目属性 → 链接器 → 清单文件 → “生成清单” 默认为“是”。如果同时存在外部 app.manifest和嵌入到 EXE 里的 manifestWindows 通常优先使用外部文件。如果外部文件不存在才会使用嵌入在 EXE 资源里的 manifest。如果Windows SxS 解析器认为 manifest 格式不合法就直接拒绝加载报错 “应用程序并行配置不正确”。