Під час використання файла Settings.settings у .NET, де фактично зберігається конфігурація? Я хочу видалити збережені налаштування, щоб повернутися до стану за замовчуванням, але не можу знайти, де він зберігається ... будь-які ідеї?
Під час використання файла Settings.settings у .NET, де фактично зберігається конфігурація? Я хочу видалити збережені налаштування, щоб повернутися до стану за замовчуванням, але не можу знайти, де він зберігається ... будь-які ідеї?
Відповіді:
Це залежить від того, чи вибрано вибране налаштування в межах "Користувач" або "Прикладне".
Налаштування обсягу користувача зберігаються в
C: \ Документи та параметри \ ім'я користувача \ Локальні налаштування \ Дані програми \ Ім'я програми
Ви можете їх читати / писати під час виконання.
Для Vista та Windows 7 папка є
C: \ Користувачі \ ім'я користувача \ AppData \ Local \ ApplicationName
або
C: \ Користувачі \ ім'я користувача \ AppData \ Роумінг \ ApplicationName
Налаштування обсягу програми зберігаються в програмі, AppName.exe.config
і вони читаються лише під час виконання.
Ось фрагмент, за допомогою якого ви можете програмно отримати місцезнаходження user.config:
public static string GetDefaultExeConfigPath(ConfigurationUserLevel userLevel)
{
try
{
var UserConfig = ConfigurationManager.OpenExeConfiguration(userLevel);
return UserConfig.FilePath;
}
catch (ConfigurationException e)
{
return e.Filename;
}
}
Налаштування програми (тобто налаштування.настройки) використовують PerUserRoamingAndLocal для налаштувань користувача за замовчуванням (як я запам'ятав).
Оновлення: Дивно, але тут занадто багато неправильних відповідей. Якщо ви шукаєте для вас файл налаштувань масштабування користувача (user.config), він буде розташований у такій папці (для Windows XP):
C: \ Документи та налаштування \ (ім'я користувача) \ Локальні налаштування \ Дані програми \ (назва компанії (якщо така існує)) \ (назва програми) .exe_ (Url | StrongName) _ (хеш) \ (версія програми) \
Url або StrongName залежить від того, чи маєте ви чинне ім'я для складання програми.
Припустимо, що ви говорите про настільні, а не веб-додатки:
Додаючи налаштування до проекту, VS створює файл, названий app.config
у каталозі вашого проекту, і зберігає налаштування у цьому файлі. Він також будує Settings.cs
файл, який надає статичні аксесуари до окремих налаштувань.
Під час компіляції VS (за замовчуванням; ви можете змінити це) скопіює app.config
файл у каталог збірки, змінивши його ім'я на відповідність виконуваному файлу (наприклад, якщо ваш виконуваний файл названий foo.exe
, файл буде названий foo.exe.config
), яке є ім'ям. Менеджер конфігурації NET шукає, коли він отримує налаштування під час виконання.
Якщо ви зміните налаштування через редактор налаштувань VS, воно оновить і те, app.config
і Settings.cs
. (Якщо ви подивитеся на аксесуари властивостей у створеному коді в Settings.cs
, ви побачите, що вони позначені атрибутом, що містить значення за замовчуванням налаштування, яке знаходиться у вашому app.config
файлі.) Якщо ви змінили налаштування, редагуючи app.config
файл безпосередньо, Settings.cs
не буде оновлюватися, але нове значення все одно буде використовуватися вашою програмою під час її запуску, оскільки воно app.config
копіюється foo.exe.config
під час компіляції. Якщо вимкнути це (встановивши властивості файлу), ви можете змінити налаштування, безпосередньо відредагувавши foo.exe.config
файл у каталозі збірки.
Потім з'являються налаштування, визначені користувачем.
Налаштування області застосування доступні лише для читання. Ваша програма може змінювати та зберігати налаштування для користувачів, тим самим дозволяючи кожному користувачеві мати свої власні налаштування. Ці параметри не зберігаються у foo.exe.config
файлі (оскільки принаймні програми Vista не можуть записувати в будь-який підкаталог Program Files
без піднесення); вони зберігаються у файлі конфігурації в каталозі даних користувачів програми.
Шлях до цього файлу є %appdata%\%publisher_name%\%program_name%\%version%\user.config
, наприклад C:\Users\My Name\AppData\Local\My_Company\My_Program.exe\1.0.0\user.config
. Зауважте, що якщо ви дали програмі сильне ім'я, то ім'я цієї програми буде додано до цієї програми.
Під час перегляду, щоб дізнатися про хеш у назві папки, я натрапив (через цю відповідь ):
http://blogs.msdn.com/b/rprabhu/archive/2005/06/29/433979.aspx
(редагувати: посилання Wayback Machine: https://web.archive.org/web/20160307233557/http://blogs.msdn.com:80/b/rprabhu/archive/2005/06/29/433979.aspx )
Точний шлях
user.config
файлів виглядає приблизно так:
<Profile Directory>\<Company Name>\<App Name>_<Evidence Type>_<Evidence Hash>\<Version>\user.config
де
<Profile Directory>
- це або каталог профілю роумінгу, або локальний. Налаштування за замовчуванням зберігаються у локальномуuser.config
файлі. Щоб зберегти налаштування уuser.config
файлі роумінгу , потрібно позначити цей параметр разомSettingsManageabilityAttribute
ізSettingsManageability
значком "встановлено"Roaming
.
<Company Name>
- як правило, це рядок, вказанийAssemblyCompanyAttribute
(із застереженням, що рядок є уникнутим і обрізаним за необхідності, і якщо це не вказано на збірці, у нас є процедура резервного копіювання).
<App Name>
- як правило, рядок, зазначений вAssemblyProductAttribute
(ті ж застереження, що і для назви компанії).
<Evidence Type>
та<Evidence Hash>
- інформація, отримана з доказів домену додатка для забезпечення належного домену додатка та ізоляції збірок
<Version>
- зазвичай версія, зазначена вAssemblyVersionAttribute
. Це потрібно, щоб виділити різні версії програми, розгорнуті поряд.Ім'я файлу завжди просто "
user.config
".
Він знаходиться у папці з назвою програми у папці Дані програми у домашній папці користувача (C: \ документи та налаштування \ користувач у xp та c: \ users \ користувач у Windows Vista).
Існує деяка інформація тут також.
PS: - спробуйте отримати доступ до нього на% appdata% у вікні запуску!
Ем, чи не можна просто скористатися Settings.Default.Reset () для відновлення налаштувань за замовчуванням?
Усі ваші налаштування зберігаються у відповідному файлі .config.
Файл .settings просто забезпечує сильно набраний клас для набору параметрів, які належать разом, але фактичні параметри зберігаються у файлі app.config або .config у вашій програмі.
Якщо ви додасте файл .settings, додаток app.config буде автоматично додано для розміщення налаштувань, якщо у вас його ще немає.
Якщо ваш файл налаштувань знаходиться у веб-додатку, вони будуть знаходитись у файлі web.config (прямо під вашим проектом. Якщо вони є в будь-якому іншому проекті, вони будуть знаходитись у файлі app.config (також нижче вашого проекту) .
Редагувати
Як зазначається в коментарях: ваші налаштування часу на розробку програми знаходяться у файлі app.config для інших програм, крім веб-додатків. Під час створення файлу файл app.config буде скопійовано у вихідний каталог і отримає назву yourexename .exe.config. Під час виконання роботи буде читатися лише файл з назвою yourexename.exe.config.
Два файли: 1) Файл app.config або web.config. Налаштування її можна налаштувати після складання за допомогою текстового редактора. 2) Файл settings.designer.cs. Цей файл має автогенерований код для завантаження налаштування з конфігураційного файлу, але значення за замовчуванням також є у випадку, якщо у конфігураційному файлі немає конкретного параметра.
Я знаю, що на нього вже відповіли, але чи не могли ви просто синхронізувати налаштування в дизайнері налаштувань, щоб повернутися до налаштувань за замовчуванням?