Vraag Is er een manier om Visual Studio "alleen project" te bouwen vanaf de opdrachtregel?


devenv mysolution.sln /build "Release|Win32" /project myproject

Bij het bouwen vanaf de opdrachtregel lijkt het erop dat ik de mogelijkheid heb om een ​​a te doen /build of /rebuild, maar geen manier om te zeggen dat ik "alleen project" wil doen (dat wil zeggen, ook de afhankelijkheden van het gespecificeerde project niet bouwen of opnieuw opbouwen). Weet iemand een manier?


11
2017-09-23 20:24


oorsprong


antwoorden:


Afhankelijk van de structuur van uw buildsysteem, kan dit zijn wat u zoekt:

msbuild /p:BuildProjectReferences=false project.proj

14
2017-09-23 20:30



MSBuild is wat je wilt

MSBuild.exe MyProject.proj /t:build

11
2017-09-23 20:27



Bel niet devenv, gebruik in plaats daarvan de generieke build-tool:

vcbuild subproject.vcproj "release|win32"

3
2017-09-23 20:27



Volgens MSDN How To: Bouw specifieke doelen in oplossingen met MSBuild.exe:

msbuild foo.sln /t:proj1:Rebuild;folder_of_proj2\proj2:Clean

1
2017-09-28 13:37



Hoe een project te bouwen, niet een hele oplossing - MSDN-artikel


1
2018-04-04 06:54



Bedankt voor de antwoorden. Ik zie vanaf een beetje kijken msbuild dat het kan omgaan met a .sln bestand in plaats van een .vcproj; kan dit op die manier worden bereikt in plaats van de locatie van de .vcproj?

Laat me een stap terug doen. We hebben een groot oplossingsbestand en ik wil een script om dit te doen:

  1. Doe een /build over de hele oplossing.
    (Soms mislukken sommige projecten omdat devenv doet niet zo veel bouwwerk als nodig is voor de hoeveelheid verandering sinds de laatste build.)
  2. Voor elk mislukt project, doe a /rebuild ben ermee bezig.

Wanneer ik bij stap 2 kom, is het enige dat ik weet de oplossingsbestandsnaam en de namen (geen bestandsnamen) van de mislukte projecten. Ik zou het gemakkelijk kunnen doen grep/awk/ wat dan ook .sln bestand om in kaart te brengen van de ene naar de andere, maar ik ben benieuwd of msbuild biedt een manier om het direct te doen.

(Idealiter zou ik kunnen geven msbuild de .sln en de namen van alle de te herbouwen projecten in een enkele commandoregel, omdat het een groot bestand is en het enige tijd duurt om het te laden. Als dat niet mogelijk is, is de optie om alle projectbestandsnamen handmatig te vinden waarschijnlijk beter, omdat het elke keer laden van het oplossingsbestand het meest inefficiënt zou zijn.)


0
2017-09-23 21:28



Het volgende werkt goed voor het bouwen van een enkel C ++ -project in VS2010:

call "%VS100COMNTOOLS%"\\vsvars32.bat
msbuild /detailedsummary /p:Configuration=Debug /p:Platform=x64 /t:build MY_ABSOLUTE_PATH.vcxproj

Helaas kunt u niet gewoon een projectnaam en een oplossingsbestand opgeven om alleen dat project te bouwen (tenzij u misschien een speciale configuratie aan uw projectbestanden toevoegt).


0
2018-03-22 22:10