Menentukan peristiwa build (Visual Basic)

Peristiwa build di Visual Basic dapat digunakan untuk menjalankan skrip, makro, atau tindakan lain sebagai bagian dari proses kompilasi. Peristiwa pra-build terjadi sebelum kompilasi; peristiwa pasca-build terjadi setelah kompilasi.

Peristiwa build ditentukan dalam kotak dialog Peristiwa Build, tersedia dari halaman Kompilasi Perancang Proyek.

Catatan

Visual Basic Express tidak mendukung entri peristiwa build. Ini hanya didukung dalam produk Visual Studio lengkap.

Cara menentukan peristiwa pra-build dan pasca-build

Untuk menentukan peristiwa build

  1. Dengan proyek yang dipilih di Penjelajah Solusi, pada menu Proyek, klik Properti.

  2. Klik tab Kompilasi.

  3. Klik tombol Bangun Acara untuk membuka kotak dialog Bangun Peristiwa .

  4. Masukkan argumen baris perintah untuk tindakan pra-build atau pasca-build Anda, lalu klik OK.

    Catatan

    call Tambahkan pernyataan sebelum semua perintah pasca-build yang menjalankan file .bat. Misalnya, call C:\MyFile.bat atau call C:\MyFile.bat call C:\MyFile2.bat.

    Catatan

    Jika peristiwa pra-build atau pasca-build Anda tidak berhasil diselesaikan, Anda dapat mengakhiri build dengan meminta tindakan peristiwa Anda keluar dengan kode selain nol (0), yang menunjukkan tindakan yang berhasil.

Contoh: Cara mengubah informasi manifes menggunakan peristiwa pasca-build

Prosedur berikut menunjukkan cara mengatur versi sistem operasi minimum dalam manifes aplikasi menggunakan perintah .exe yang dipanggil dari peristiwa pasca-build (file .exe.manifest di direktori proyek). Versi sistem operasi minimum adalah nomor empat bagian seperti 4.10.0.0. Untuk melakukan ini, perintah akan mengubah bagian <dependentOS> manifes:

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

Untuk membuat perintah .exe untuk mengubah manifes aplikasi

  1. Buat aplikasi konsol untuk perintah . Pada menu File, klik Baru, lalu klik Project.

  2. Dalam kotak dialog Proyek Baru, di simpul Visual Basic , pilih Windows lalu templat Aplikasi Konsol. Beri nama proyek ChangeOSVersionVB.

  3. Di Module1.vb, tambahkan baris berikut ke pernyataan lain Imports di bagian atas file:

    Imports System.Xml
    
  4. Tambahkan kode berikut ke 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
    

    Perintah mengambil dua argumen. Argumen pertama adalah jalur ke manifes aplikasi (yaitu, folder tempat proses build membuat manifes, biasanya ProjectName.publish>).< Argumen kedua adalah versi sistem operasi baru.

  5. Pada menu Build, klik Solusi Build.

  6. Salin file .exe ke direktori seperti C:\TEMP\ChangeOSVersionVB.exe.

    Selanjutnya, panggil perintah ini dalam peristiwa pasca-build untuk mengubah manifes aplikasi.

Untuk memanggil peristiwa pasca-build untuk mengubah manifes aplikasi

  1. Buat aplikasi Windows untuk proyek yang akan diterbitkan. Pada menu File, klik Baru, lalu klik Project.

  2. Dalam kotak dialog Proyek Baru, di simpul Visual Basic, pilih Windows Desktop lalu templat aplikasi Formulir Windows. Beri nama proyek VBWinApp.

  3. Dengan proyek dipilih di Penjelajah Solusi, pada menu Proyek, klik Properti.

  4. Di Perancang Proyek, buka halaman Terbitkan dan atur Lokasi penerbitan ke C:\TEMP.

  5. Terbitkan proyek dengan mengklik Terbitkan Sekarang.

    File manifes akan dibangun dan dimasukkan ke dalam C:\TEMP\VBWinApp_1_0_0_0\VBWinApp.exe.manifest. Untuk melihat manifes, klik kanan file dan klik Buka dengan, lalu klik Pilih program dari daftar, lalu klik Notepad.

    Cari di file untuk <osVersionInfo> elemen . Misalnya, versinya mungkin:

    <os majorVersion="4" minorVersion="10" buildNumber="0" servicePackMajor="0" />
    
  6. Di Perancang Proyek, buka tab Kompilasi dan klik tombol Bangun Peristiwa untuk membuka kotak dialog Bangun Peristiwa.

  7. Dalam kotak Baris Perintah Peristiwa Pasca-build, masukkan perintah berikut ini:

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

    Saat Anda membangun proyek, perintah ini akan mengubah versi sistem operasi minimum dalam manifes aplikasi menjadi 5.1.2600.0.

    $(TargetPath) Makro mengekspresikan jalur lengkap untuk executable yang sedang dibuat. Oleh karena itu, $(TargetPath).manifest akan menentukan manifes aplikasi yang dibuat di direktori bin . Penerbitan akan menyalin manifes ini ke lokasi penerbitan yang Anda tetapkan sebelumnya.

  8. Terbitkan proyek lagi. Buka halaman Terbitkan dan klik Terbitkan Sekarang.

    Lihat manifes lagi. Untuk melihat manifes, buka direktori terbitkan, klik kanan file dan klik Buka dengan lalu Pilih program dari daftar, lalu klik Notepad.

    Versi sekarang harus dibaca:

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