Freigeben über


Angeben von Build-Ereignissen (Visual Basic)

Buildereignisse in Visual Basic können zum Ausführen von Skripts, Makros oder anderen Aktionen als Teil des Kompilierungsprozesses verwendet werden. Vor-Build-Ereignisse treten vor der Kompilierung auf; Nach-Build-Ereignisse treten nach der Kompilierung auf.

So legen Sie Prä- und Postbuildereignisse fest

Um Buildereignisse für ein Visual Basic .NET Core- oder .NET 5- oder höher-Projekt anzuzeigen oder zu ändern, klicken Sie mit der rechten Maustaste auf den Projektknoten, und wählen Sie Eigenschaften (oder drücken Sie ALT-+EINGABETASTE), und wechseln Sie dann zu Kompilieren>Ereignisse. Geben Sie die gewünschte Befehlszeile ein. Das Arbeitsverzeichnis ist das Ausgabeverzeichnis.

Führen Sie für .NET Framework-Projekte die folgenden Schritte aus:

  1. Wenn ein Projekt im Lösungs-Explorerausgewählt ist, klicken Sie im Menü Projekt auf Eigenschaften.

  2. Klicken Sie auf die Registerkarte Kompilieren.

  3. Klicken Sie auf die Schaltfläche Buildereignisse, um das Dialogfeld Buildereignisse zu öffnen.

  4. Geben Sie die Kommandozeilenargumente für Ihre Pre-Build- oder Post-Build-Aktion ein und klicken Sie dann auf OK.

Buildereignisse werden im Dialogfeld Buildereignisse angegeben, das über die Seite Kompilieren des Projekt-Designers verfügbar ist.

Festlegen von Prä- und Postbuildereignissen

Angeben eines Buildereignisses

  1. Klicken Sie bei ausgewähltem Projekt im Projektmappen-Explorer im Menü Projekt auf Eigenschaften.

  2. Klicken Sie auf die Registerkarte Kompilieren.

  3. Klicken Sie auf die Schaltfläche Kompilierungsereignisse, um das Dialogfeld Kompilierungsereignisse zu öffnen.

  4. Geben Sie die Befehlszeilenargumente für Ihre Prä- oder Postbuildaktion ein, und klicken Sie dann auf OK.

Anmerkung

Fügen Sie eine call-Anweisung vor allen Postbuildbefehlen hinzu, die .bat Dateien ausführen. Beispiel: call C:\MyFile.bat oder call C:\MyFile.bat call C:\MyFile2.bat.

Anmerkung

Wenn Ihr Vorabbuild- oder Postbuildereignis nicht erfolgreich abgeschlossen wurde, können Sie den Build beenden, indem Sie die Ereignisaktion mit einem anderen Code als Null (0) beenden, der eine erfolgreiche Aktion angibt.

Beispiel: Ändern von Manifest-Informationen mithilfe eines Post-Build-Ereignisses

Das folgende Verfahren zeigt, wie Sie die Mindestversion des Betriebssystems im Anwendungsmanifest mithilfe eines .exe Befehls festlegen, der von einem Postbuildereignis aufgerufen wird (die .exe.manifest-Datei im Projektverzeichnis). Die Mindestversion des Betriebssystems ist eine vierteilige Nummer wie 4.10.0.0. Dazu ändert der Befehl den abschnitt <dependentOS> des Manifests:

<dependentOS>
   <osVersionInfo>
      <os majorVersion="4" minorVersion="10" buildNumber="0" servicePackMajor="0" />
   </osVersionInfo>
</dependentOS>

