2009-05-03 10 views
7

Ho un'app modificata per tenere conto dell'UAC in VISTA. Così, ora, il mdb (Jet o file di Access) si trova nella ProgramData\MyApp\Perché la virtualizzazione sulla cartella ProgramData in MS Vista?

mi sono reso conto che quando la mia applicazione legge il database per la prima volta si sta facendo da quella posizione ... ma quando la mia app è scrivendo nel database ... il file è virtualizzato e va a Users\MyUser\AppData\Local\VirtualStore\ProgramData\MyApp. Da questo momento sulla mia app vai sempre nella posizione Virtualizzata su disco.

La mia app funziona, ma se continuo così, il database dovrebbe essere per utente e abbiamo davvero bisogno di condividere il database con tutti gli utenti del PC.

Ho pensato che la scrittura nella cartella ProgramData non avrebbe attivato il meccanismo di virtualizzazione.

Cosa mi manca?

Devo impostare le autorizzazioni per la cartella MyApp in ProgramData ??

Come posso farlo al momento dell'installazione?

Grazie persone ...

Maggiori informazioni: Sviluppato con VS2003 VB.NET utilizzando il progetto di installazione VS.

+1

"Vista" non è un acronimo, quindi solo la prima lettera deve essere in maiuscolo. –

risposta

2

Molto probabilmente è necessario impostare le autorizzazioni di scrittura per tutti gli utenti durante l'installazione.

Per testare, eliminare la cartella virtualizzata, impostare manualmente le autorizzazioni sulla cartella ProgramData \ MyApp e sui file e vedere se funziona.

Per quanto riguarda il modo pragmatico durante l'installazione, ciò dipende molto dalla tecnologia utilizzata.

+0

Yeap, era solo il permesso di scrittura. L'altra cosa complicata è che l'esecuzione di un MSI da VS 2003 Setup Project e l'utilizzo di Custom Action (per impostare le autorizzazioni della cartella) causano errori in Vista perché CustomActions viene eseguito come utente comune insted come utente Elevated che sta eseguendo il Setup. È necessario modificare il file MSI con ORCA per impostare il flag di "No Impersonate" in true. Per fare ciò, nella tabella Azione personalizzata, nella colonna Tipo della riga "Installa" è necessario impostare 3073 come valore. – Romias

+1

Ah, progetti di installazione da una versione pre-vista di VS. Ugh. Se sei abbastanza esperto da usare Orca, probabilmente sei pronto per laurearti con WiX che renderà la tua vita molto più facile :) – saschabeaumont

1

Ho avuto problemi anche qui, sembra che Vista una volta decida di virtualizzare il file, l'unico modo per fermarlo è eliminare il file virtuale. La prossima volta che lo utilizzerai, utilizzerà la cartella ProgramData.

Problemi correlati