Bagikan melalui


Tentukan 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.

Cara menentukan event pra-build dan pasca-build

Untuk melihat atau mengubah peristiwa build untuk proyek Visual Basic .NET Core atau .NET 5 dan yang lebih baru, klik kanan pada simpul proyek, dan pilih Properti (atau tekan Alt+Enter), lalu buka Peristiwa Kompilasi>. Masukkan baris perintah yang diinginkan. Direktori kerja adalah direktori output.

Untuk proyek .NET Framework, ikuti langkah-langkah berikut:

  1. Dengan proyek yang dipilih di Solution Explorer, pada menu Proyek, klik Properties.

  2. Klik tab Kompilasi.

  3. Klik tombol Build Events untuk membuka kotak dialog Build Events.

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

Peristiwa build ditentukan dalam kotak dialog Build Events, tersedia dari halaman Kompilasi pada Project Designer.

Cara menentukan event pra-build dan pasca-build

Untuk menentukan peristiwa build

  1. Dengan proyek yang dipilih di Solution Explorer, pada menu Proyek, klik Properties.

  2. Klik tab Kompilasi.

  3. Klik tombol Build Events untuk membuka kotak dialog Build Events.

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

Nota

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

Nota

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.

Anda dapat mereferensikan "makro" (sebenarnya nama properti MSBuild) dalam skrip. Untuk mereferensikan properti, gunakan sintaks $(PropertyName), yang diganti dengan nilai properti saat skrip peristiwa dijalankan. Untuk daftar nilai yang umum digunakan, lihat Properti umum MSBuild. Mungkin ada properti lain yang didefinisikan dalam file proyek, dalam file yang diimpor ke dalam file proyek, dalam variabel lingkungan, atau diteruskan melalui baris perintah menggunakan sakelar MSBuild saat build dilakukan melalui baris perintah.

Contoh: Cara mengubah informasi manifes menggunakan peristiwa pasca-build

Prosedur berikut menunjukkan cara mengatur versi minimum sistem operasi 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 . Dari menu File, klik Baru, lalu klik Proyek.

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

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

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

  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. Dari menu File, klik Baru, lalu klik Proyek.

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

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

  4. Di Project Designer, buka halaman Terbitkan dan atur Lokasi Penerbitan ke C:\TEMP.

  5. Terbitkan proyek dengan mengklik Terbitkan Sekarang.

    File manifes akan dibangun dan dimasukkan ke 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 elemen <osVersionInfo>. Misalnya, versinya mungkin:

    <os majorVersion="4" minorVersion="10" buildNumber="0" servicePackMajor="0" />
    
  6. Di Project Designer , buka tab Kompilasi dan klik tombol Build Events untuk membuka kotak dialog Build Events.

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

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

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

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

  8. Terbitkan proyek lagi. Pergi ke 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" />