So erstellen Sie einen .exe Befehl zum Ändern des Anwendungsmanifests

  1. Erstellen Sie eine Konsolenanwendung für den Befehl. Klicken Sie im Menü Datei auf Neu, und klicken Sie dann auf Projekt.

  2. Wählen Sie im Dialogfeld Neues Projekt im Knoten Visual BasicWindows und dann die Vorlage Konsolenanwendung aus. Benennen Sie das Projekt ChangeOSVersionVB.

  3. Fügen Sie in Module1.vbdie folgende Zeile zu den anderen Imports Anweisungen am Anfang der Datei hinzu:

    Imports System.Xml
    
  4. Fügen Sie den folgenden Code in Sub Mainhinzu:

    Sub Main()
       Dim applicationManifestPath As String
       applicationManifestPath = My.Application.CommandLineArgs(0)
       Console.WriteLine("Application Manifest Path: " & applicationManifestPath.ToString)
    
       'Get version name
       Dim osVersion As Version
       If My.Application.CommandLineArgs.Count >= 2 Then
          osVersion = New Version(My.Application.CommandLineArgs(1).ToString)
       Else
          Throw New ArgumentException("OS Version not specified.")
       End If
       Console.WriteLine("Desired OS Version: " & osVersion.ToString())
    
       Dim document As XmlDocument
       Dim namespaceManager As XmlNamespaceManager
       namespaceManager = New XmlNamespaceManager(New NameTable())
       With namespaceManager
          .AddNamespace("asmv1", "urn:schemas-microsoft-com:asm.v1")
          .AddNamespace("asmv2", "urn:schemas-microsoft-com:asm.v2")
       End With
    
       document = New XmlDocument()
       document.Load(applicationManifestPath)
    
       Dim baseXPath As String
       baseXPath = "/asmv1:assembly/asmv2:dependency/asmv2:dependentOS/asmv2:osVersionInfo/asmv2:os"
    
       'Change minimum required OS Version.
       Dim node As XmlNode
       node = document.SelectSingleNode(baseXPath, namespaceManager)
       node.Attributes("majorVersion").Value = osVersion.Major.ToString()
       node.Attributes("minorVersion").Value = osVersion.Minor.ToString()
       node.Attributes("buildNumber").Value = osVersion.Build.ToString()
       node.Attributes("servicePackMajor").Value = osVersion.Revision.ToString()
    
       document.Save(applicationManifestPath)
    End Sub
    

    Der Befehl verwendet zwei Argumente. Das erste Argument ist der Pfad zum Anwendungsmanifest (d. h. der Ordner, in dem der Buildprozess das Manifest erstellt, in der Regel <ProjectName>.publish). Das zweite Argument ist die neue Betriebssystemversion.

  5. Klicken Sie im Menü Erstellen auf Projektmappe erstellen.

  6. Kopieren Sie die .exe Datei in ein Verzeichnis wie C:\TEMP\ChangeOSVersionVB.exe.

    Rufen Sie als Nächstes diesen Befehl in einem Postbuildereignis auf, um das Anwendungsmanifest zu ändern.

Um ein Post-Build-Ereignis aufzurufen, um das Anwendungsmanifest zu ändern

  1. Erstellen Sie eine Windows-Anwendung, damit das Projekt veröffentlicht werden kann. Klicken Sie im Menü Datei auf Neu, und klicken Sie dann auf Projekt.

  2. Wählen Sie im Dialogfeld Neues Projekt im Knoten Visual BasicWindows Desktop und dann die Vorlage Windows Forms App aus. Benennen Sie das Projekt VBWinApp.

  3. Klicken Sie für das im Projektmappen-Explorer ausgewählte Projekt im Menü Projekt auf Eigenschaften.

  4. Navigieren Sie im Projekt-Designer zu der Seite Veröffentlichen, und legen Sie den Veröffentlichungsort auf C:\TEMP fest.

  5. Veröffentlichen Sie das Projekt, indem Sie auf Jetzt veröffentlichenklicken.

    Die Manifestdatei wird erstellt und in C:\TEMP\VBWinApp_1_0_0_0\VBWinApp.exe.manifestabgelegt. Klicken Sie mit der rechten Maustaste auf die Datei, und klicken Sie dann auf Öffnen mit und Programm aus einer Liste auswählen und anschließend auf Editor, um das Manifest anzuzeigen.

    Suchen Sie in der Datei nach dem <osVersionInfo>-Element. Zum Beispiel könnte die Version lauten:

    <os majorVersion="4" minorVersion="10" buildNumber="0" servicePackMajor="0" />
    
  6. Navigieren Sie im Projekt-Designer zu der Registerkarte Kompilieren, und klicken Sie auf die Schaltfläche Buildereignisse, um das Dialogfeld Buildereignisse zu öffnen.

  7. Geben Sie im Feld Befehlszeile für Postbuildereignis den folgenden Befehl ein:

    C:\TEMP\ChangeOSVersionVB.exe "$(TargetPath).manifest" 5.1.2600.0

    Wenn Sie das Projekt erstellen, ändert dieser Befehl die Mindestversion des Betriebssystems im Anwendungsmanifest in 5.1.2600.0.

    Das $(TargetPath) Makro drückt den vollständigen Pfad für die erstellte ausführbare Datei aus. Daher gibt $(TargetPath).manifest das im bin Verzeichnis erstellte Anwendungsmanifest an. Durch die Veröffentlichung wird dieses Manifest an den Veröffentlichungsort kopiert, den Sie in einem vorherigen Schritt festgelegt haben.

  8. Veröffentlichen Sie das Projekt erneut. Wechseln Sie zur Seite Veröffentlichen, und klicken Sie anschließen auf Jetzt veröffentlichen.

    Zeigen Sie das Manifest erneut an. Wechseln Sie zum Veröffentlichungsverzeichnis, klicken Sie mit der rechten Maustaste auf die Datei, und klicken Sie auf Öffnen mit und dann Programm aus einer Liste auswählen und anschließend auf Editor, um das Manifest anzuzeigen.

    Die Version sollte jetzt folgendes lesen:

    <os majorVersion="5" minorVersion="1" buildNumber="2600" servicePackMajor="0" />