Aracılığıyla paylaş


Derleme olayları belirtme (Visual Basic)

Visual Basic'te derleme olayları, derleme işleminin bir parçası olarak betikleri, makroları veya diğer eylemleri çalıştırmak için kullanılabilir. Derleme öncesi olaylar derlemeden önce gerçekleşir; derleme sonrası olaylar derlemeden sonra gerçekleşir.

Derleme olayları, Proje Tasarım Aracı Derleme sayfasında bulunan Derleme Olayları iletişim kutusunda belirtilir.

Not

Visual Basic Express, derleme olaylarının girişini desteklemez. Bu yalnızca tam Visual Studio ürününde desteklenir.

Derleme öncesi ve derleme sonrası olayları belirtme

Derleme olayı belirtmek için

  1. Çözüm Gezgini'da bir proje seçiliyken, Proje menüsünde Özellikler'e tıklayın.

  2. Derle sekmesine tıklayın.

  3. Olayları Derle düğmesine tıklayarak Derleme Olayları iletişim kutusunu açın.

  4. Derleme öncesi veya derleme sonrası eyleminiz için komut satırı bağımsız değişkenlerini girin ve tamam'a tıklayın.

    Not

    .bat dosyalarını çalıştıran tüm derleme sonrası komutlarının önüne bir call deyim ekleyin. Örneğin, call C:\MyFile.bat veya call C:\MyFile.bat call C:\MyFile2.bat.

    Not

    Derleme öncesi veya derleme sonrası olayınız başarıyla tamamlanmazsa, olay eyleminizin sıfır (0) dışında bir kodla çıkışını yaparak derlemeyi sonlandırabilirsiniz ve bu da başarılı bir eylemi gösterir.

Örnek: Derleme sonrası olayı kullanarak bildirim bilgilerini değiştirme

Aşağıdaki yordamda, derleme sonrası olaydan (proje dizinindeki .exe.manifest dosyası) adlı bir .exe komutu kullanılarak uygulama bildiriminde en düşük işletim sistemi sürümünün nasıl ayarlanacağı gösterilmektedir. En düşük işletim sistemi sürümü, 4.10.0.0 gibi dört parçalı bir sayıdır. Bunu yapmak için komut bildirimin <dependentOS> bölümünü değiştirir:

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

Uygulama bildirimini değiştirmek üzere bir .exe komutu oluşturmak için

  1. komutu için bir konsol uygulaması oluşturun. Dosya menüsünde Yeni'ye ve ardından Proje'ye tıklayın.

  2. Yeni Proje iletişim kutusundaki Visual Basic düğümünde Windows'a ve ardından Konsol Uygulaması şablonuna tıklayın. Projeyi ChangeOSVersionVBolarak adlandırın.

  3. Module1.vb dosyasında, dosyanın en üstündeki diğer Imports deyimlere aşağıdaki satırı ekleyin:

    Imports System.Xml
    
  4. Aşağıdaki kodu Sub Main içine ekleyin:

    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
    

    komutu iki bağımsız değişken alır. İlk bağımsız değişken, uygulama bildiriminin yoludur (yani, derleme işleminin bildirimi oluşturduğu klasör, genellikle ProjectName.publish>).< İkinci bağımsız değişken, yeni işletim sistemi sürümüdür.

  5. Yapı menüsünde Yapı Çözümü’ne tıklayın.

  6. .exe dosyasını C:\TEMP\ChangeOSVersionVB.exe gibi bir dizine kopyalayın.

    Ardından, uygulama bildirimini değiştirmek için bu komutu derleme sonrası olayda çağırın.

Uygulama bildirimini değiştirmek üzere derleme sonrası olayı çağırmak için

  1. Projenin yayımlanması için bir Windows uygulaması oluşturun. Dosya menüsünde Yeni'ye ve ardından Proje'ye tıklayın.

  2. Yeni Proje iletişim kutusundaki Visual Basic düğümünde Windows Masaüstü'nü ve ardından Windows Forms Uygulama şablonunu seçin. Projeyi VBWinAppolarak adlandırın.

  3. proje Çözüm Gezgini'de seçili durumdayken, Proje menüsünde Özellikler'e tıklayın.

  4. Project Tasarım Aracı Yayımla sayfasına gidin ve Yayımlama konumunu C:\TEMP olarak ayarlayın.

  5. Şimdi Yayımla'ya tıklayarak projeyi yayımlayın.

    Bildirim dosyası derlenir ve C:\TEMP\VBWinApp_1_0_0_0\VBWinApp.exe.manifest dosyasına eklenir. Bildirimi görüntülemek için dosyaya sağ tıklayın ve Birlikte aç'a tıklayın, ardından Listeden programı seçin'e ve ardından Not Defteri'e tıklayın.

    dosyasında öğesini arayın <osVersionInfo> . Örneğin, sürüm şu olabilir:

    <os majorVersion="4" minorVersion="10" buildNumber="0" servicePackMajor="0" />
    
  6. Proje Tasarım Aracı Derle sekmesine gidin ve Derleme Olayları düğmesine tıklayarak Derleme Olayları iletişim kutusunu açın.

  7. Derleme Sonrası Olay Komut Satırı kutusuna aşağıdaki komutu girin:

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

    Projeyi oluşturduğunuzda, bu komut uygulama bildirimindeki en düşük işletim sistemi sürümünü 5.1.2600.0 olarak değiştirir.

    Makro, $(TargetPath) oluşturulan yürütülebilir dosyanın tam yolunu gösterir. Bu nedenle, $(TargetPath).manifest, bin dizininde oluşturulan uygulama bildirimini belirtir. Yayımlama, bu bildirimi daha önce ayarladığınız yayımlama konumuna kopyalar.

  8. Projeyi yeniden yayımlayın. Yayımla sayfasına gidin ve Şimdi Yayımla'ya tıklayın.

    Bildirimi yeniden görüntüleyin. Bildirimi görüntülemek için yayımlama dizinine gidin, dosyaya sağ tıklayın, Birlikte aç'a tıklayın ve ardından Listeden programı seçin ve ardından Not Defteri'e tıklayın.

    Sürüm artık şu şekilde olmalıdır:

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