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:
När ett projekt har valts i Solution Explorerklickar du på Egenskaperpå menyn Project .
Klicka på fliken Kompilera.
Klicka på knappen Skapa händelser för att öppna dialogrutan Skapa händelser.
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
När ett projekt har valts i Solution Explorerklickar du på Egenskaperpå menyn Project .
Klicka på fliken Kompilera.
Klicka på knappen Skapa händelser för att öppna dialogrutan Skapa händelser.
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
Skapa ett konsolprogram för kommandot. På menyn Arkiv klickar du på Nyoch klickar sedan på Projekt.
I dialogrutan Nytt projekt i noden Visual Basic väljer du Windows och sedan mallen Console Application. Ge projektet namnet
ChangeOSVersionVB
.I Module1.vblägger du till följande rad i de andra
Imports
-uttrycken överst i filen:Imports System.Xml
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.
På menyn Build klickar du på Build Solution.
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
Skapa ett Windows-program för projektet som ska publiceras. På menyn Arkiv klickar du på Nyoch klickar sedan på Projekt.
I dialogrutan Nytt projekt i noden Visual Basic väljer du Windows Desktop och sedan mallen Windows Forms App. Ge projektet namnet
VBWinApp
.När projektet är markerat i Solution Explorerklickar du på Egenskaperpå menyn Project .
På Project Designer-går du till sidan Publicera och anger Publiceringsplats till C:\TEMP.
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" />
I Project Designer-går du till fliken Kompilera och klickar på knappen Skapa händelser för att öppna dialogrutan Build Events.
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.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" />