$msbuild = "${env:ProgramFiles(x86)}" + '\MSBuild.0\Bin\MSBuild.exe'
Tente assim. Sem espaços, então o caminho deve ficar bem.
Estou tentando executar um comando simples com caminho contendo espaços
$solution = "test.sln"
$msbuild = "C:\Program Files (x86)\MSBuild.0\Bin\MSBuild.exe"
Exec { iex "$msbuild '"$solution'" /t:clean"}
Exec { iex "$msbuild '"$solution'"" }
Isso gera um erro
Exception: The term 'x86' is not recognized as the name
, o que parece ser porque o comando $msbuild
não está corretamente citado. Tentei citando o comando (e escapando citações com backticks), mas ainda sem sorte
$msbuild = "'"C:\Program Files (x86)\MSBuild.0\Bin\MSBuild.exe'""
Como você pode escapar / citar corretamente acima? Quais são as regras de fuga em Powershell?
$msbuild = "${env:ProgramFiles(x86)}" + '\MSBuild.0\Bin\MSBuild.exe'
Tente assim. Sem espaços, então o caminho deve ficar bem.
Talvez tente usar o operador Ligar ( & ) em vez de invocar a expressão? Não tenho certeza de como qualquer saída será processada.
$solution = "test.sln"
$msbuild = "C:\Program Files (x86)\MSBuild.0\Bin\MSBuild.exe"
Exec { & $msbuild $solution /t:clean}
Exec { & $msbuild $solution }
Tags powershell