2015-04-09 2 views
3

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

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 помещается в папку Release. Естественно, Вызов My.Settings.Upgrade() не содержит никаких предыдущих настроек для обновления, поскольку они находятся в другой папке.

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

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

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

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

ответ

3

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

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

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

+0

Большое спасибо. Все имеет смысл. Отличное объяснение –