Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.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
Visual studio 使用msbuild.exe编译项目列表_Visual Studio_Msbuild_Visual Studio 2017 - Fatal编程技术网

Visual studio 使用msbuild.exe编译项目列表

Visual studio 使用msbuild.exe编译项目列表,visual-studio,msbuild,visual-studio-2017,Visual Studio,Msbuild,Visual Studio 2017,我有一个VS解决方案,它包含n-C++项目。有没有办法让msbuild.exe通过命令行编译特定的项目子集 msbuild.exe foo.sln /thisFlagWouldBeCool:project1;project2 我为目标尝试了/t标志,但似乎不行,因为目标不是项目。如前所述,您可以使用如下命令: msbuild SlnFolders.sln -target:NotInSlnfolder:Rebuild;NewFolder\InSolutionFolder:Clean msbui

我有一个VS解决方案,它包含n-
C++项目
。有没有办法让
msbuild.exe
通过命令行编译特定的项目子集

msbuild.exe foo.sln /thisFlagWouldBeCool:project1;project2
我为目标尝试了
/t
标志,但似乎不行,因为目标不是项目。如前所述,您可以使用如下命令:

msbuild SlnFolders.sln -target:NotInSlnfolder:Rebuild;NewFolder\InSolutionFolder:Clean
msbuild Test.sln /t:A;B /p:Configuration="xx" /p:Platform="xx"
更具体地说,如果在同一个解决方案(Test.sln)中有
项目A、B、C
,要仅构建A和B,可以使用如下命令:

msbuild SlnFolders.sln -target:NotInSlnfolder:Rebuild;NewFolder\InSolutionFolder:Clean
msbuild Test.sln /t:A;B /p:Configuration="xx" /p:Platform="xx"
注意:要以这种方式构建,我们应该确保
A.xxproj
B.xxproj
xx.sln
文件中定义。至少对于VS,如果我们创建一个新的项目C,
xx.sln
将不会更新,直到我们单击
save all
按钮

2.这里还有另一个方向,适用于某些特定的场景:

我们可以右键单击VS中的解决方案节点,选择
add project=>empty project
将一个空项目添加到解决方案中,我们将其命名为
MyBuildTool
project。卸载它以编辑其
MyBuildTool.vcxproj
文件,将此类脚本添加到它的底部(在项目选项卡中):


...
然后MyBuildTool.vcxproj现在是我们的构建脚本,如果在某些特定情况下我们需要构建多个项目,我们可以运行命令
msbuild.exe MyBuildTool.vcxproj
。这取决于。

1的用法。请参阅。如前所述,您可以使用如下命令:

msbuild SlnFolders.sln -target:NotInSlnfolder:Rebuild;NewFolder\InSolutionFolder:Clean
msbuild Test.sln /t:A;B /p:Configuration="xx" /p:Platform="xx"
更具体地说,如果在同一个解决方案(Test.sln)中有
项目A、B、C
,要仅构建A和B,可以使用如下命令:

msbuild SlnFolders.sln -target:NotInSlnfolder:Rebuild;NewFolder\InSolutionFolder:Clean
msbuild Test.sln /t:A;B /p:Configuration="xx" /p:Platform="xx"
注意:要以这种方式构建,我们应该确保
A.xxproj
B.xxproj
xx.sln
文件中定义。至少对于VS,如果我们创建一个新的项目C,
xx.sln
将不会更新,直到我们单击
save all
按钮

2.这里还有另一个方向,适用于某些特定的场景:

我们可以右键单击VS中的解决方案节点,选择
add project=>empty project
将一个空项目添加到解决方案中,我们将其命名为
MyBuildTool
project。卸载它以编辑其
MyBuildTool.vcxproj
文件,将此类脚本添加到它的底部(在项目选项卡中):


...

然后MyBuildTool.vcxproj现在是我们的构建脚本,如果在某些特定情况下我们需要构建多个项目,我们可以运行命令
msbuild.exe MyBuildTool.vcxproj
。这取决于的用法。

请看,希望我没有误解:)嗨,丹尼尔,这个问题有什么更新吗?如果它仍然阻止你,请随时告诉我:)看,希望我没有误解:)嗨,丹尼尔,这个问题有什么更新吗?如果它仍然阻止您,请随时告诉我:)我确实尝试过,但它说目标不存在(但这是项目的名称),您使用的命令与您在问题中提到的相同吗?我稍后会检查:)是的,差不多,它说目标不存在。非常奇怪的
“C:\Program Files(x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\MSBuild.exe”mysolution.sln/t:project1/p:Configuration=“Release”/p:Platform=“x64”
,然后执行命令,用记事本打开
mysolution.sln
,查看引发错误消息的
project1
是否在
xx.sln
文件中定义。我猜你的xx.sln在创建项目后可能不会更新…(保存所有内容是否有帮助?)嗯,我可以在
项目中看到该项目(
sln
部分,我确实尝试过,但它说目标不存在(但这是项目的名称)您使用的命令是否与您的问题中提到的相同?我稍后会检查:)是的,基本相同,它说目标不存在。非常奇怪的
“C:\Program Files(x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\MSBuild.exe”mysolution.sln/t:project1/p:Configuration=“Release”/p:Platform=“x64”
,然后执行命令,用记事本打开
mysolution.sln
,查看引发错误消息的
project1
是否在
xx.sln
文件中定义。我猜您的xx.sln在创建项目后可能不会更新…(保存所有内容是否有帮助?)嗯,我可以在
项目中看到该项目(
sln