2010-08-25 10 views
5

Sto aggiornando un'applicazione esistente che viene installata tramite un progetto di installazione e distribuzione.Scrittura su AppData da un progetto di installazione e distribuzione

La vecchia applicazione ha copiato un file di configurazione e un file di database nella cartella dell'applicazione in Programmi durante l'installazione. Questo ha funzionato bene su Win 2000 e Win Xp (con un account di amministratore locale). In Windows 7, tuttavia, non solo questo è disapprovato, ma in sostanza non funziona a causa del controllo dell'account utente.

Quindi voglio aggiornare l'applicazione per scrivere la sua configurazione/dati in CommonApplicationData. Nel progetto di installazione e distribuzione esistente, è possibile selezionare facilmente alcune posizioni come obiettivi per la copia dei file. Ad esempio Cartella applicazioni, Desktop dell'utente, & File di programma dell'utente.

Non vedo un modo analogo di dire al programma di installazione di copiare nelle cartelle AppData/CommonApplicationData. Esiste, e se no, ci sono delle correzioni semplici?

Grazie!

risposta

5

Fare un clic destro | Aggiungi cartella speciale | Cartella personalizzata e nominarla come si desidera (Cartella dati applicazioni comune sarebbe buona)

Nella griglia delle proprietà della cartella, modificare l'attributo DefaultLocation su [CommonAppDataFolder].

Aggiungere un file alla cartella, compilare e installare. Dovresti trovare il tuo file in C: \ ProgramData su Windows 7.

Ti consiglio, consiglio vivamente altri strumenti come InstallShield e WiX su Visual Studio Deployment Projects. Lo strumento è molto limitato in quello che può fare e alla fine colpirai un muro di mattoni.

+1

Questo ha funzionato bene per la maggior parte, ma ho aggiunto alcuni file all'interno di una directory, incluso un file di database. Sono in grado di scrivere i nuovi file all'interno della cartella e di sovrascrivere i file esistenti, ma il database dice che è di sola lettura. Qualche idea lì? – turtle

+0

Solo lettura in lettura MS-DOS (attrib + R) o ACL NTFS? (L'utente non ha permessi) (btw, questa è davvero una nuova domanda) –

+1

Siamo spiacenti. Sono d'accordo, ma è fortemente correlato, penso. Utilizzando il metodo sopra, posso creare i file e le cartelle, tuttavia sembra che le cartelle siano create in sola lettura per gli utenti standard, il che sembra andare contro il punto di usare la cartella dei dati dell'app. C'è un modo per modificare il metodo di cui sopra in modo che il progetto di installazione e distribuzione crei le cartelle come scrivibili da un utente standard? – turtle

Problemi correlati