Wykonuję MSBuild z pliku wsadowego. Skrypt MSBuild znajduje się w innym katalogu niż katalog, który chcę, aby MSBuild rozważał katalog roboczy podczas uruchamiania skryptu. Podczas wywoływania programu MSBuild.exe, w jaki sposób mogę zmienić jego katalog roboczy?Zmiana katalogu roboczego msbuild.exe
Edit: Więcej szczegółów
powiedzmy Mam skrypt MSBuild znajdujący się na innym serwerze. Chcę uruchomić polecenie w następujący sposób:
msbuild.exe \\my_server\c$\My\Path\To\Scripts\TestScript.msbuild
Uruchomię to polecenie z wiersza polecenia na c: \ temp. Załóżmy, że mój TestScript.msbuild ma zadanie utworzenia pliku. Plik nie ma ścieżki tylko nazwa pliku. Spodziewam się, że plik zostanie utworzony wewnątrz c: \ temp. Ale nie tworzy się obok pliku msbuild, który znajduje się na serwerze. To jest zachowanie, które chcę zmienić.
Edit # 2
Oto skrypt używam w moim teście:
<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>
jadę do poleceń powłoki CDing do c: \ temp, a następnie wykonanie skryptu. Z lub bez przełącznika/p: OutDir, o którym wspomina @Nick Nieslanik, plik HelloWorld.txt pojawia się w folderze, w którym znajduje się plik * .msbuild, a nie c: \ temp.
Nie jestem pewien, czy rozumiem twoje pytanie. Jeśli mam plik cmd w katalogu A i wywołuję go z katalogu B, to echo% cd% spowoduje wyświetlenie katalogu B jako bieżącego katalogu. Więc jeśli nie zmienisz katalogu w skrypcie, powinien on już uważać aktualny katalog jako katalog roboczy. Możesz wyjaśnić? –
Zgadzam się z zachowaniem, które opisujesz. Jednak MSBuild nie wydaje się tego robić. Wydaje się, że lokalizacja pliku * .build jest katalogiem roboczym. Zmienię moje pytanie, aby opisać więcej szczegółów w mojej konfiguracji. – RationalGeek