Когда вы запускаете его из VS, интегрированного PowerShell, он использует правильную версию MSBuild , но может не найти последнюю версию при запуске из Windows PowerShell.
Если вы хотите использовать Последний доступный MSBuild на любой машине; Visual Studio (VS2017 и выше) поставляется с утилитой vswhere , которую можно использовать для определения последней версии MSBuild
Вы можете вручную обновить PATH в переменной среды или напишите сценарий PS , чтобы найти последнюю версию MSBuild, используя приведенный ниже фрагмент кода
$vsWherePath = ${Env:ProgramFiles(x86)} + '\Microsoft Visual Studio\Installer\vswhere.exe'
$detectedMSBuildPath = & $vsWherePath -latest -requires Microsoft.Component.MSBuild -find MSBuild\**\Bin\MSBuild.exe;
Write-Host $detectedMSBuildPath
& $detectedMSBuildPath -version #Command to execute msbuild
Таким образом, даже если ваша версия MSBuild обновлена; он всегда найдет и использует последнюю версию MSBuild на машине.