2016-09-28 4 views
0

У меня трудное время, пытаясь понять, куда идут мои настройки. Я сохраняю строку соединения, которую я не могу найти нигде. До сих пор я узнал, что AppName.vshost.exe.config должен быть отладочной версией, а AppName.exe.config должен быть выпуском, но это не так, или если это так, они не собираются в свои папки по умолчанию ни папку, которую я выбрал. Я не знаю, сделал ли я что-то не так, или это функция Microsoft, но если у кого есть ключ, пожалуйста, заполните меня.Где мои настройки идут?

Я развиваюсь на машине Win 7 с VS 2015. Моя сборка - Active (Debug) », и я установил путь вывода к« C: \ Bin », потому что у меня есть другие библиотеки, которые я создаю, которые требуются этому приложению, и проще всего установить все пути вывода в одно и то же место.

Чтобы попытаться найти вопрос, который я сделал новую установку, испытания: enter image description here

Я также добавил, текстовое поле в форму и использовать его так:

public Main() 
    { 
     ... 
     textBox1.Text = Settings.Default.Test; 
     ... 
    } 

private void Main_FormClosing(object sender, FormClosingEventArgs e) 
    { 
     ... 
     Settings.Default.Test = textBox1.Text; 
     ... 
    } 

тогда я собирал и копировал exe и требуемые dll из C: \ Bin в C: \ Test. В этом каталоге нет файла конфигурации.

В форме появляется «Т» в текстовом поле. Все идет нормально. Затем я меняю его на «EXE-Test»: enter image description here

Закройте его и откройте его, и мое изменение там. Но куда он идет? В папке, в которой я запускаю ее, нет файла конфигурации, как и ожидалось. Оба файла SQLgem.vshost.exe.config и SQLgem.exe.config имеют исходную «T» в них в моей выходной папке (C: \ Bin). enter image description here

C: \ Code \ SQLgem \ SQLgem \ bin \ Release ничего в этом нет, чего я ожидал, так как я не создавал выпуск. C: \ Code \ SQLgem \ SQLgem \ bin \ Отладка имеет только оболочки, новый параметр (фактически все мои настройки) там не отображаются.

И это становится еще более странным. Когда я запускаю отладочную (визуальную студию) и меняю «Т» на отладку, она сохраняется. Так где же это?

enter image description here

Так что теперь есть два параметра, которые сохраняются, но я нигде не могу найти. Выполнение C:> dir SQLgem.exe.config/s не находит больше, чем те, которые я уже упоминал.

Где они могут быть?

Как-то компания Hewlett-Packard стала компанией во встроенной информации. Поэтому, когда я следил за первым сообщением и проверял оба местоположения, я инстинктивно игнорировал папку, которая не была моей компанией. После следствия я, наконец, нашел их!

ответ

1

Это параметры области пользователя, а не область приложения, поэтому они не будут сохраняться до app.exe.config в каталоге bin (что часто бывает C:\Program Files и не доступно для записи пользователем).

Где-то под% LOCALAPPDATA% (что является пользователем записи) вы найдете настройки, сохраненные в файле с именем user.config.

В каталоге, в котором находится этот файл, влияют ваши метаданные сборки, такие как название компании и название продукта и версия.

+0

Что это? % APPDATA% или% LOCALAPPDATA%? И когда вы говорите user.config, вы имеете в виду пользователя или фактического пользователя, например bvoigt.config? – John

+0

@John: Это под '% LOCALAPPDATA%' Я исправил это, добавив свой комментарий в полный ответ. И имя файла - это именно 'user.config', это начинается с четырех букв' u', 's',' e', 'r', которые не являются заполнителями для текущего пользователя, такого как'% USERNAME% '. ('% LOCALAPPDATA%' зависит от пользователя, имя пользователя будет отображаться в части каталога пути, но не в имени файла) –

+0

Спасибо, я нашел его из-за вашей помощи. Я объяснил в своем посте, почему у меня такая сложность. – John

Смежные вопросы