Как обмениваться пользовательскими настройками или файлами с помощью 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
    }
Другие вопросы по тегам