один exe с изменяемыми настройками - PullRequest
1 голос
/ 20 сентября 2010

Я пытаюсь создать простое приложение, которое будет использоваться для указания элемента управления веб-браузера на некоторые из наших веб-приложений в моей работе. Я хотел бы иметь только один исполняемый файл, а также иметь окно администратора, чтобы изменить некоторые параметры и сохранить их при закрытии приложения. Это возможно? Я посмотрел на часть ресурсов настроек приложения, но, насколько я понимаю, создает файл, который загружает настройки.

Я не хочу анализировать файл или иметь что-либо, кроме ОДНОГО файла, поэтому, пожалуйста, не предлагайте делать это, если это возможно.

Ответы [ 4 ]

4 голосов
/ 20 сентября 2010

Просто используйте настройки приложения - это создаст один файл, вам не нужно будет ничего анализировать, все будет хорошо.

Это будет отдельный файл exe, но еслиВы имели в виду, что «ОДИН файл» включает исполняемый файл и переписывает его на лету, он должен легко соответствовать вашему описанию.

Например, давайте создадим консольное приложение, которое просто запоминает, сколько раз оно было запущено:

  1. Создание нового проекта консольного приложения
  2. Перейдите на страницу свойств и перейдите на вкладку «Настройки».
  3. Нажмите на ссылку, чтобы создать файл настроек
  4. Введите таблицу, чтобы создать параметр с именем «LaunchCount» типа int.Сделайте это либо пользовательской областью, либо областью приложения, в зависимости от того, хотите ли вы, чтобы она сохранялась для каждого пользователя или всей системы.
  5. Нажмите Ctrl-S для сохранения.
  6. В главномметод в Program.cs, напишите этот код:

    Settings settings = Settings.Default;
    settings.LaunchCount++;
    Console.WriteLine("Launch count: {0}", settings.LaunchCount);
    settings.Save();
    
  7. Добавьте соответствующую директиву using для Settings (поместите курсор в Настройки и нажмите Ctrl -.)

  8. Запустите приложение несколько раз и наблюдайте за увеличением числа.
0 голосов
/ 20 сентября 2010

Я должен сказать, что это вообще плохая идея, но я делал это раньше, очень давно в VB6.Я создал Ресурс в exe, а затем (каким-то образом) непосредственно манипулировал им.

Проблема в том, что это обычно невозможно в рамках .NET из-за его резидентности в памяти.Эти парни попробовали это в .net, и в итоге они создали программу на IL для тяжелой работы ... Изменение Emdeded String в C # скомпилированном exe

Перейдите с файлом настроек какДжон предложил!

0 голосов
/ 20 сентября 2010

Есть несколько способов сделать это. Вы можете использовать аргумент командной строки, чтобы сделать это. Запустите приложение из оболочки, введите аргумент командной строки и измените способ его запуска.

Подход UNIX-y состоит в том, чтобы посмотреть на имя исполняемого файла и изменить поведение на его основе. Если я правильно помню, rsh и rlogin - это один и тот же исполняемый файл - они просто смотрят на argv [0], чтобы решить, как запустить. В Windows это просто - посмотрите на System.Environment.GetCommandLineArgs - если в 0-м элементе есть непустая строка, это будет ваше исполняемое имя.

Для сохранения настроек, см. Ответ Джона Скита.

0 голосов
/ 20 сентября 2010

Вы не можете сохранить настройки без отдельного файла ... безопасно.У вас должен быть либо отдельный файл, который является подходом стандартного и предлагаемого подхода, например, созданный с настройками приложения, либо вы должны использовать что-то вроде реестра для сохранения настроек.использование реестра крайне не рекомендуется по соображениям безопасности.Кроме того, большинство компаний в любом случае не разрешают доступ к реестрам, что означает, что никто без такого доступа не может использовать функцию настроек.

...