Ainda usamos o TFS 2010 e o msbuild como sistema de compilação. Atualmente precisamos disparar uma compilação em jenkins, então adicionamos uma tarefa exec ao nosso script em msbuild usando curl e um arquivo netcr. Infelizmente nossa URL contém espaços em branco que mascaramos como "% 20" mas depois que nossa chamada exec foi aumentada no log da construção ocorre uma mensagem de erro dizendo que o servidor não pode ser encontrado. Eu descobri que msbuild tenta não usar o url quando eu entrei nele, mas msbuild exclui nosso "% 20" em espaços em branco, o que não precisamos. No log de construção, parece que esse comando foi acionado:
"c:\Tools\Curl\curl.exe --netrc-file c:\Tools\Curl\.netrc https://my.domain.de/job/My Strange Build Artifacts/buildWithParameters?token=My-token-build&VERSION=1.2.3.10373"
Eu tentei várias variações de mascarar o URL inteiro usando
" and &
mas sem sucesso.
Então, como posso acionar uma tarefa exec assim:
<Exec ContinueOnError="true" Command="c:\Tools\Curl\curl.exe --netrc-file c:\Tools\Curl\.netrc "https://my.domain.de/job/My%20Strange%20Build%20Artifacts/buildWithParameters?token=MY-token-build&VERSION=1.2.3.10373"">
<Output TaskParameter="ExitCode" PropertyName="ResultUploadArtifactsToJenkins" />
</Exec>
que resultará em um comando de linha de comando real, como o que ainda contém "% 20":
"c:\Tools\Curl\curl.exe --netrc-file c:\Tools\Curl\.netrc https://my.domain.de/job/My%20Strange%20Build%20Artifacts/buildWithParameters?token=My-token-build&VERSION=1.2.3.10373"