Visual Studio 2022构建React Native Windows项目遇NuGet.RestoreEx.targets错误
问题描述
我正在构建包含common、fmt、folly、ReactNativeWebView等子项目的React Native Windows解决方案,将Visual Studio从2019升级到2022后,构建多个子项目时出现以下XML解析错误:
1>C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\CommonExtensions\Microsoft\NuGet\NuGet.RestoreEx.targets(19,5): error : '{' is an unexpected token. The expected token is '"' or '''. Line 2, position 31. 1>C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\CommonExtensions\Microsoft\NuGet\NuGet.RestoreEx.targets(19,5): error : at System.Xml.XmlTextReaderImpl.Throw(Exception e) 1>C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\CommonExtensions\Microsoft\NuGet\NuGet.RestoreEx.targets(19,5): error : at System.Xml.XmlTextReaderImpl.ParseAttributes() 1>C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\CommonExtensions\Microsoft\NuGet\NuGet.RestoreEx.targets(19,5): error : at System.Xml.XmlTextReaderImpl.ParseElement() 1>C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\CommonExtensions\Microsoft\NuGet\NuGet.RestoreEx.targets(19,5): error : at System.Xml.XmlTextReaderImpl.ParseElementContent() 1>C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\CommonExtensions\Microsoft\NuGet\NuGet.RestoreEx.targets(19,5): error : at System.Xml.XmlLoader.LoadNode(Boolean skipOverWhitespace) 1>C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\CommonExtensions\Microsoft\NuGet\NuGet.RestoreEx.targets(19,5): error : at System.Xml.XmlLoader.LoadDocSequence(XmlDocument parentDoc) 1>C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\CommonExtensions\Microsoft\NuGet\NuGet.RestoreEx.targets(19,5): error : at System.Xml.XmlDocument.Load(XmlReader reader) 1>C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\CommonExtensions\Microsoft\NuGet\NuGet.RestoreEx.targets(19,5): error : at Microsoft.Build.Shared.SolutionConfiguration.GetProjectConfigurations(String xmlString) 1>C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\CommonExtensions\Microsoft\NuGet\NuGet.RestoreEx.targets(19,5): error : at Microsoft.Build.Shared.SolutionConfiguration..ctor(String xmlString) 1>C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\CommonExtensions\Microsoft\NuGet\NuGet.RestoreEx.targets(19,5): error : at Microsoft.Build.Graph.ProjectInterpretation.<GetReferences>d__25.MoveNext() 1>C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\CommonExtensions\Microsoft\NuGet\NuGet.RestoreEx.targets(19,5): error : at Microsoft.Build.Graph.GraphBuilder.ParseReferences(ProjectGraphNode parsedProject) 1>C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\CommonExtensions\Microsoft\NuGet\NuGet.RestoreEx.targets(19,5): error : at Microsoft.Build.Graph.GraphBuilder.ParseProject(ConfigurationMetadata configurationMetadata) 1>C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\CommonExtensions\Microsoft\NuGet\NuGet.RestoreEx.targets(19,5): error : at System.Lazy`1.CreateValue() 1>C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\CommonExtensions\Microsoft\NuGet\NuGet.RestoreEx.targets(19,5): error : at System.Lazy`1.LazyInitValue() 1>C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\CommonExtensions\Microsoft\NuGet\NuGet.RestoreEx.targets(19,5): error : at Microsoft.Build.Graph.ParallelWorkSet`2.ExecuteWorkItem()
项目环境信息:
- react-native: 0.71.7
- react: 18.2.0
- react-native-windows: 0.71.5
- WDK版本: 10.0.26100.1742
- 构建配置: Release | win32
解决方案尝试
1. 清理NuGet缓存并重新还原
- 打开Visual Studio 2022,依次点击工具 > NuGet包管理器 > 包管理器设置,找到NuGet包管理器 > 常规,点击清除所有NuGet缓存
- 右键解决方案,选择还原NuGet包
- 或在命令行执行以下命令:
nuget locals all -clear nuget restore YourSolution.sln
2. 检查解决方案及项目配置的XML格式
错误提示指向XML解析失败,需排查配置文件中的格式问题:
- 用文本编辑器打开解决方案文件(.sln),检查是否存在未正确转义的特殊字符,比如
{出现在XML属性值中但未处理的情况 - 检查子项目的.csproj/.vcxproj文件,确认所有XML属性都使用双引号(
")包裹,无单双引号混用或未闭合的引号
3. 更新Visual Studio 2022及NuGet组件
- 打开Visual Studio Installer,检查并安装所有VS2022的最新更新包,确保.NET桌面开发、通用Windows平台开发等相关工作负载完整
- 更新NuGet包管理器:在VS中点击工具 > 扩展和更新,找到NuGet包管理器并安装最新版本
4. 清理并重建项目引用
- 删除解决方案下所有子项目的
obj和bin文件夹,清理旧构建输出 - 重新运行React Native Windows初始化命令,确保项目引用正确:
npx react-native run-windows --no-launch
- 检查folly、fmt等子项目的引用路径,确认路径中无特殊字符,且VS2022能正确识别
5. 适配React Native Windows与VS2022的兼容性
react-native-windows 0.71.x对VS2022的适配可能存在补丁修复:
- 将react-native-windows升级到0.71.x分支的最新补丁版本(如0.71.10及以上)
- 在项目属性中确认平台工具集选择
v143(VS2022对应的MSBuild工具集)
6. 检查WDK版本兼容性
当前使用的WDK版本10.0.26100.1742较新,可能与RNW 0.71.x存在兼容性冲突:
- 尝试降级WDK到RNW 0.71.x官方推荐的版本(如10.0.22621.x)
- 确认项目属性中的Windows SDK版本与WDK版本保持一致
内容的提问来源于stack exchange,提问作者Saurxbh
相关产品推荐
相关产品推荐

