Condividi tramite


Procedura dettagliata: utilizzo di un'azione personalizzata per la precompilazione di un assembly in fase di installazione

Aggiornamento: novembre 2007

Leazioni personalizzate consentono di specificare azioni aggiuntive da eseguire nel computer di destinazione al termine dell'installazione. In questa procedura dettagliata, ad esempio, viene passato il nome del percorso di una DLL alla proprietà CustomActionData allo scopo di precompilare l'assembly nel codice nativo durante l'installazione.

Nota:

Le finestre di dialogo e i comandi di menu visualizzati potrebbero variare rispetto a quanto descritto nella Guida in base alle impostazioni attive o all'edizione in uso. Per modificare le impostazioni, scegliere Importa/Esporta impostazioni dal menu Strumenti. Per ulteriori informazioni, vedere Impostazioni di Visual Studio.

Nota:

Di seguito viene descritto come creare un progetto di distribuzione utilizzando un progetto di Visual Basic. I principi generali sono validi per tutti i progetti di Visual Studio che supportano la distribuzione di applicazioni Windows.

Per creare la classe di un'azione personalizzata

  1. Scegliere Nuovoprogettodal menu File.

  2. Nel riquadro Tipo progetto della finestra di dialogo Nuovo progetto scegliere Visual Basic, quindi selezionare Libreria di classi nel riquadro Modelli. Nella casella Nome digitare InstallClass.

  3. Scegliere Aggiungi nuovo elemento dal menu Progetto.

  4. Nella finestra di dialogo Aggiungi nuovo elemento scegliere Classe Installer. Nella casella Nome digitare InstallClass.vb. Fare clic su Aggiungi per aggiungere la classe al progetto.

