Sdílet prostřednictvím


Určení událostí sestavení (Visual Basic)

Události sestavení v jazyce Visual Basic lze použít ke spouštění skriptů, maker nebo jiných akcí v rámci procesu kompilace. Před kompilací dochází k událostem před sestavením; po kompilaci dochází k událostem po sestavení.

Jak určit události před sestavením a po sestavení

Pokud chcete zobrazit nebo změnit události sestavení pro projekt Visual Basic .NET Core nebo .NET 5 nebo novější, klikněte pravým tlačítkem myši na uzel projektu a zvolte Vlastnosti (nebo stiskněte Alt+Enter), přejděte na Kompilovat>události. Zadejte požadovaný příkazový řádek. Pracovní adresář je výstupní adresář.

Pro projekty rozhraní .NET Framework postupujte takto:

  1. Pokud je projekt vybraný v Průzkumníku řešení , vyberte v nabídce Projekt možnost Vlastnosti.

  2. Klikněte na kartu Zkompilovat.

  3. Kliknutím na tlačítko Události sestavení otevřete dialogové okno Události sestavení.

  4. Zadejte argumenty příkazového řádku pro akci před sestavením nebo po sestavení a klikněte na tlačítko OK.

Události sestavení jsou zadány v dialogovém okně Události sestavení dostupné na stránce Kompilacenávrháře projektu.

Jak určit události před sestavením a po sestavení

Chcete-li specifikovat událost sestavení

  1. Pokud je projekt vybraný v Průzkumníku řešení , vyberte v nabídce Projekt možnost Vlastnosti.

  2. Klikněte na kartu Zkompilovat.

  3. Kliknutím na tlačítko Události sestavení otevřete dialogové okno Události sestavení.

  4. Zadejte argumenty příkazového řádku pro akci před sestavením nebo po sestavení a klikněte na tlačítko OK.

Poznámka

call Před všechny příkazy po sestavení, které spouštějí .bat soubory, přidejte příkaz. Například call C:\MyFile.bat nebo call C:\MyFile.bat call C:\MyFile2.bat.

Poznámka

Pokud se událost před sestavením nebo po sestavení úspěšně nedokončí, můžete sestavení ukončit tak, že akci události ukončíte jiným kódem než nula (0), což značí úspěšnou akci.

Ve skriptech můžete odkazovat na makra (ve skutečnosti názvy vlastností MSBuild). Chcete-li odkazovat na vlastnost, použijte syntaxi $(PropertyName), která je nahrazena hodnotou vlastnosti při spuštění skriptu události. Seznam běžně používaných hodnot naleznete v tématu MSBuild společné vlastnosti. V souboru projektu mohou být definovány i další vlastnosti, v jakýchkoli importovaných souborech v souboru projektu, v proměnných prostředí nebo předány na příkazovém řádku pomocí -p přepínače MSBuild během sestavení příkazového řádku.

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í příkazu volaný .exe z události po sestavení ( .exe.manifest soubor v adresáři projektu). Minimální verze operačního systému je čtyřdílné číslo, například 4.10.0.0. Provedete to tak, že příkaz změní <dependentOS> oddíl manifestu:

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

Vytvoření příkazu .exe pro změnu manifestu aplikace

  1. Vytvořte konzolovou aplikaci pro příkaz. V nabídce Soubor klikněte na Novýa poté na Projekt.

  2. V dialogovém okně Nový projekt v uzlu Visual Basic vyberte Windows a potom šablonu konzolové aplikace. Pojmenujte projekt ChangeOSVersionVB.

  3. Do Module1.vbpřidejte následující řádek k ostatním příkazům Imports v horní části souboru:

    Imports System.Xml
    
  4. Do Sub Mainpřidejte následující kód:

    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
    

    Příkaz má dva argumenty. Prvním argumentem je cesta k manifestu aplikace (tj. složka, ve které proces sestavení vytvoří manifest, obvykle <ProjectName>.publish). Druhým argumentem je nová verze operačního systému.

  5. V nabídce Sestavení klepněte na Sestavení řešení.

  6. Zkopírujte soubor .exe do adresáře, například C:\TEMP\ChangeOSVersionVB.exe.

    Potom vyvoláte tento příkaz v události po sestavení a změňte manifest aplikace.

Vyvolání události po sestavení za účelem změny manifestu aplikace

  1. Vytvořte aplikaci pro Windows pro projekt, který se má publikovat. V nabídce Soubor klikněte na Novýa poté na Projekt.

  2. V dialogovém okně Nový projekt v uzlu Visual Basic vyberte Windows Desktop a potom šablonu aplikace Windows Forms. Pojmenujte projekt VBWinApp.

  3. Pokud je projekt vybraný v průzkumníku řešení , v nabídce Project klikněte na Vlastnosti.

  4. V návrháři projektu přejděte na stránku Publikovat a nastavte umístění publikování na C:\TEMP .

  5. 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, klepněte pravým tlačítkem myši na soubor a klepněte na tlačítko Otevřít s, klepněte na tlačítko Vyberte program ze seznamua potom klepněte na tlačítko Poznámkový blok.

    Vyhledejte v souboru prvek <osVersionInfo>. Verze může být například:

    <os majorVersion="4" minorVersion="10" buildNumber="0" servicePackMajor="0" />
    
  6. V návrháři projektu přejděte na kartu Kompilace a kliknutím na tlačítko Události sestavení otevřete dialogové okno Události sestavení.

  7. Do pole příkazového řádku události po sestavení zadejte následující příkaz:

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

    Př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.

    Makro $(TargetPath) vyjadřuje úplnou cestu pro vytvářený spustitelný soubor. $(TargetPath).manifest Proto určuje manifest aplikace vytvořený v adresáři bin. Publikování zkopíruje tento manifest do umístění publikování, které jste nastavili dříve.

  8. Znovu publikujte projekt. Přejděte na stránku Publikovat a klikněte na Publikovat nyní.

    Znovu zobrazte manifest. Chcete-li zobrazit manifest, přejděte do adresáře publikování, klepněte pravým tlačítkem myši na soubor a klepněte na příkaz Otevřít pomocí a potom Vyberte program ze seznamua potom klikněte na Poznámkový blok.

    Verze by teď měla číst:

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