Frage

Was bedeutet es, bauen eine Lösung / Projekt / Programm? Ich möchte sicherstellen, dass ich meine Definitionen richtig haben (so ich klingen nicht wie ein Idiot, wenn im Gespräch). In IDE können Sie (korrigiert mich wenn ich falsch liege) Compile Source-Code / Programmierung-Code in computerlesbare Maschinencode. Sie kann debug ein Programm, das im Wesentlichen durch das Programm verstärkt und auf der Suche nach Fehlern.

Aber was genau bedeutet Gebäude ein Programm tun? In VS bin ich mir bewusst, dass, wenn Sie ein Programm bauen es eine ausführbare Datei in einem Debug-Ordner erzeugt.

Jede Hard-Core-Tech-Definitionen dessen, was es bedeutet, zu bauen ein Programm?

War es hilfreich?

Lösung

Das sagt nicht zwangsläufig auf das, was den Menschen bedeuten, über ‚bauen‘, aber so weit wie MSBuild 2.0 betrifft, ist es der Code in Microsoft.Common.targets beschreibt thusly:

...
<!--
============================================================
                                    Build

The main build entry point.
============================================================
-->
<PropertyGroup>
    <BuildDependsOn>
        BeforeBuild;
        CoreBuild;
        AfterBuild
    </BuildDependsOn>
</PropertyGroup>
<Target
    Name="Build"
    Condition=" '$(_InvalidConfigurationWarning)' != 'true' "
    DependsOnTargets="$(BuildDependsOn)"
    Outputs="$(TargetPath)"/>

<!--
============================================================
                                    BeforeBuild

Redefine this target in your project in order to run tasks just before Build
============================================================
-->
<Target Name="BeforeBuild"/>

<!--
============================================================
                                    AfterBuild

Redefine this target in your project in order to run tasks just after Build 
============================================================
-->
<Target Name="AfterBuild"/>

<!--
============================================================
                                    CoreBuild

The core build step calls each of the build targets.
============================================================
-->
<PropertyGroup>
    <CoreBuildDependsOn>
          BuildOnlySettings;
          PrepareForBuild;
          PreBuildEvent;
          UnmanagedUnregistration;
          ResolveReferences;
          PrepareResources;
          ResolveKeySource;
          Compile;
          GenerateSerializationAssemblies;
          CreateSatelliteAssemblies;
          GenerateManifests;
          GetTargetPath;
          PrepareForRun;
          UnmanagedRegistration;
          IncrementalClean;
          PostBuildEvent
    </CoreBuildDependsOn>
</PropertyGroup>
<Target
    Name="CoreBuild"
    DependsOnTargets="$(CoreBuildDependsOn)">

    <OnError ExecuteTargets="_TimeStampAfterCompile;PostBuildEvent" Condition="'$(RunPostBuildEvent)'=='Always' or '$(RunPostBuildEvent)'=='OnOutputUpdated'"/>
    <OnError ExecuteTargets="_CleanRecordFileWrites"/>

</Target>
...

was darauf schließen lässt, dass ‚bauen‘ bedeutet in etwa „kompilieren sowie alle zugehörigen Hilfs Ereignisse, die Sie aus dem Code-Artefakte zu einem ausfahrbaren Ergebnis zu erhalten“.

Andere Tipps

Bauen bedeutet, dass viele Dinge für viele Menschen, aber im Allgemeinen bedeutet, dass es mit Quelldateien von den Entwicklern hergestellt beginnen und mit Dingen wie Installationspakete enden, die für den Einsatz bereit sind, .

"Die Build" kann viele Dinge enthalten:

  • Erstellen von Quelldateien (für Sprachen / Umgebungen, die einen separaten / expliziten Kompilierschritt unterstützen)
  • Die Verknüpfung von Objektcode (für Sprachen / Umgebungen, die einen separaten / explizite Verknüpfung Schritt unterstützen)
  • Herstellung von Verteilungspaketen, die auch als "Installateure"
  • Generierung der Dokumentation, die in den Quellcode-Dateien eingebettet ist, z.B. Doxygen, Javadoc
  • Durchführung von automatisierten Tests wie Unit-Tests, statischen Analyse-Tests und Performance-Tests
  • Generierung von Berichten, die das Entwicklungsteam sagen, wie viele Warnungen und Fehler während des Build aufgetreten
  • Bereitstellung von Verteilungspaketen. Zum Beispiel könnte die Build automatisch bereitstellen / eine neue Version einer Web-Anwendung veröffentlichen (unter der Annahme, dass der Build erfolgreich ist).

„Die Build“ können „von Hand“ getan werden, oder es kann automatisiert werden, oder einige Mischung aus beiden. Eine manuelle Build ist eine Ansammlung, die Befehle bauen wie Compilern erfordert nacheinander ausgeführt werden. Ein automatisiertes Build-Pakete alle der einzelnen Build-Tools in ein großes Bauprogramm zusammen, die (im Idealfall) sein kann in einem einzigen Schritt ausgeführt werden.

Es bedeutet den Prozess der Menschen lesbare Quelle Artefakte in maschinenlesbaren Artefakte umwandelt.

Viele Projekte umfassen viele Quelldateien. Grundsätzlich können Sie manuell eine dieser Dateien von selbst zusammenstellen -. Sie verwenden einen Compiler, die Quelldatei in einen (temporären) Objektdatei enthält Maschinencode zu kompilieren

In der Praxis ist es viel zu mühsam manuell jede Quelldatei einen nach dem anderem zu kompilieren, und noch langweiliger manuell zu verfolgen, welche Quelldateien müssen neu kompiliert werden. So bauen wir das gesamte Projekt auf einmal durch ein automatisiertes Build-Programm ausgeführt wird - in der Regel als „machen“. Das Programm geht durch eine Liste von Quelldateien, die oft noch in einer anderen „Quelle“ Datei „makefile“ genannt gespeichert sind, und ruft den Compiler auf jeder - viele Versionen von „make“ intelligent genug sind, um nur die Dateien neu kompilieren, die sich geändert haben und so müssen neu kompiliert werden.

Während der Zusammenstellung ist wohl der wichtigste Teil des Build-Prozesses, oft ein „Build“ läuft viele andere Programme nach dem Compiler. Gelegentlich wird ein vollständiges Build wird mehr Zeit in diese Programme verbringen laufen als der Compiler ausgeführt wird.

Zum Beispiel, viele Menschen finden es praktisch, eine einzige Taste nur um nicht die gesamten Quellcode auf die neueste Version kompilieren, aber auch eine Standard-Testreihe ( C2: One Button Testing ). So ist auch die Make-Datei listet was Befehle benötigt werden, um diese Tests durchgeführt, die einen Teil des Build-Prozesses werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top