我正在执行批处理文件中的MSBuild。 MSBuild脚本位于与MSBuild在运行脚本时考虑工作目录的目录不同的目录中。当调用MSBuild.exe时,如何更改其工作目录?更改msbuild.exe的工作目录
编辑:更多细节
比方说,我有一些位于其他服务器上的一个MSBuild脚本。我想正是如此运行命令:
msbuild.exe \\my_server\c$\My\Path\To\Scripts\TestScript.msbuild
我在C运行该命令与我的命令提示符:\ TEMP。假设我的TestScript.msbuild有一个创建文件的任务。该文件没有路径只是一个文件名。我期望该文件在c:\ temp中创建。但它不会在坐在服务器上的msbuild文件旁边创建。这是我想改变的行为。
编辑#2
下面是我用在我的测试脚本:
<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>
我进入一个命令shell CDing到C:\ TEMP,然后执行脚本。有或者没有@Nick Nieslanik提到的/ p:OutDir开关,HelloWorld.txt文件出现在* .msbuild文件所在的文件夹中,而不是c:\ temp。
我不知道我理解你的问题。如果我在目录A中有一个cmd文件并从目录B调用它,然后回显%cd%它会将目录B显示为当前目录。因此,除非您在脚本中更改目录,否则它应该已将当前目录视为工作目录。你能澄清吗? –
我同意你描述的行为。但是,MSBuild似乎没有这样做。它似乎将* .build文件的位置作为工作目录。我将编辑我的问题来描述我的设置的更多细节。 – RationalGeek