Получение ошибки MSB406 "TypeScript.Tasks.CheckFileSystemCaseSensitive" в Windows Powershell, но та же сборка работает в VS Powershell - PullRequest
0 голосов
/ 28 мая 2020

При попытке создать новый установочный проект с использованием npm run build я столкнулся с указанной ниже ошибкой в ​​Powershell на Windows, однако она отлично работает внутри встроенной в Visual Studio Powershell.

Ошибка:

C: .. \ src \ packages \ Microsoft.Portal.Tools.5.0.303.3330 \ build \ TypeScript \ tools \ Microsoft.TypeScript.targets (219,5): ошибка MSB406 2 : Задача «TypeScript.Tasks.CheckFileSystemCaseSensitive» не может быть загружена из сборки C: .. \ src \ packages \ Microsoft.Portal.Tools.5.0.303.3330 \ build \ TypeScript \ build .. \ tools \ net45 \ TypeScript.Tasks.dll. Не удалось загрузить файл или сборку Microsoft.Build.Utilities.Core, Version = 14.0.0.0, Culture = нейтральный, PublicKeyToken = b03f5f7f11d50a3a или одну из его зависимостей. Система не может найти указанный файл. Убедитесь, что объявление правильное, что сборка и все ее зависимости доступны и что задача содержит класс publi c, реализующий Microsoft.Build.Framework.ITask [C: .. \ src \ Default \ Extension \ Extension.csproj]

Ответы [ 2 ]

1 голос
/ 29 мая 2020

Когда вы запускаете его из 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 на машине.

1 голос
/ 29 мая 2020

Получение ошибки MSB406 «TypeScript.Tasks.CheckFileSystemCaseSensitive» в Windows Powershell, но та же сборка работает в VS Powershell

С вы успешно создали проект расширения в vs powershell, я думаю, вы поместили неправильную версию MSBuild в системные переменные среды PATH .

Вместо следует использовать C:\Program Files (x86)\Microsoft Visual Studio\2019\xxx\MSBuild\Current\Bin\MSBuild.exe.

Решение

1) проверьте PATH и удалите предыдущий неправильный путь MSBuild.

2) затем введите C:\Program Files (x86)\Microsoft Visual Studio\2019\xxx\MSBuild\Current\Bin в PATH , перезапустите Windows Powershell для сборки снова.

...