Domanda

Abbiamo un programma di installazione per la nostra applicazione che deve essere scaricato ed eseguito con privilegi di amministratore, come molti altri programmi di installazione. Tuttavia, il programma di installazione non è denominato " setup.exe " ;, quindi Windows non lo rileva automaticamente in quanto richiede l'esecuzione dell'elevazione.

Cambiare il nome dell'installer per fare in modo che le cose si elevino correttamente sembra piuttosto disordinato, francamente. Questo articolo parla molto di UAC ed elevazione e dice che puoi usare un manifest per fare qualcosa che richiede autorizzazione.

Quindi, ci piacerebbe solo creare un manifest per il nostro programma di installazione. Tuttavia, come possiamo garantire che il manifest sia presente? Se l'utente scarica semplicemente our_application_v13.exe, come possiamo garantire che ottenga anche il manifest? AFAIK il manifest dovrebbe essere un file chiamato " our_application_v13.exe.manifest " in tal caso.

Dato che stanno scaricando un file dal nostro sito Web, come possiamo assicurarci che ottengano anche il manifest? Possiamo incorporarlo nell'eseguibile in qualche modo o contrassegnare l'eseguibile come se richiedesse l'elevazione? Stiamo utilizzando uno strumento di installazione di centinaia di anni fa che non possiamo cambiare, quindi non ha alcuna capacità rilevante al riguardo.

Grazie!

È stato utile?

Soluzione

Se lo strumento di installazione consente di cambiare / allegare / modificare le risorse del file EXE generato, è possibile aggiungere il file manifest come risorsa con un tipo di risorsa 24 (RT_MANIFEST nelle intestazioni di Windows) e un ID risorsa di 1.

Se lo strumento di installazione non dispone della funzione integrata per inserire risorse, potrebbe essere necessario scrivere uno strumento per post-elaborare il file install.exe per inserire la risorsa. Cerca le API di Windows BeginUpdateResouce e EndUpdateResource. Hanno alcune limitazioni: tendono a non funzionare se EXE non contiene già alcun file di risorse, ma la maggior parte dei file exe generati dallo strumento di installazione contiene almeno una risorsa di informazioni sulla versione.

Inoltre, se l'installazione è firmata digitalmente, dovrà essere eseguita dopo l'inserimento della risorsa manifest.


Inoltre, mt. exe incluso con Platform SDK e la maggior parte delle versioni di Visual Studio ha opzioni per incorporare, estrarre e unire risorse manifest.

Altri suggerimenti

Il manifest può anche trovarsi nella sezione delle risorse native dell'applicazione (all'interno di EXE).

Esiste Console di sintonizzazione delle risorse dal software Heaventools.

  

Resource Tuner Console è uno strumento da riga di comando che consente agli sviluppatori di automatizzare la post-elaborazione del file exe di installazione e di inserire la risorsa manifest. Vedi in particolare la pagina Aggiunta del manifesto dell'applicazione per maggiori dettagli:

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top