Per aggiungere codice all'azione personalizzata

  1. Fare clic con il pulsante destro del mouse su InstallClass.vb in Esplora soluzioni (o sull'area di progettazione), quindi scegliere Visualizza codice per aprire l'editor del codice. Aggiungere all'inizio del modulo il codice riportato di seguito sotto Imports System.Configuration.Install:

    Imports System.Runtime.InteropServices
    Imports System.Text
    
  2. In InstallClass.vb aggiungere la seguente dichiarazione sotto Public Class InstallClass:

    Private Declare Function GetCORSystemDirectory Lib "mscoree.dll" _
      (<Runtime.InteropServices.MarshalAs( _
      System.Runtime.InteropServices.UnmanagedType.LPWStr)> _
      ByVal Buffer As System.Text.StringBuilder, _
      ByVal BufferLength As Integer, ByRef Length As Integer) As Integer
    
  3. In InstallClass.vb, dopo l'istruzione End Sub di MyBase.New, aggiungere la seguente routine per eseguire l'override della routine Install della classe base:

    <Security.Permissions.SecurityPermission(Security.Permissions.SecurityAction.Demand)> _
    Public Overrides Sub Install(ByVal savedState As _
      System.Collections.IDictionary)
    
       MyBase.Install(savedState)
       Dim Args As String = Me.Context.Parameters.Item("Args")
    
       If Args = "" Then
          Throw New InstallException("No arguments specified")
       End If
    
       ' Gets the path to the Framework directory.
       Dim Path As New System.Text.StringBuilder(1024)
       Dim Size As Integer
       GetCORSystemDirectory(Path, Path.Capacity, Size)
    
       Dim P As Process
       ' Quotes the arguments, in case they have a space in them.
       Dim Si As New ProcessStartInfo(Path.ToString() & "ngen.exe", Chr(34) _
         & Args & Chr(34))
       Si.WindowStyle = ProcessWindowStyle.Hidden
       Try
          P = Process.Start(Si)
          P.WaitForExit()
       Catch e As Exception
          Throw New InstallException(e.Message)
       End Try
    End Sub
    

Per aggiungere un progetto di distribuzione

  1. Scegliere Aggiungi dal menu File, quindi Nuovo progetto.

  2. Nel riquadro Tipo progetto della finestra di dialogo Aggiungi nuovo progetto scegliere Installazione e distribuzione, quindi selezionare Progetto di installazione nel riquadro Modelli. Nella casella Nome digitare InstallClass Installer.

  3. Nella finestra Proprietà selezionare la proprietà ProductName e digitare InstallClass.

  4. Nell'Editor del file system selezionare Cartella Applicazione. Scegliere Aggiungi dal menu Azione, quindi Output progetto.

  5. Nella finestra di dialogo Aggiungi gruppo output progetto scegliere l'output primario per il progetto InstallClass, quindi scegliere OK per chiudere la finestra di dialogo.

Per aggiungere l'azione personalizzata

  1. Selezionare il progetto InstallClass Installer in Esplora soluzioni. Scegliere Editor dal menu Visualizza, quindi Azioni personalizzate.

  2. Nell'Editor delle azioni personalizzate selezionare il nodo Azioni personalizzate. Scegliere Aggiungi azione personalizzata dal menu Azione.

  3. Nella finestra di dialogo Seleziona elemento nel progetto fare doppio clic su Cartella Applicazione, quindi selezionare Ouput primario da InstallClass (Attivo). Fare clic su OK per aggiungere l'azione personalizzata InstallClass a tutti e quattro i nodi.

  4. Selezionare il nodo Primary output from InstallClass (Active) sotto il nodo Installa.

  5. Nella finestra Proprietà selezionare la proprietà CustomActionData e digitare /Args="[TARGETDIR]InstallClass.dll". Includere le virgolette doppie.

  6. Ripetere la procedura per ciascuna delle altre tre istanze di Ouput primario da InstallClass (Attivo).

  7. Scegliere Genera InstallClass Installer dal menu Genera.

Per effettuare l'installazione nel computer di sviluppo

  • Selezionare il progetto InstallClass Installer in Esplora soluzioni. Scegliere Installa dal menu Progetto.

    Nota:

    Per eseguire il programma di installazione, è necessario disporre delle autorizzazioni di installazione nel computer.

Per effettuare la distribuzione in un altro computer

  1. In Esplora risorse passare alla directory del progetto e trovare il programma di installazione appena generato. Il percorso predefinito sarà \Documents and Settings\yourloginname\Documenti\Visual Studio 2005\Projects\Solution Folder Name\My Notepad Installer\project configuration\My Notepad Installer.msi. Il valore predefinito di project configuration è Debug oppure Release

  2. Copiare InstallClass Installer.msi, Setup.exe e tutti gli altri file e sottodirectory della directory in un altro computer.

    Nota:

    Per effettuare l'installazione in un computer non in rete, copiare i file su un supporto tradizionale, ad esempio un CD-ROM.

  3. Nel computer di destinazione fare doppio clic sul file Setup.exe per eseguire il programma di installazione.

    Nota:

    Per eseguire il programma di installazione, è necessario disporre delle autorizzazioni di installazione nel computer.

Per eseguire il test dell'installazione

  • Passare alla cartella dell'assembly %windir%\assembly (ad esempio C:\Windows\assembly) e trovare InstallClass. Nella colonna Tipo dovrebbe già essere specificato il tipo Immagini native.

Per rimuovere l'applicazione

  1. Nel Pannello di controllo di Windows fare doppio clic su Installazione applicazioni.

  2. Nella finestra di dialogo Installazione applicazioni selezionare InstallClass Installer, fare clic su Rimuovi, quindi scegliere OK per chiudere la finestra di dialogo.

    Suggerimento:

    Per eseguire la disinstallazione dal computer di sviluppo, scegliere Disinstalla dal menu Progetto.

Vedere anche

Concetti

Compilazione di MSIL in codice nativo

Riferimenti

Proprietà CustomActionData

Generatore di immagini native (Ngen.exe)

Altre risorse

Gestione delle azioni personalizzate durante la distribuzione