Sto eseguendo MSBuild da un file batch. Lo script MSBuild si trova in una directory diversa dalla directory in cui voglio che MSBuild consideri la directory di lavoro durante l'esecuzione dello script. Quando si richiama MSBuild.exe, come posso cambiare la sua directory di lavoro?Modifica directory di lavoro di msbuild.exe
Edit: Maggiori dettagli
Diciamo che ho uno script MSBuild situato su qualche altro server. Voglio eseguire un comando nel seguente modo:
msbuild.exe \\my_server\c$\My\Path\To\Scripts\TestScript.msbuild
ho eseguito quel comando con il mio prompt dei comandi in c: \ temp. Diciamo che il mio TestScript.msbuild ha un'attività per creare un file. Il file non ha percorso solo un nome di file. Mi aspetto che il file venga creato all'interno di c: \ temp. Ma non viene creato accanto al file msbuild che si trova sul server. Questo è il comportamento che voglio cambiare.
Modifica # 2
Ecco lo script che sto utilizzando nel mio test:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Files Include="HelloWorld.txt" />
</ItemGroup>
<Target Name="TouchFiles">
<Touch Files="@(Files)" AlwaysCreate="True" />
</Target>
</Project>
sto andando in un guscio CDing comando nella c: \ temp e quindi l'esecuzione dello script. Con o senza l'opzione/p: OutDir che @Nick Nieslanik menziona, il file HelloWorld.txt viene visualizzato nella cartella in cui si trova il file * .msbuild e non c: \ temp.
Non sono sicuro di aver capito la tua domanda. Se ho un file cmd nella directory A e lo chiamo dalla directory B, echo out% cd% mostrerà la directory B come directory corrente. Quindi, a meno che non si stia cambiando la directory nello script, dovrebbe già considerare la directory corrente come directory di lavoro. Puoi chiarire? –
Sono d'accordo con il comportamento che descrivi. Tuttavia, MSBuild non sembra farlo. Sembra prendere la posizione del file * .build come directory di lavoro. Modificherò la mia domanda per descrivere più specifiche sulla mia configurazione. – RationalGeek