Estoy ejecutando MSBuild desde un archivo por lotes. El script de MSBuild está en un directorio diferente al directorio que quiero que MSBuild considere el directorio de trabajo cuando se ejecuta el script. Al invocar MSBuild.exe, ¿cómo cambio su directorio de trabajo?Cambiar el directorio de trabajo de msbuild.exe
Edición: Más detalles
Digamos que tengo un script de MSBuild situado en algún otro servidor. Quiero ejecutar un comando así:
msbuild.exe \\my_server\c$\My\Path\To\Scripts\TestScript.msbuild
Ejecuto ese comando con el símbolo del sistema en c: \ temp. Digamos que mi TestScript.msbuild tiene una tarea para crear un archivo. El archivo no tiene una ruta, solo un nombre de archivo. Esperaría que el archivo se cree dentro de c: \ temp. Pero no se crea al lado del archivo msbuild que está sentado en el servidor. Este es el comportamiento que quiero cambiar.
Edición # 2
Aquí es el guión que estoy usando en mi prueba:
<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>
voy en un CDing shell de comandos en C: \ temp y después de ejecutar la secuencia de comandos. Con o sin el modificador/p: OutDir que menciona @Nick Nieslanik, el archivo HelloWorld.txt aparece en la carpeta donde está el archivo * .msbuild y no c: \ temp.
no estoy seguro de entender su pregunta. Si tengo un archivo cmd en el directorio A y lo llamo desde el directorio B, entonces echo out% cd% mostrará el directorio B como el directorio actual. Entonces, a menos que esté cambiando el directorio en el script, ya debería considerar el directorio actual como el directorio de trabajo. ¿Puedes aclarar? –
Estoy de acuerdo con el comportamiento que describes. Sin embargo, MSBuild no parece hacer eso. Parece tomar la ubicación del archivo * .build como el directorio de trabajo. Editaré mi pregunta para describir más detalles sobre mi configuración. – RationalGeek