Ответ 1
В зависимости от структуры вашей системы сборки это может быть то, что вы ищете:
msbuild /p:BuildProjectReferences=false project.proj
devenv mysolution.sln /build "Release|Win32" /project myproject
При создании из командной строки кажется, что у меня есть возможность делать /build
или /rebuild
, но я не хочу сказать, что хочу делать "только проект" (т.е. не строить или перестраивать указанные зависимости проекта также). Кто-нибудь знает способ?
В зависимости от структуры вашей системы сборки это может быть то, что вы ищете:
msbuild /p:BuildProjectReferences=false project.proj
MSBuild - это то, что вы хотите
MSBuild.exe MyProject.proj /t:build
Не вызывайте devenv
, вместо этого используйте обобщенный инструмент сборки:
vcbuild subproject.vcproj "release|win32"
В соответствии с MSDN Как создать конкретные цели в решениях с помощью MSBuild.exe:
msbuild foo.sln /t:proj1:Rebuild;folder_of_proj2\proj2:Clean
Как создать проект, а не целое решение - статья MSDN
Спасибо за ответы. Я немного смотрю в msbuild
, что он может иметь дело с файлом .sln
, а не с .vcproj
; может ли это быть выполнено таким образом вместо того, чтобы знать местоположение .vcproj
?
Позвольте мне сделать шаг назад. У нас есть большой файл решения, и я хочу script сделать это:
/build
для всего решения. devenv
не делает столько же построения, сколько необходимо для суммы изменений со времени последней сборки.)/rebuild
на нем.Когда я дойду до шага 2, все, что я знаю, это имя файла решения и имена (а не имена файлов) неудачных проектов. Я мог бы легко grep
/awk
/независимо от того, что файл .sln
должен сопоставлять друг с другом, но мне интересно, если msbuild
предлагает способ сделать это напрямую.
(В идеале я мог бы дать msbuild
.sln
и имена всех проектов для перестройки в одной командной строке, так как это большой файл и требуется некоторое время для загрузки. Если это невозможно, вручную найти все имена файлов проекта, вероятно, лучше, так как загрузка файла решения каждый раз будет наиболее неэффективной.)
Следующие работы хорошо подходят для построения одного проекта на С++ в VS2010:
call "%VS100COMNTOOLS%"\\vsvars32.bat
msbuild /detailedsummary /p:Configuration=Debug /p:Platform=x64 /t:build MY_ABSOLUTE_PATH.vcxproj
К сожалению, вы не можете просто указать имя проекта и файл решения для создания только этого проекта (если вы, возможно, не добавите специальную конфигурацию в файлы проекта).