Impostazioni dell'applicazione e ClickOnce
Le impostazioni dell'applicazione per Windows Form semplificano la creazione, l'archiviazione e la gestione delle preferenze personalizzate dell'applicazione e dell'utente nel client. Il documento seguente descrive il funzionamento dei file di impostazioni dell'applicazione in un'applicazione ClickOnce e il modo in cui ClickOnce esegue la migrazione delle impostazioni quando l'utente esegue l'aggiornamento alla versione successiva.
Le informazioni seguenti si applicano solo al provider di impostazioni dell'applicazione predefinito, la LocalFileSettingsProvider classe . Se si specifica un provider personalizzato, tale provider determinerà come archivia i dati e come aggiorna le impostazioni tra le versioni. Per altre informazioni sui provider di impostazioni dell'applicazione, vedere Architettura delle impostazioni dell'applicazione.
File di impostazioni dell'applicazione
Le impostazioni dell'applicazione usano due file: <app.exe.config> e user.config, dove l'app è il nome dell'applicazione Windows Form. user.config viene creato nel client la prima volta che l'applicazione archivia le impostazioni con ambito utente. <app.exe.config>, al contrario, esisterà prima della distribuzione se si definiscono i valori predefiniti per le impostazioni. Visual Studio includerà automaticamente questo file quando si usa il relativo comando Pubblica . Se si crea l'applicazione ClickOnce usando Mage.exe o MageUI.exe, è necessario assicurarsi che questo file sia incluso negli altri file dell'applicazione quando si popola il manifesto dell'applicazione.
Nota
In ClickOnce per .NET Core 3.1 e .NET 5 o versione successiva usare dotnet-mage.exe anziché Mage.exe. Per altre informazioni, vedere ClickOnce per .NET.
In un'applicazione Windows Form non distribuita con ClickOnce, il file app.exe.config di un'applicazione viene archiviato nella directory dell'applicazione<, mentre il file user.config viene archiviato nella cartella Documenti e Impostazioni dell'utente.> In un'applicazione ClickOnce app.exe.config ><si trova nella directory dell'applicazione all'interno della cache dell'applicazione ClickOnce e user.config si trova nella directory dei dati ClickOnce per tale applicazione.
Indipendentemente dalla modalità di distribuzione dell'applicazione, le impostazioni dell'applicazione garantiscono l'accesso in lettura sicuro ad app.exe.config> e l'accesso sicuro in lettura/scrittura a user.config.<
In un'applicazione ClickOnce le dimensioni dei file di configurazione usati dalle impostazioni dell'applicazione sono vincolate dalle dimensioni della cache ClickOnce. Per altre informazioni, vedere Panoramica della cache ClickOnce.
.NET Core e .NET 5+
Attualmente, un assembly .NET Core da pubblicare deve essere firmato con un file di chiave con nome sicuro. In caso contrario, ApplicationSettingsBase.Upgrade
il metodo non copia correttamente le impostazioni dopo una nuova pubblicazione clickOnce. È possibile specificare l'uso di un nome sicuro nelle proprietà del progetto .NET Core, sotto l'opzione Di > denominazione complessa di compilazione.
Aggiornamenti della versione
Proprio come ogni versione di un'applicazione ClickOnce è isolata da tutte le altre versioni, le impostazioni dell'applicazione per un'applicazione ClickOnce sono isolate anche dalle impostazioni per altre versioni. Quando l'utente esegue l'aggiornamento a una versione successiva dell'applicazione, le impostazioni dell'applicazione confrontano le impostazioni della versione più recente (con il numero più alto) rispetto alle impostazioni fornite con la versione aggiornata e unisce le impostazioni in un nuovo set di file di impostazioni.
Nella tabella seguente viene descritto come le impostazioni dell'applicazione decidono quali impostazioni copiare.
Tipo di modifica | Azione di aggiornamento |
---|---|
Impostazione aggiunta a <app.exe.config> | La nuova impostazione viene unita all'app.exe.config> della <versione corrente |
Impostazione rimossa da <app.exe.config> | L'impostazione precedente viene rimossa dall'app.exe.config> della <versione corrente |
Impostazione predefinita modificata; l'impostazione locale è ancora impostata sul valore predefinito originale in user.config | L'impostazione viene unita al file user.config della versione corrente con il nuovo valore predefinito come valore |
Impostazione predefinita modificata; impostazione impostata su non predefinita in user.config | L'impostazione viene unita al file user.config della versione corrente con il valore non predefinito mantenuto |
Se è stata creata la classe wrapper delle impostazioni dell'applicazione e si vuole personalizzare la logica di aggiornamento, è possibile eseguire l'override del Upgrade metodo .
Impostazioni clickOnce e roaming
ClickOnce non funziona con le impostazioni di roaming, che consente al file di impostazioni di seguire l'utente tra computer in una rete. Se sono necessarie impostazioni di roaming, è necessario implementare un provider di impostazioni dell'applicazione che archivia le impostazioni in rete oppure sviluppare classi di impostazioni personalizzate per l'archiviazione delle impostazioni in un computer remoto. Per altre informazioni sui provider di impostazioni, vedere Architettura delle impostazioni dell'applicazione.