2010-03-25 6 views
11

Con le impostazioni predefinite sono memorizzate in: C:\Documents and Settings\\Local Settings\Application Data\<Project Name> come cambiare le impostazioni utente .NET posizione

Come posso cambiare questo percorso di directory dell'applicazione. Inoltre, non voglio avere file diversi per utenti diversi. Come rendere globali le impostazioni?

Ho provato a modificare l'ambito delle impostazioni in "applicazione", ma non posso modificarle in fase di esecuzione.

risposta

13

Using the default built-in behavior you can't!

D: Perché è il percorso così oscura? C'è un modo per cambiare/personalizzare esso?

A: L'algoritmo di costruzione percorso deve rispondere a determinati requisiti rigorosi in termini di sicurezza, isolamento e robustezza. Mentre noi cercato di rendere il percorso con la stessa facilità rilevabile possibile facendo uso di amichevole, l'applicazione fornita stringhe, non è possibile mantenere il percorso del tutto semplice, senza incorrere in problemi come collisioni con altre applicazioni, spoofing ecc.

Il LocalFileSettingsProvider non fornisce un modo per modificare i file in quali impostazioni sono memorizzate. Si noti che il provider stesso non determina le posizioni del file di configurazione nel primo posto - si tratta del sistema di configurazione . Se è necessario archiviare le impostazioni in una posizione diversa per , il metodo consigliato è quello di scrivere il proprio SettingsProvider. Questo è abbastanza semplice da implementare e tu puoi trovare esempi nell'SDK .NET 2.0 che mostra come eseguire questa operazione. Tieni presente il numero tuttavia potresti incorrere negli stessi problemi di isolamento menzionati sopra.

Sono d'accordo con la risposta di Robert Harvey fai da te, or write a custom settings provider.

+8

che schifo solo Amico ... –

0

Ci sono difficoltà con le impostazioni di modifica a livello di programmazione per tutti gli utenti (poiché provengono dal file exe.config, che di solito è in Programmi e quindi protetto dall'accesso in scrittura nei moderni SO). Puoi provare a configurare le impostazioni a livello di applicazione, ma poi utilizzare lo ConfigurationManager per fare confusione con il file di configurazione, in modo simile alla soluzione su this question.