Condividi tramite


Procedura: specificare gli eventi di compilazione (Visual Basic)

Gli eventi di compilazione in Visual Basic possono essere utilizzati per l'esecuzione di script, macro o altre azioni nell'ambito del processo di compilazione. Gli eventi pre-compilazione hanno luogo prima della compilazione, mentre gli eventi post-compilazione hanno luogo dopo la compilazione.

Gli eventi di compilazione vengono specificati nella finestra di dialogo Eventi di compilazione a cui è possibile accedere dalla pagina Compila di Progettazione progetti.

Come specificare gli eventi di pre-compilazione e post-compilazione

Per specificare un evento di compilazione

  1. Con un progetto selezionato in Esplora soluzioni, scegliere Proprietà dal menu Progetto.

  2. Fare clic sulla scheda Compila.

  3. Scegliere il pulsante Eventi di compilazione per visualizzare la finestra di dialogo Eventi di compilazione.

  4. Immettere gli argomenti della riga di comando per l'azione pre-compilazione o post-compilazione, quindi scegliere OK.

    Nota

    Aggiungere un'istruzione call prima di tutti i comandi di post-compilazione che eseguono file BAT. Ad esempio, call C:\MyFile.bat o call C:\MyFile.bat call C:\MyFile2.bat.

    Nota

    Se l'evento di pre-compilazione o post-compilazione non viene completato correttamente, è possibile terminare la compilazione impostando l'azione evento in modo che si chiuda con un codice diverso da zero (0), che indica un'azione riuscita.

Esempio: come modificare le informazioni del manifesto utilizzando un evento di post-compilazione

La procedura descritta di seguito illustra come impostare la versione minima del sistema operativo nel manifesto dell'applicazione utilizzando un comando exe chiamato da un evento di post-compilazione (il file exe.manifest nella directory del progetto). La versione minima del sistema operativo è un numero costituito da quattro parti, ad esempio 4.10.0.0. Per eseguire questa operazione, il comando modificherà la sezione <dependentOS> del manifesto:

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

Per creare un comando exe per la modifica del manifesto dell'applicazione

  1. Creare un'applicazione console per il comando. Scegliere Nuovo dal menu File, quindi Progetto.

  2. Nella finestra di dialogo Nuovo progetto espandere il nodo Visual Basic, selezionare Finestre e fare clic sul modello Applicazione console. Assegnare il nome ChangeOSVersionVB al progetto.

  3. In Module1.vb, aggiungere la riga seguente all'altra istruzione Imports nella parte superiore del file:

    Imports System.Xml
    
  4. Aggiungere il codice seguente in 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
    

    Il comando accetta due argomenti. Il primo argomento è il percorso del manifesto dell'applicazione (cioè, la cartella in cui viene creato il manifesto durante il processo di compilazione, in genere Projectname.publish). Il secondo argomento è la nuova versione del sistema operativo.

  5. Scegliere Compila soluzione dal menu Compila.

  6. Copiare il file exe in una directory, ad esempio C:\TEMP\ChangeOSVersionVB.exe.

Quindi, richiamare questo comando in un evento di post-compilazione per modificare il manifesto dell'applicazione.

Per richiamare un evento di post-compilazione per modificare il manifesto dell'applicazione

  1. Creare un'applicazione Windows per il progetto da pubblicare. Scegliere Nuovo dal menu File, quindi Progetto.

  2. Nella finestra di dialogo Nuovo progetto espandere il nodo Visual Basic, selezionare Finestre e fare clic sul modello Applicazione Windows. Assegnare il nome VBWinApp al progetto.

  3. Con il progetto selezionato in Esplora soluzioni, scegliere Proprietà dal menu Progetto.

  4. In Progettazione progetti passare alla pagina Pubblica e impostare Posizione pubblicazione su C:\TEMP\.

  5. Pubblicare il progetto facendo clic su Pubblica.

    Il file manifesto verrà compilato e collocato in C:\TEMP\VBWinApp_1_0_0_0\VBWinApp.exe.manifest. Per visualizzare il manifesto, fare clic con il pulsante destro del mouse sul file e scegliere Apri con, quindi fare clic su Seleziona il programma da un elenco e selezionare Blocco note.

    Cercare l'elemento <osVersionInfo> nel file. Ad esempio, la versione potrebbe essere la seguente:

    <os majorVersion="4" minorVersion="10" buildNumber="0" servicePackMajor="0" />
    
  6. In Progettazione progetti passare alla scheda Compila e fare clic sul pulsante Eventi di compilazione per visualizzare la finestra di dialogo Eventi di compilazione.

  7. Nella casella Riga di comando eventi post-compilazione immettere il comando seguente:

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

    Al momento della compilazione del progetto, questo comando imposterà la versione minima del sistema operativo nel manifesto dell'applicazione su 5.1.2600.0.

    La macro $(TargetPath) indica il percorso completo dell'eseguibile in fase di creazione. Di conseguenza, $ (TargetPath) .manifest specificherà il manifesto dell'applicazione creato nella directory bin. Con la pubblicazione, questo manifesto verrà copiato nel percorso di pubblicazione impostato in precedenza.

  8. Pubblicare nuovamente il progetto. Accedere alla pagina Pubblica e fare clic su Pubblica.

    Visualizzare nuovamente il manifesto. Per visualizzare il manifesto, passare alla directory di pubblicazione, fare clic con il pulsante destro del mouse sul file e scegliere Apri con, quindi fare clic su Seleziona il programma da un elenco e selezionare Blocco note.

    La versione dovrebbe risultare come segue:

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

Vedere anche

Attività

Procedura: specificare eventi di compilazione (C#)

Riferimenti

Pagina Compilazione, Progettazione progetti (Visual Basic)

Pagina Pubblica, Progettazione progetti

Finestra di dialogo Riga di comando eventi pre-compilazione/post-compilazione

Altre risorse

Gestione delle proprietà di compilazione