在 windows 11 中安装 react-native-windows 时如何解决 powershell 错误

How to resolve powershell errors when installing react-native-windows in windows 11

我在 windows 11 上得到了一个新系统 运行,但我遇到了问题 运行 shell 脚本来设置 react native windows环境。

Set-ExecutionPolicy Unrestricted -Scope Process -Force; iex (新对象 System.Net.WebClient).DownloadString('https://aka.ms/rnw-deps.ps1') 请帮助我解决此错误。

可以在 https://aka.ms/rnw-deps.ps1 找到该脚本 错误来自第 68 行和第 130 行

这是我遇到的错误的屏幕截图。

script you link to 已损坏(截至撰写本文时):

第 98 行:

Write-Debug No Retail versions of Visual Studio found, trying pre-release...

由于缺少引号,此行导致语法错误;正确的语法是:

Write-Debug 'No Retail versions of Visual Studio found, trying pre-release...'

第 130 行:

$p = Start-Process -PassThru -Wait  -FilePath $vsInstaller -ArgumentList ("modify --channelId $channelId --productId $productId $addWorkloads --quiet --includeRecommended" -split ' ')

这一行失败的事实表明至少有一个引用变量 - $channelId$productId$addWorkloads 意外地 $null.

顺便说一句:

  • 由此产生的错误Windows PowerShell错误的表现(已在 PowerShell (Core) 7+) 中得到修复 - 将空数组或 $null 或至少包含一个 $null 元素的数组传递给 -ArgumentList 属性 Start-Process 意外导致错误。

  • 有一个单独的 Start-Process 错误 - 从 PowerShell Core 7.2.2 开始仍然存在 - 解决方法可以更好地将所有参数 作为单个参数传递string with embedded "..." quoting (as needed) to -ArgumentList (see ):

    $p = Start-Process -PassThru -Wait  -FilePath $vsInstaller -ArgumentList "modify --channelId $channelId --productId $productId $addWorkloads --quiet --includeRecommended"