Я пытаюсь установить автоматические инструменты сборки VS Studio 2019 на экземпляр Windows Server 2019 с помощью Powershell. Предполагая, что загрузчик инструментов сборки использует тот же интерфейс командной строки, что и обычные, я хочу установить 2 рабочие нагрузки с их рекомендованными компонентами через --add. Документация MS определяет ;includeRecommended
суффикс к WorkloadID. Правильное распознавание командных флагов не удается из-за: в PowerShell. Как я могу сказать загрузчику, что он должен включать рекомендуемые компоненты рабочей нагрузки?
Вывод:
PS C:\Users\Administrator> Invoke-WebRequest https://s3.eu-central-1.amazonaws.com/.../vs_buildtools
__1986933399.1585486755.exe -OutFile c:\vs.exe
PS C:\Users\Administrator> c:\vs.exe --passive --wait `
>> --add Microsoft.VisualStudio.Workload.MSBuildTools;includeRecommended `
>> --add Microsoft.VisualStudio.Workload.VCTools;includeRecommended `
>> --add Microsoft.Component.MSBuild `
>>
includeRecommended : The term 'includeRecommended' is not recognized as the name of a cmdlet, function, script file,
or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and
try again.
At line:2 char:52
+ ... add Microsoft.VisualStudio.Workload.MSBuildTools;includeRecommended `
+ ~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (includeRecommended:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
includeRecommended : The term 'includeRecommended' is not recognized as the name of a cmdlet, function, script file,
or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and
try again.
At line:3 char:47
+ --add Microsoft.VisualStudio.Workload.VCTools;includeRecommended `
+ ~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (includeRecommended:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
includeRecommended flag for WorkloadId installment not reconized
заключите значения параметров в кавычки.
c:\vs.exe --passive --wait `
--add "Microsoft.VisualStudio.Workload.MSBuildTools;includeRecommended" `
--add "Microsoft.VisualStudio.Workload.VCTools;includeRecommended" `
--add Microsoft.Component.MSBuild `
В Powershell вы можете запускать несколько команд в одной строке, разделяя их ;
. Итак, Powershell считает, что команда заканчивается на ;
и ищет командлет со следующим именем.
Кроме того, их экранирование также должно работать:
--add Microsoft.VisualStudio.Workload.MSBuildTools`;includeRecommended `