Почему использование MSBuild через VS Developer Console работает нормально, но через powershell он хочет, чтобы я установил Windows SDK? - PullRequest
0 голосов
/ 03 февраля 2020

Когда я компилирую проект через PowerShell:

PS C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319>. \ MSBuild.exe "C: \ Пользователи \ Me \ repo \ Proj \ App.csproj "

, затем происходит сбой

C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Microsoft.Common.targets (2015,5): ошибка MSB3091: выполнить запрос не удалось, так как «AxImp.exe» не был найден или не установлен правильный Microsoft Windows SDK. Задача ищет файл «AxImp.exe» в подкаталоге «bin» ниже расположения, указанного в значении InstallationFolder раздела реестра HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SDKs \ Windows \ v8.0A \ WinSDK-NetFx40Tools-x86. Вы можете решить проблему, выполнив одно из следующих действий: 1) Установите Microsoft Windows SDK. 2) Установите Visual Studio 2010. 3) Вручную установите указанный выше раздел реестра в правильное расположение. 4) Укажите правильное местоположение в параметре «ToolPath» задачи. "

, но когда я делаю это через командную строку разработчика VS для VS 2019

**********************************************************************
** Visual Studio 2019 Developer Command Prompt v16.4.3
** Copyright (c) 2019 Microsoft Corporation
**********************************************************************
C:\Windows\System32>MSBuild.exe "C:\Users\Me\repo\Proj\App.csproj"

тогда он работает отлично!

Но, как вы видите, Current Path (папка MS Build) совершенно другой, поэтому я попытался выполнить это в PowerShell еще раз с VS Местоположение разработчика CMD:

PS C:\Windows\System32> cd "C:\Windows\System32"                                                                       
PS C:\Windows\System32> MSBuild.exe "C:\Users\Me\repo\Proj\App.csproj"                                                                                                                       
MSBuild.exe : The term 'MSBuild.exe' is not recognized as the name of a cmdlet, function, script file, or operable prog
ram. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ MSBuild.exe "C:\Users\Me\repo\Proj\App.csproj" ...
+ ~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (MSBuild.exe:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

PS C:\Windows\System32>   

Что происходит? Почему я могу прекрасно откомпилировать свои проекты из Developer CMD, в то время как я не могу сделать это с помощью Power Shell, и он кричит, что у меня нет Windows SDK?

Или какой MS Build (видимо, их несколько) мне следует использовать?

1 Ответ

0 голосов
/ 03 февраля 2020

Я обнаружил, что использование MSBuild из:

"C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\MSBuild.exe"

работает нормально, поэтому очевидно, что VS Dev CMD использует MSBuild, отличный от того, который лежит в C:\Windows\Microsoft.NET\Framework64\v4.0.30319

Дело раскрыто (для меня)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...