You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 12:22:04