Attualmente sto esaminando il re-jigging del nostro sistema di distribuzione hacked insieme con qualcosa di un po 'più elegante - Octopus. Così facendo, sto cercando di convincere VS a confezionare un progetto quando viene eseguito un build di rilascio. Beh, ho scritto e lavorato questo fantastico script di PowerShell, ma quando provo a fare EXEC dallo script di msbuild, lo studio di visualizzazione si blocca!Exec powershell.exe si blocca msbuild
All'inizio sospettavo il modo in cui la roba veniva portata via nella shell, ma l'ho semplificata in modo ridicolo e si blocca ancora.
Ecco il codice MsBuild rilevanti:
<PropertyGroup>
<PowerShellExe Condition=" '$(PowerShellExe)'=='' ">
%WINDIR%\System32\WindowsPowerShell\v1.0\powershell.exe
</PowerShellExe>
</PropertyGroup>
<Target Name="AfterBuild" Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<Exec Command="$(PowerShellExe) -NonInteractive -executionpolicy Unrestricted -command get-childitem" />
</Target>
tutto ciò che dovrebbe fare è dare un elenco di directory. La chiamata a questo da cmd.exe funziona bene:
C:\Users\smithj>%WINDIR%\System32\WindowsPowerShell\v1.0\powershell.exe -noninteractive -executionpolicy unrestricted -command dir
Cercando questo:
msbuild Solution.sln /p:Configuration=Release
mi fa questo:
AfterBuild:
"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\\tf.exe" che
ckout Package.nuspec
Package.nuspec
%WINDIR%\System32\WindowsPowerShell\v1.0\powershell.exe
-NonInteractive -executionpolicy Unrestricted -command dir
Windows PowerShell
Copyright (C) 2009 Microsoft Corporation. All rights reserved.
Dopo di che, appena appende per sempre. Qualsiasi suggerimento è benvenuto.
Beh, di certo non l'ho visto arrivare. Hai perfettamente ragione. come newline nella proprietà del comando o, comunque, hai centrato la testa, ho passato ore su questo .. è sempre qualcosa di stupido alla fine :) Grazie mille! – monkeybuffer
np mio piacere. –
Ho combattuto con questo per ore. Vorrei che ci fosse una risposta migliore di "non mettere interruzioni di riga nel file msbuild". Mi chiedo se un punto e virgola in più o qualcosa finirebbero per aggirare questo? Fondamentalmente, penso che sia in attesa che la linea di terminazione venga immessa proprio come in PowerShell quando si estendono più linee con interruzioni di riga, è necessario aggiungerne un'altra alla fine. Ad ogni modo, che sollievo posso almeno aggirare questo. Odio girare le mie ruote su questo genere di cose. – EdFred