Настройки пользователя.NET - разные для режимов отладки и освобождения

Я надеюсь, что есть решение моей проблемы с настройками приложения. Каждый раз, когда я обновляю это приложение (WPF Desktop Application), я хочу, чтобы мои пользовательские настройки сохранялись. Чтобы добиться этого, я использую следующий код в моем Application_Startup событие;

If My.Settings.CallUpgrade = True Then
    My.Settings.Upgrade()
    My.Settings.CallUpgrade = False
    My.Settings.Save()
End If

Это работает отлично и сохраняет пользовательские настройки в новой версии и приводит к тому, что пользовательские настройки сохраняются в структуре каталогов следующим образом;

C:\Users\Aaron\AppData\Local\Assistant\Assistant.exe_Url_1rohxsl103zsiltndvz23vqujpaafv4w
        ..\1.0.0.0
        ..\1.0.2.0

Моя проблема, однако, заключается в том, что базовая папка отличается для сборки в зависимости от используемой конфигурации сборки. То есть: если конфигурация сборки "DEBUG", тогда каталог, который используется для сохранения пользовательских настроек, выглядит следующим образом;

Режим отладки

C:\Users\Aaron\AppData\Local\Assistant\Assistant.exe_Url_1rohxsl103zsiltndvz23vqujpaafv4w

В режиме выпуска это выглядит следующим образом;

Режим RELEASE

C:\Users\Aaron\AppData\Local\AssistantAssistant.exe_Url_od13shq40yxnxmu3xwepbkqf1bjqc34j

Совершенно разные каталоги. Версия 1.0.0.0 остается в папке DEBUG, а версия 1.0.2.0 помещается в папку выпуска. Естественно, призвание My.Settings.Upgrade() не находит никаких предыдущих настроек для обновления, потому что они находятся в другой папке.

Приложение, по сути, считается двумя различными сборками в зависимости от конфигурации здания.

Я могу понять, когда это может быть желательным, но у меня есть обстоятельства, когда я хочу распространять версию "DEBUG", чтобы я мог подключиться к удаленному запущенному процессу и т. Д. Через некоторое время я хочу распространить версию "RELEASE" приложения.

Проблема, однако, заключается в том, что пользовательские настройки не являются общими для двух версий и по существу приводят к потере пользовательских настроек.

Есть ли какое-либо решение, которое объединяет постоянство и получение пользовательских настроек для обеих конфигураций сборки / версий сборки, не прибегая к моей собственной версии функциональности параметров приложения?

1 ответ

Решение

Нет, это не настоящая проблема. Это происходит только на вашем компьютере, а не на компьютере пользователя.

На имя хешированного каталога влияют несколько свойств вашего EXE-файла, одним из которых является имя каталога, в котором установлен EXE-файл. На вашей машине у вас есть разные каталоги bin\Debug и bin\Release. На компьютере пользователя есть только один, где когда-либо установлена ​​программа.

Вы можете просто изменить настройки проекта, чтобы они были одинаковыми. Проект + Свойства, вкладка "Сборка", настройка выходного пути. Сделайте это для конфигурации Debug, измените ее на bin\Release. Достаточно хорошо для тестирования и проверки того, что он работает, вы, вероятно, захотите изменить его после того, как вы почувствуете себя хорошо:)

Другие вопросы по тегам