2010-05-17 7 views
24

Ich habe eine große Lösung mit mehr als 40 Projekten. Fast die Hälfte von ihnen sind Testprojekte. In meinem Projekt verwenden wir beide Code-Verträge, Code-Analyse, Style-Analyse. Ich möchte in der Lage sein, die Projekte, die nicht parallel sind, auf meiner Quad-Core-CPU zu bauen.Visual Studio 2010, wie man Projekte auf Multicore parallel erstellt

Wie kann ich Msbuild einrichten, um die Projekte parallel zu erstellen?

+0

es ist nicht klar, ob diese Frage direkt in VS2010 kompilieren oder mit msbuild4 kompiliert. Ihr Kommentar unten auf Streit während der Protokollierung verdient eine Antwort. – GregC

Antwort

4

Ich weiß, dass es ein Klon von nmake ist, der die -j Switch unterstützt parallel zu kompilieren:

http://qt.gitorious.org/qt-labs/jom

und es gibt auch einen Hack für MSbuild, google es einfach. Ich weiß auch, dass es ein Tool gibt, das unterstützt, auf mehreren Maschinen und vielleicht auch auf mehreren Kernen aufzubauen, aber ich erinnere mich nicht an seinen Namen im Moment.

hoffe das hilft.

13

Sie die Build-in MSBuild parallel von starten könnte: /maxcpucount:X

  • Einstellen des Attributs BuildInParallel von MSBuild Aufgabe true

    <Target Name="RunInParallel"> 
        <MSBuild BuildInParallel="true" 
          Projects="@(Projects)" 
          Targets="RunCodeAnalysis"> 
        </MSBuild> 
    </Target> 
    
  • Oder rufen msbuild mit dem Parameter, wo X die angibt, Anzahl der Worker-Prozesse, die am Build beteiligt sind. Diese Lösung passt besser zu Ihrem Bedarf.

    msbuild [YourSolutionFile.sln] /maxcpucount:4 /p:Platform=AnyCpu;Configuration=Debug; 
    

Scott Hanselman schrieb a post auf, dass, wenn Sie (ein bisschen), um den Prozess in Visual Studio als externes Tool integrieren möchten.


Für C++ Projekte, die Sie Multi-Prozessor-Build direkt in Visual Studio konfiguriert werden können:

Tools | Options | Projects and Solutions | Build and Run

+0

Vielen Dank Wir sind nicht in C++, aber wenn andere Leser dann sind, sollten Sie sich dieses Tool ansehen: http://www.xoreax.com/visual_studio.htm –

16

In Visual Studio: Tools | Optionen | Projekte und Lösungen | Erstellen und Ausführen. Dies sollte standardmäßig auf Ihre CPU-Anzahl eingestellt werden.

Von der Befehlszeile: msbuild /maxcpucount[:n] (ist n nicht angegeben, dann wird es die CPU-Anzahl verwenden).

+14

Wir fanden auch, dass in Visual Studio: Extras -> Optionen -> Projekte und Lösungen -> Erstellen und Ausführen ->. Sie können sowohl MSBuild Projekt Build Ausgabe Ausführlichkeit und Protokolldatei Ausführlichkeit: zu Quiet. Dies wird den Build-Prozess VIEL schneller und die IDE reagiert während des Builds. (Es kommt, dass VS2010 Sperren der IDE in Bezug auf die Ausgabe ist der Hauptfaktor in der langsamen Build-Proc ess) <- MS: Bitte korrigieren !! –

+1

Gott segne dich @thomasnn –

3

Dann echte Antwort, die Sie suchen, ist das Hinzufügen der/MP-Compiler-Flag zu den CXX-Compiler-Flags.

In Visual Studio Geben Sie auf der Projekteigenschaftsseite> C \ C++> Allgemein Multiprozessorkompilierung einfach Ja (/ MP) ein. Jetzt werden alle 40 Projekte parallel auf jedem der Kerne erstellt.

2

Dies ist jetzt für Visual Studio 11 für alle Sprachen, nicht nur für C++ integriert. "Visual Studio 2010 enthielt eine Option für" maximale Anzahl paralleler Projekt-Builds ". Obwohl keine Einschränkung angegeben wurde, funktionierte diese IDE-Option nur für C++ - Projekte.Glücklicherweise gilt diese Einschränkung nicht mehr für Visual Studio 11 "von www.visualstudiomagazine.com

Verwandte Themen