Usersettings

01/12/2008 - 15:29 von Hendrik Petzold | Report spam
ich verwende in einer Anwendung (VS 2005) zusàtzlich zu der app.config eine
user.config.
Zum Ändern der Einstellung in der user.config nutze ich in der Anwendung ein
kleines Form mit folgendem Code:
public partial class Form4_72_UserConf : Form
{
Settings1 userSettings = new Settings1();
string stUser1;
int inUK1;
string stUK1;

public Form4_72_UserConf()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
userSettings.ExcelexternUser = this.comboBox1.Text;
userSettings.Save();
}

private void Form4_72_UserConf_Load(object sender, EventArgs e)
{
this.comboBox1.Text = userSettings.ExcelexternUser;
}
}

Es funktioniert solange, bis ich die Anwendung neu erstelle und somit eine
neue Version habe. Da die user.config in einem Pfad der Versionsnummer der
Anwendung abgespeichert wird.
Wie kann ich unabhàngig der Version immer auf die gleiche user.confgi
zugreifen?

mfG
Hendrik
 

Lesen sie die antworten

#1 Frank Dzaebel
17/12/2008 - 10:50 | Warnen spam
Hallo Hendrik,

Es funktioniert solange, bis ich die Anwendung neu erstelle und somit eine
neue Version habe. Da die user.config in einem Pfad der Versionsnummer der
Anwendung abgespeichert wird.
Wie kann ich unabhàngig der Version immer auf die gleiche user.confgi
zugreifen?



Zum Beispiel, in dem man einem benutzerdefinierten
SettingsProvider benutzt, der den ExeConfigFilename
auf den gewünschten Pfad setzt.
_________

Downloade z.B. "UserApplicationSettings_CS.zip" von:

[Download - User Application Settings]
http://www.blayd.co.uk/download.aspx?pageid13

Intergriere die "UserAppSettingsProvider.cs" in Dein
Projekt. Modifiziere den Quellcode folgendermassen:

// ==// UserAppSettingsProvider.cs:
// Folgendes so ersetzen:
private ExeConfigurationFileMap GetConfigurationFileMap()
{
ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap();

// vorher: fileMap.ExeConfigFilename = Path.Combine(
// Application.LocalUserAppDataPath, CONFIG_USER);

fileMap.ExeConfigFilename = Path.Combine(Directory.GetParent(
Application.LocalUserAppDataPath).FullName, CONFIG_USER);
return fileMap;
}

_________________________

Füge folgendes ProviderAttribut in die
"Settings.Designer.cs" ein:

[global::System.Configuration.SettingsProvider
(typeof(UserAppSettingsProvider))]
internal sealed partial class Settings : global


ciao Frank
Dipl. Inf. Frank Dzaebel [MCP, MVP C#]
http://Dzaebel.NET

Ähnliche fragen