Dela via


Ange bygghändelser (Visual Basic)

Bygghändelser i Visual Basic kan användas för att köra skript, makron eller andra åtgärder som en del av kompileringsprocessen. Förkompileringshändelser inträffar före kompilering. händelser efter bygget inträffar efter kompilering.

Så här anger du för- och efterbyggnadshändelser

Om du vill visa eller ändra versionshändelser för ett Visual Basic .NET Core- eller .NET 5- och senare projekt högerklickar du på projektnoden och väljer Egenskaper (eller trycker på Alt+Retur) och går sedan till Kompilera>händelser. Ange önskad kommandorad. Arbetskatalogen är utdatakatalogen.

Följ dessa steg för .NET Framework-projekt:

  1. När ett projekt har valts i Solution Explorerklickar du på Egenskaperpå menyn Project .

  2. Klicka på fliken Kompilera.

  3. Klicka på knappen Skapa händelser för att öppna dialogrutan Skapa händelser.

  4. Ange kommandoradsargumenten för för- eller efterskapningsåtgärden och klicka sedan på OK.

Build-händelser anges i dialogrutan Build Events som finns på sidan Kompilera i Project Designer.

Så här anger du för- och efterbyggnadshändelser

Så här anger du en bygghändelse

  1. När ett projekt har valts i Solution Explorerklickar du på Egenskaperpå menyn Project .

  2. Klicka på fliken Kompilera.

  3. Klicka på knappen Skapa händelser för att öppna dialogrutan Skapa händelser.

  4. Ange kommandoradsargumenten för för- eller efterskapningsåtgärden och klicka sedan på OK.

Not

Lägg till en call-instruktion före alla kommandon efter bygget som kör .bat filer. Till exempel call C:\MyFile.bat eller call C:\MyFile.bat call C:\MyFile2.bat.

Not

Om din för- eller efterbuild-händelse inte har slutförts framgångsrikt kan du avsluta builden genom att avsluta händelseåtgärden med en annan kod än noll (0), vilket indikerar en lyckad åtgärd.

Exempel: Så här ändrar du manifestinformation med hjälp av en händelse efter bygget

Följande procedur visar hur du anger den lägsta versionen av operativsystemet i programmanifestet med hjälp av ett .exe-kommando som anropas från en post-build-händelse (.exe.manifest-filen i projektkatalogen). Den lägsta operativsystemversionen är ett nummer i fyra delar, till exempel 4.10.0.0. För att göra detta ändrar kommandot avsnittet <dependentOS> i manifestet:

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

Så här skapar du ett .exe kommando för att ändra programmanifestet

  1. Skapa ett konsolprogram för kommandot. På menyn Arkiv klickar du på Nyoch klickar sedan på Projekt.

  2. I dialogrutan Nytt projekt i noden Visual Basic väljer du Windows och sedan mallen Console Application. Ge projektet namnet ChangeOSVersionVB.

  3. I Module1.vblägger du till följande rad i de andra Imports-uttrycken överst i filen:

    Imports System.Xml
    
  4. Lägg till följande kod i Sub Main:

    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
    

    Kommandot tar två argument. Det första argumentet är sökvägen till programmanifestet (dvs. mappen där byggprocessen skapar manifestet, vanligtvis <ProjectName>.publish). Det andra argumentet är den nya versionen av operativsystemet.

  5. På menyn Build klickar du på Build Solution.

  6. Kopiera .exe-filen till en katalog som C:\TEMP\ChangeOSVersionVB.exe.

    Anropa sedan det här kommandot i en händelse efter bygget för att ändra programmanifestet.

Så här anropar du en händelse efter bygget för att ändra programmanifestet

  1. Skapa ett Windows-program för projektet som ska publiceras. På menyn Arkiv klickar du på Nyoch klickar sedan på Projekt.

  2. I dialogrutan Nytt projekt i noden Visual Basic väljer du Windows Desktop och sedan mallen Windows Forms App. Ge projektet namnet VBWinApp.

  3. När projektet är markerat i Solution Explorerklickar du på Egenskaperpå menyn Project .

  4. Project Designer-går du till sidan Publicera och anger Publiceringsplats till C:\TEMP.

  5. Publicera projektet genom att klicka på Publicera nu.

    Manifestfilen skapas och placeras i C:\TEMP\VBWinApp_1_0_0_0\VBWinApp.exe.manifest. Om du vill visa manifestet högerklickar du på filen och klickar på Öppna medoch klickar sedan på Välj programmet från en listaoch klickar sedan på Anteckningar.

    Sök i filen efter elementet <osVersionInfo>. Versionen kan till exempel vara:

    <os majorVersion="4" minorVersion="10" buildNumber="0" servicePackMajor="0" />
    
  6. I Project Designer-går du till fliken Kompilera och klickar på knappen Skapa händelser för att öppna dialogrutan Build Events.

  7. Ange följande kommando i rutan Kommandorad för händelse efter byggnad:

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

    När du skapar projektet ändrar det här kommandot den lägsta versionen av operativsystemet i programmanifestet till 5.1.2600.0.

    Makrot $(TargetPath) uttrycker den fullständiga sökvägen för den körbara fil som skapas. Därför anger $(TargetPath).manifest programmanifestet som skapades i katalogen bin. Publicering kopierar det här manifestet till den publiceringsplats som du angav tidigare.

  8. Publicera projektet igen. Gå till sidan Publicera och klicka på Publicera nu.

    Visa manifestet igen. Om du vill visa manifestet går du till publiceringskatalogen, högerklickar på filen och klickar på Öppna med och sedan Välj programmet från en listaoch klickar sedan på Anteckningar.

    Versionen bör nu läsa:

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