Можно ли настроить приложение .NET на использование другого файла конфигурации без специального принятия исходного кода для поддержки такой необходимости? - PullRequest
2 голосов
/ 23 декабря 2010

У меня есть приложение .NET. Его исходный код не выполняет никаких манипуляций с файлом конфигурации. Мне интересно, есть ли способ дать CLR команду привязать приложение к другому файлу конфигурации. Переключатель командной строки идеален, но, насколько я знаю, такого не существует.

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

В любом случае, могут быть другие варианты. Тем не менее, я не знаю ни одного.

Любой

Спасибо.

1 Ответ

1 голос
/ 15 января 2013

Создайте exe-загрузчик, который выполняет 2 следующих действия:

  1. Перезагружает пользовательский app.config файл, как показано здесь: Изменение стандартного app.config во время выполнения

  2. Использование Assembly.Load() + вызывает assembly.EntryPoint

  3. Или, что еще лучше, создайте новый AppDomain, используйте domain.SetData("APP_CONFIG_PATH", your_path) + domain.ExecuteAssembly(your_file_name).

Другие ошибки, с которыми вы можете столкнуться:

  • COM Квартира нового потока
  • Циклы сообщений уже запущены
  • Диспетчеры WPF уже созданы
  • возможно больше :) Пожалуйста, опубликуйте любые исключения / неправильное поведение.У меня сейчас нет кода для тестирования, но я делал это раньше пару раз.
...