通过命令行执行Visual Studio"仅项目"构建的任何方法吗?
时间:2020-03-06 14:37:30 来源:igfitidea点击:
devenv mysolution.sln /build "Release|Win32" /project myproject
从命令行构建时,似乎可以选择执行/ build
或者/ rebuild
,但是没有办法说我只想做" project"(即不构建或者重建指定项目的依赖项出色地)。有人知道吗?
解决方案
不要调用devenv
,而是使用通用的构建工具:
vcbuild subproject.vcproj "release|win32"
MSBuild是我们想要的
MSBuild.exe MyProject.proj /t:build
根据构建系统的结构,这可能是我们要寻找的内容:
msbuild /p:BuildProjectReferences=false project.proj
感谢回答。从对" msbuild"的了解中可以看出,它可以处理" .sln"文件而不是" .vcproj"文件。可以通过这种方式完成,而不必知道.vcproj
的位置吗?
让我退后一步。我们有一个很大的解决方案文件,我想要一个脚本来执行此操作:
- 在整个解决方案上执行
/ build
。 (有时某些项目失败,因为自上次构建以来,devenv
所做的构建工作量不足以进行必要的更改。) - 对于每个失败的项目,请对其执行" / rebuild"。
当我进入第2步时,我只知道解决方案文件名和失败项目的名称(不是文件名)。我可以很容易地使用grep
/awk
/将.sln文件从一个映射到另一个,但是我很好奇
msbuild`是否提供了一种直接进行映射的方法。
(理想情况下,我可以在一个命令行中为msbuild
和.sln
以及所有要重建的项目的名称,因为它是一个大文件,需要一段时间才能加载。如果无法实现,则可以手动查找所有项目的文件名可能会更好,因为每次加载解决方案文件的效率都最高。)
根据MSDN如何:使用MSBuild.exe在解决方案中构建特定目标:
msbuild foo.sln /t:proj1:Rebuild;folder_of_proj2\proj2:Clean