Sto usando Inno Setup per installare aggiornamenti patch per la mia applicazione VB.net in cui devo sostituire un file DLL e un paio di file javascript/html per l'aggiornamento. Tuttavia, la DLL non viene aggiornata (è in C: \ program files ...) - anche su sistemi XP senza UAC non viene sostituita, ma quando elimino manualmente la DLL e rieseguo la patch, il file viene copiato . Non è di sola lettura, e nessun privilegio UAC/admin è coinvolto nel caso XP.È necessario sovrascrivere una DLL in inno setup installer - ma il file non viene sostituito
Quale potrebbe essere il motivo per cui il file non viene copiato se esiste già un file? È costruito in VS2008 e in .NET 2.0 - la nuova DLL ha anche una data e una differenza di dimensioni più recenti.
C'è un modo per aggirare il problema di accesso in scrittura UAC su Vista/Win7/8? Immagino che la patch non riuscirebbe mai a sostituire il file su questi sistemi con UAC attivo. Dire che la nostra base di utenti per disattivarlo non è ovviamente un'opzione.
[EDIT] L'assembly dll è impacchettato in setup.exe in Visual Studio prelevandolo dalla cartella Release sulla creazione della soluzione. La sezione [file] inno setup ha questo:
[Files]
Source: C:\Visual Studio 2005\Projects\Setup5\Setup5\Debug\setup.exe; DestDir: {app}
Source: C:\Visual Studio 2005\Projects\Setup5\Setup5\Debug\interact.msi; DestDir: {app}
[Run]
Filename: {app}\setup.exe; Flags: runmaximized
Puoi mostrare la voce di sezione '[Files]' per quella libreria? Cosa intendi con * "C'è un modo per risolvere il problema di accesso in scrittura UAC su Vista/Win7/8?" *, Quale problema pensi di fare? – TLama
Idealmente voglio che l'aggiornamento della patch avvenga senza alcuna interazione umana - es. Non riesco a far sì che facciano clic su un dialogo per chiedere il permesso di amministratore (UAC?) Quando sto cercando di spostare o eliminare file come la DLL. – Surge
Se hai intenzione di aggiornare/installare i file nella directory 'Programmi 'su Windows Vista, devi solo chiedere i privilegi di amministratore, altrimenti non riesci ad accedere a errore negato e per questo caso non devi specificare esplicitamente il valore della direttiva ['PrivilegesRequired'] (http://jrsoftware.org/ishelp/topic_setup_privilegesrequired.htm) (per impostazione predefinita richiede i privilegi di amministratore). – TLama