Как обмениваться пользовательскими настройками или файлами с помощью UserAppDataPath в разных сборках?
Прямо сейчас, когда я выпускаю новую сборку моего приложения.NET, путь UserAppDataPath указывает на новую папку, содержащую номер сборки.
Документы и настройки \ Имя пользователя \ Данные приложения \ Компания \AssemblyName\1.0.0.0
Я использую этот путь в качестве удобного места хранения файлов настроек расширенного пользовательского интерфейса. Каждый раз, когда я отпускаю, пользователь теряет свои предыдущие настройки интерфейса.
Безопасно ли обрезать номер версии \ 1.0.0.0 и использовать его корневой путь? или есть лучший способ сохранить настройки в месте, где всегда есть права на запись?
2 ответа
AppSettings поддерживают обновления. Посмотрите здесь. Надеюсь, это указывает на правильное направление...
Я использую следующий код для извлечения пользовательских данных, хранящихся в потенциально старых папках из предыдущих версий сборок:
string suffix = "/MyUserSettings.dat";
string folder = Application.UserAppDataPath;
string filename = folder + suffix;
if (!File.Exists(filename))
{
// Check whether an older folder from a previous version with appropriate user data exists
DirectoryInfo[] directories = new DirectoryInfo(folder).Parent.GetDirectories("*", SearchOption.TopDirectoryOnly);
for (int i = 0; i < directories.Length; i++)
{
if (File.Exists(directories[i].FullName + suffix))
{
filename = directories[i].FullName + suffix;
}
}
}
if (File.Exists(filename))
{
// load user settings from file
}
else
{
// use default settings
}