Installutil.exe (Strumento Programma di installazione)
Lo strumento Programma di installazione è un'utilità riga di comando che consente di installare e disinstallare le risorse del server eseguendo i componenti del programma di installazione di assembly specificati. Questo strumento funziona insieme alle classi nello spazio dei nomi System.Configuration.Install.
Questo strumento viene installato automaticamente con Visual Studio e con Windows SDK. Per eseguire lo strumento, si consiglia di utilizzare il prompt dei comandi di Visual Studio o il prompt dei comandi di Windows SDK (shell di CMD). Queste utilità consentono di eseguire facilmente lo strumento, senza dover passare alla cartella di installazione. Per ulteriori informazioni, vedere Prompt dei comandi di Visual Studio e Windows SDK.
Se si dispone di Visual Studio installato sul computer: nella barra delle applicazioni, fare clic su Start, fare clic su All Programs, fare clic su Visual Studio, fare clic su Visual Studio Tools e quindi su Visual Studio Command Prompt.
In alternativa
Se si dispone di Windows SDK installato sul computer: nella barra delle applicazioni, fare clic su Start, fare clic su All Programs, fare clic sulla cartella di Windows SDK e quindi su Command Prompt (o CMD Shell).
Al prompt dei comandi digitare quanto segue:
installutil [/u[ninstall]] [options] assembly [[options] assembly] ...
Argomento |
Oggetto di descrizione |
---|---|
assembly |
Il nome file dell'assembly in cui eseguire i componenti del programma di installazione. Omettere questo parametro se si desidera specificare il nome sicuro dell'assembly utilizzando l'opzione /AssemblyName. |
Opzione |
Oggetto di descrizione |
---|---|
/h[elp] In alternativa /? |
Visualizza la sintassi e le opzioni dei comandi dello strumento. |
/help assembly In alternativa /? assembly |
Vengono mostrate le opzioni aggiuntive riconosciute dai singoli programmi di installazione all'interno dell'assembly specificato, insieme alla sintassi del comando e alle opzioni per InstallUtil.exe. Questa opzione consente di aggiungere il testo restituito dalla proprietà Installer.HelpText di ogni parte del programma di installazione al testo della Guida di InstallUtil.exe. |
/AssemblyName "Nomeassembly ,Version=principale.secondaria.build.revisione ,Culture=impostazionilocali ,PublicKeyToken=tokenchiavepubblica" |
Specifica il nome sicuro di un assembly che verrà registrato nella Global Assembly Cache. Il nome dell'assembly deve essere completo, con versione, impostazioni cultura e token di chiave pubblica. Il nome deve essere racchiuso tra virgolette. Ad esempio, "myAssembly, Culture=neutral, PublicKeyToken=0038abc9deabfle5, Version=4.0.0.0" è un nome di assembly completo. |
/InstallStateDir=[Nomedirectory] |
Specifica la directory del file con estensione InstallState contenente i dati utilizzati per la disinstallazione dell'assembly. La directory predefinita è quella che contiene l'assembly. |
/LogFile=[nomefile] |
Specifica il nome del file di log in cui è registrato lo stato dell'installazione. Per impostazione predefinita, se l'opzione /LogFile viene omessa, viene creato un file di log denominato assemblyname .InstallLog. Se nome file viene omesso, nessun file di log verrà generato. |
/LogToConsole={true|false} |
Se true, visualizza l'output sulla console. Se ha valore false (impostazione predefinita), evita la visualizzazione dell'output sulla console. |
/ShowCallStack |
Restituisce lo stack di chiamate al file di log se si verifica un'eccezione durante l'installazione. |
/u[ninstall] |
Disinstalla gli assembly specificati. A differenza delle altre opzioni, l'opzione /u viene applicata a tutti gli assembly, indipendentemente dalla posizione dell'opzione nella riga di comando. |
I singoli programmi di installazione utilizzati all'interno di un assembly sono in grado di riconoscere le opzioni oltre a quelle elencate nella sezione Opzioni. Per ulteriori informazioni su queste opzioni, eseguire InstallUtil.exe con i percorsi degli assembly sulla riga di comando con l'opzione /? o /help. Per specificare queste opzioni, includerle nella riga di comando con le opzioni riconosciute da InstallUtil.exe.
Nota |
---|
Il testo della Guida sulle opzioni supportate da singoli componenti del programma di installazione viene restituito dalla proprietà Installer.HelpText.Le singole opzioni che sono state inserite nella riga di comando sono accessibili a livello di programmazione dalla proprietà Installer.Context. |
Tutte le opzioni e i parametri della riga di comando vengono scritti nel file di log dell'installazione. Tuttavia, se si utilizza il parametro /Password, che è riconosciuto da alcuni componenti del programma di installazione, le informazioni relative alla password verranno sostituite da otto asterischi (*) e non verranno visualizzate nel file di log.
Importante |
---|
In alcuni casi, i parametri passati al programma di installazione possono includere informazioni riservate o personali che, per impostazione predefinita, vengono scritte in un file di log di testo normale.Per evitare questo comportamento, è possibile eliminare il file di log specificando /LogFile= (senza l'argomento nomefile) dopo Installutil.exe nella riga di comando. |
L e applicazioni .NET Framework sono costituite da file di programma tradizionali e risorse associate, quali code di messaggi, log eventi e contatori delle prestazioni, che è necessario creare quando l'applicazione viene distribuita. È possibile utilizzare i componenti del programma di installazione di un assembly per creare queste risorse quando l'applicazione viene installata e rimuoverle quando l'applicazione viene disinstallata. Installutil.exe consente di rilevare ed eseguire questi componenti del programma di installazione.
È possibile specificare più assembly nella stessa riga di comando. Qualsiasi opzione specificata prima del nome di un assembly ha effetto sull'installazione di tale assembly. Fatta eccezione per /u e /AssemblyName, le opzioni sono cumulative ma sottoponibili a override. In altre parole, le opzioni specificate per un assembly vengono applicate a tutti gli assembly successivi, se l'opzione non è specificata con un nuovo valore.
Se si esegue Installutil.exe su un assembly senza specificare alcuna opzione, i tre file seguenti verranno inseriti nella directory dell'assembly:
InstallUtil.InstallLog - Contiene una descrizione generale dello stato dell'installazione.
nomeassembly.InstallLog - Contiene informazioni specifiche della fase di commit del processo di installazione. Per ulteriori informazioni sulla fase di commit, vedere il metodo Commit.
assemblyname.InstallState - Contiene i dati utilizzati per disinstallare l'assembly.
In Installutil.exe viene utilizzata la reflection per esaminare gli assembly specificati e individuare tutti i tipi Installer il cui attributo System.ComponentModel.RunInstallerAttribute è impostato su true. Viene quindi eseguito il metodo Installer.Install o Installer.Uninstall su ciascuna istanza del tipo Installer. L'installazione viene eseguita in modo transazionale: se risulta impossibile installare uno degli assembly, anche l'installazione di tutti gli altri assembly verrà annullata. La disinstallazione non è invece transazionale.
Installutil.exe può installare o disinstallare assembly con nome sicuro, ma non assembly con firma ritardata.
A partire da .NET Framework versione 2.0, la versione a 32 bit di Common Language Runtime (CLR) viene fornita solo con la versione a 32 bit dello strumento Programma di installazione, mentre la versione a 64 bit di CLR viene fornita con le versioni a 32 bit e a 64 bit di questo strumento. Se si utilizza CLR a 64 bit, occorre utilizzare lo strumento Programma di installazione a 32 bit per installare assembly a 32 bit e quello a 64 bit per installare assembly a 64 bit e MSIL (Microsoft Intermediate Language). Il funzionamento delle due versioni dello strumento Programma di installazione è identico.
Non è possibile utilizzare Installutil.exe per implementare un servizio Windows creato utilizzando C++ perché Installutil.exe non è in grado di riconoscere il codice nativo incorporato generato dal compilatore C++. Se si tenta di distribuire un servizio Windows C++ con Installutil.exe, verrà generata un'eccezione quale BadImageFormatException. Per operare con questo scenario, spostare il codice servizio su un modulo C++, quindi scrivere l'oggetto del programma di installazione in C# o in Visual Basic.
Il comando che segue visualizza una descrizione della sintassi e delle opzioni dei comandi per InstallUtil.exe.
installutil /?
Il comando che segue visualizza una descrizione della sintassi e delle opzioni dei comandi per InstallUtil.exe. Inoltre, viene visualizzata una descrizione e un elenco delle opzioni supportate dai componenti del programma di installazione in myAssembly.exe se il testo della Guida è stato assegnato alla proprietà Installer.HelpText del programma di installazione.
installutil /? myAssembly.exe
Il comando che segue esegue i componenti del programma di installazione nell'assembly myAssembly.exe.
installutil myAssembly.exe
Il comando che segue esegue i componenti del programma di installazione in un assembly utilizzando l'opzione /AssemblyName e un nome completo.
installutil /AssemblyName "myAssembly, Culture=neutral, PublicKeyToken=0038abc9deabfle5, Version=4.0.0.0"
Il comando che segue esegue i componenti del programma di installazione in un assembly specificato dal nome file e in un assembly specificato dal nome sicuro. Si noti che tutti gli assembly specificati dal nome file devono precedere gli assembly specificati dal nome sicuro nella riga di comando, poiché l'opzione /AssemblyName non può essere sottoposta a override.
installutil myAssembly.exe /AssemblyName "myAssembly, Culture=neutral, PublicKeyToken=0038abc9deabfle5, Version=4.0.0.0"
Il comando che segue esegue i componenti del programma di disinstallazione nell'assembly myAssembly.exe.
installutil /u myAssembly.exe
Il comando seguente esegue i componenti del programma di disinstallazione negli assembly myAssembly1.exe e myAssembly2.exe.
installutil myAssembly1.exe /u myAssembly2.exe
Poiché la posizione dell'opzione /u nella riga di comando non è importante, questa è equivalente al comando seguente.
installutil /u myAssembly1.exe myAssembly2.exe
Il comando che segue esegue i programmi di installazione nell'assembly myAssembly.exe e specifica che le informazioni sullo stato verranno scritte in myLog.InstallLog.
installutil /LogFile=myLog.InstallLog myAssembly.exe
Il comando che segue esegue i programmi di installazione contenuti nell'assembly myAssembly.exe, specifica che le informazioni sullo stato di avanzamento devono essere scritte in myLog.InstallLog e utilizza l'opzione /reg personalizzata dei programmi di installazione per specificare che gli aggiornamenti devono essere eseguiti nel Registro di sistema.
installutil /LogFile=myLog.InstallLog /reg=true myAssembly.exe
Il comando che segue esegue i programmi di installazione contenuti nell'assembly myAssembly.exe, utilizza l'opzione /email personalizzata de programma di installazione per specificare l'indirizzo di posta elettronica dell'utente ed elimina l'output al file di log.
installutil /LogFile= /email=admin@mycompany.com myAssembly.exe
Il comando che segue scrive lo stato dell'installazione di myAssembly.exe in myLog.InstallLog e quello di myTestAssembly.exe in myTestLog.InstallLog.
installutil /LogFile=myLog.InstallLog myAssembly.exe /LogFile=myTestLog.InstallLog myTestAssembly.exe
Prompt dei comandi di Visual Studio e Windows SDK
Data |
Cronologia |
Motivo |
---|---|---|
Aprile 2011 |
Sono state aggiunte informazioni sull'utilizzo di Visual Studio e dei prompt dei comandi di Windows SDK. |
Miglioramento delle informazioni. |