Postupy: určení událostí sestavení (Visual Basic)
události sestavení v Visual Basic lze použít ke spouštění skriptů, maker nebo jiných akcí jako součást procesu kompilace. Před kompilací dojde k událostem před sestavením; Po kompilaci dojde k událostem po sestavení.
události sestavení jsou uvedeny v dialogovém okně události sestavení , které jsou k dispozici na stránce kompilovat v návrháři Project.
Poznámka
Visual Basic Express nepodporuje záznam událostí sestavení. to je podporováno pouze v plném Visual Studio produktu.
Jak zadat události před sestavením a po sestavení
Určení události sestavení
po výběru projektu v Průzkumník řešení klikněte v nabídce Project na příkaz vlastnosti.
Klikněte na kartu kompilovat .
Kliknutím na tlačítko události sestavení otevřete dialogové okno události sestavení .
Zadejte argumenty příkazového řádku pro akci před sestavením nebo po sestavení a pak klikněte na OK.
Poznámka
Přidejte
callpříkaz před všechny příkazy po sestavení, které spouštějí .bat soubory. Příkladem jecall C:\MyFile.batnebocall C:\MyFile.bat call C:\MyFile2.bat.Poznámka
Pokud událost před sestavením nebo po sestavení není úspěšně dokončena, můžete ukončit sestavení tím, že se akce události ukončí s kódem jiným než nula (0), což označuje úspěšnou akci.
Příklad: jak změnit informace o manifestu pomocí události po sestavení
Následující postup ukazuje, jak nastavit minimální verzi operačního systému v manifestu aplikace pomocí .exe příkazu s názvem z události po sestavení (soubor .exe. manifest v adresáři projektu). Minimální verze operačního systému je číslo se čtyřmi částmi, například 4.10.0.0. K tomu příkaz změní <dependentOS> část manifestu:
<dependentOS>
<osVersionInfo>
<os majorVersion="4" minorVersion="10" buildNumber="0" servicePackMajor="0" />
</osVersionInfo>
</dependentOS>
Vytvoření příkazu .exe pro změnu manifestu aplikace
Vytvořte konzolovou aplikaci pro příkaz. V nabídce Soubor klikněte na položku Nový a potom klikněte na položku Projekt.
v dialogovém okně nový Project v uzlu Visual Basic vyberte Windows a pak šablonu konzolová aplikace . Pojmenujte projekt
ChangeOSVersionVB.V Module1. vb přidejte k ostatním
Importspříkazům v horní části souboru následující řádek:Imports System.XmlDo tohoto pole přidejte následující kód
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 SubPříkaz přijímá dva argumenty. První argument je cesta k manifestu aplikace (to je složka, ve které proces sestavení vytváří manifest, obvykle <ProjectName> publikování). Druhým argumentem je nová verze operačního systému.
V nabídce Sestavení klikněte na Sestavit řešení.
Zkopírujte soubor .exe do adresáře, jako je například C:\TEMP\ChangeOSVersionVB.exe.
Dále vyvolejte tento příkaz v události po sestavení pro změnu manifestu aplikace.
Chcete-li vyvolat událost po sestavení pro změnu manifestu aplikace
vytvořte aplikaci Windows pro projekt, který chcete publikovat. V nabídce Soubor klikněte na položku Nový a potom klikněte na položku Projekt.
v dialogovém okně nový Project v uzlu Visual Basic vyberte Windows plocha a pak šablonu aplikace model Windows Forms . Pojmenujte projekt
VBWinApp.po výběru projektu v Průzkumník řešení v nabídce Project klikněte na vlastnosti.
v návrháři Project otevřete stránku publikovat a nastavte umístění pro publikování na C:\TEMP.
Publikujte projekt kliknutím na Publikovat nyní.
Soubor manifestu bude sestaven a vložen do souboru C:\TEMP\VBWinApp_1_0_0_0\VBWinApp.exe. manifest. chcete-li zobrazit manifest, klikněte na něj pravým tlačítkem myši a klikněte na příkaz otevřít v programu, potom klikněte na možnost vybrat program v seznamu a poté klikněte na možnost Poznámkový blok.
Vyhledejte v souboru
<osVersionInfo>element. Například verze může být:<os majorVersion="4" minorVersion="10" buildNumber="0" servicePackMajor="0" />v návrháři Project přejděte na kartu kompilovat a kliknutím na tlačítko události sestavení otevřete dialogové okno události sestavení .
Do pole příkazový řádek události po sestavení zadejte následující příkaz:
C:\TEMP\ChangeOSVersionVB.exe "$(TargetPath).manifest" 5.1.2600.0Při sestavování projektu tento příkaz změní minimální verzi operačního systému v manifestu aplikace na 5.1.2600.0.
$(TargetPath)Makro vyjadřuje úplnou cestu pro spustitelný soubor, který se vytváří. Proto $ (TargetPath). manifest určí manifest aplikace vytvořený v adresáři bin . Publikováním se tento manifest zkopíruje do umístění pro publikování, které jste nastavili dříve.Publikujte projekt znovu. Přejděte na stránku publikovat a klikněte na publikovat.
Zobrazte manifest znovu. chcete-li zobrazit manifest, přejděte do adresáře publish, klikněte pravým tlačítkem myši na soubor a klikněte na příkaz otevřít v programu a potom vyberte požadovaný program v seznamu a klikněte na tlačítko Poznámkový blok.
Verze by teď měla číst:
<os majorVersion="5" minorVersion="1" buildNumber="2600" servicePackMajor="0" />