Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MSBuild使用所需的工作目录运行目标的正确方法是什么?_Msbuild - Fatal编程技术网

MSBuild使用所需的工作目录运行目标的正确方法是什么?

MSBuild使用所需的工作目录运行目标的正确方法是什么?,msbuild,Msbuild,我正在将一个大型NMake项目转换为MSBuild项目。这是我第一次使用MSBuild,所以有很多问题。首先,在调用不同的项目时,如何更改工作目录 我有一个顶级a.proj,它在开始时导入解决方案范围的属性。它位于目录C:\SomeFolder中。然后,我希望它构建项目B和C:\SomeFolder\Sub中的其他项目。项目B被写入以将其自己的目录作为文件读写的根目录。但在我的新设置中,MSBuild将A.proj的dir视为工作目录,因此所有子项目都无法获得自己的正确文件 如何正确执行此操作?

我正在将一个大型NMake项目转换为MSBuild项目。这是我第一次使用MSBuild,所以有很多问题。首先,在调用不同的项目时,如何更改工作目录

我有一个顶级a.proj,它在开始时导入解决方案范围的属性。它位于目录C:\SomeFolder中。然后,我希望它构建项目B和C:\SomeFolder\Sub中的其他项目。项目B被写入以将其自己的目录作为文件读写的根目录。但在我的新设置中,MSBuild将A.proj的dir视为工作目录,因此所有子项目都无法获得自己的正确文件


如何正确执行此操作?

您可以获得一个工作目录,但这可能不是您真正想要的。有一些可能对您更有用,例如
$(MSBuildProjectDirectory)
。您如何从A调用项目B?你描述它的方式就是它应该如何工作。项目文件内的相对路径应相对于该文件,而不是调用文件。@在链接中,我看到了MSBuildProjectDirectory中的示例,该示例在目标中对所有子项目调用MSBuild。如果给定/m,这些MSBuild cmd是否会并行运行?@Sheen,您可能正在查找,尽管我自己从未测试过它。。。从描述中可以看出,默认值为true。