devenv mysolution.sln /build "Release|Win32" /project myproject
在命令行构建时,似乎我有执行 /build
或者 /rebuild
的选项,但是没有方法可以指定只做"项目本身" (即不会重新构建或者构建该项目依赖的其他项目)。 有人知道该怎么做吗?
devenv mysolution.sln /build "Release|Win32" /project myproject
在命令行构建时,似乎我有执行 /build
或者 /rebuild
的选项,但是没有方法可以指定只做"项目本身" (即不会重新构建或者构建该项目依赖的其他项目)。 有人知道该怎么做吗?
根据你的构建系统结构,这可能是你正在寻找的内容:
msbuild /p:BuildProjectReferences=false project.proj
devenv
,而是使用通用的构建工具:vcbuild subproject.vcproj "release|win32"
以下内容适用于在VS2010中构建单个C++项目:
call "%VS100COMNTOOLS%"\\vsvars32.bat
msbuild /detailedsummary /p:Configuration=Debug /p:Platform=x64 /t:build MY_ABSOLUTE_PATH.vcxproj
遗憾的是,你不能仅指定一个项目名称和解决方案文件来构建该项目(除非你可能向项目文件添加特殊配置)。
感谢您的回答。我从对msbuild
的一些了解中发现它可以处理.sln
文件而不是.vcproj
文件;这样可以完成任务,而不必知道.vcproj
文件的位置吗?
让我退后一步。我们有一个大型解决方案文件,我想要一个脚本来执行以下操作:
/build
。devenv
没有做足够的构建工作,导致某些项目失败,因为上次构建以来更改的数量不够多。)/rebuild
。当我到达第二步时,我只知道解决方案文件名和失败项目的名称(而不是文件名)。我可以轻松地使用grep
/awk
/等命令在.sln
文件中进行映射,但我很好奇msbuild
是否提供了直接执行此操作的方法。
msbuild
提供 .sln
文件以及所有需要重新构建的项目的名称。因为文件很大,并且加载时间较长,所以如果不可能实现这一点,那么手动找出所有项目文件名的选项可能更好,因为每次都加载解决方案文件会非常低效。