2014-10-28 20 views
10

Ho creato un MSI con WIX che richiede autorizzazioni elevate per funzionare correttamente. Nel Progetto MSI, ho specificato questo tramiteWIX Masterizza Bootstrapper che non richiede i diritti di amministrazione per il mio MSI

<Package [...] InstallPrivileges="elevated" /> 

Ora ho incluso questo MSI in un progetto bootsrapper personalizzato, sulla base di WixWPF Bootstrapper. Da quello che ho capito, lo stesso bootstrapper non dovrebbe modificare lo stato della macchina e quindi non dovrebbe richiedere privilegi elevati.

Ora mi aspetto che Bootstrapper avvii automaticamente l'MSI integrato con privilegi elevati, richiamando l'utente con una finestra di dialogo UAC, se necessario. Ma non è così. Invece, l'installazione fallisce. Funziona comunque, quando eseguo esplicitamente l'eseguibile bootstrapper come amministratore.

Come posso fare in modo che il bootstrapper richieda autorizzazioni elevate durante l'installazione di MSI?

+0

Solo per sapere, hai impostato questo attributo per il tuo MSI? InstallScope = "perMachine" – Isaiah4110

+0

@ Isaiah4110 Non ho impostato questo attributo; Controllerò domani se questo fa alcuna differenza, visto che al momento non ho accesso al mio progetto. Grazie! –

+0

@ Isaiah4110 Grazie, è andata così! Se pubblichi questo come risposta, sarò felice di accettarlo. –

risposta

13

Poiché l'attributo INSTALLSCOPE per MSI non è stato impostato, per impostazione predefinita è l'installazione per utente e l'applicazione bootstrapper ha ritenuto che non sia necessario alcun diritto ADMIN/Elevato per eseguirlo.

Ora nel tuo caso, sei l'autore dell'MSI ed è stato abbastanza facile aggiungere l'InstallScope all'elemento del pacchetto.

InstallScope="perMachine" 

Se non sei l'autore del MSI, ancora bootstrapper fornisce una proprietà che può essere utilizzato per forzare la macchina per-per il MSI/EXE.

  1. MSIPackage - ForcePerMachine
  2. EXEPackage - PerMachine

Allora perché Bootstrapper pensare che per computer installare esigenze di privilegi elevati e entrate per utente? Abbastanza semplice, l'installazione per utente il valore del registro è scritto in HKEY_CURRENT_USER e per l'installazione Per macchina il valore del registro è scritto in HKEY_LOCAL_MACHINE. Solo gli utenti amministratori possono leggere/scrivere in HKLM.

+0

Grazie, apprezzo le ulteriori informazioni di base! –

Problemi correlati