Я хочу изменить местоположение, где мое приложение ищет файл app.config.Как изменить местоположение app.config
Я знаю, что я могу использовать ConfigurationManager.OpenExeConfiguration() для доступа к произвольному файлу конфигурации, однако, когда .Net Framework читает файл конфигурации (например, для ConnectionStrings или EventSources), он будет искать местоположение по умолчанию , Я хочу на самом деле изменить местоположение, глобально для всей .NET Framework (для моего приложения, конечно).
Я также знаю, что я могу использовать AppDomainSetup для изменения местоположения app.config для нового AppDomain. Однако это не относится к основному AppDomain приложения.
Я также знаю, что могу переопределить функцию Main() и создать новый AppDomain, как указано выше, и запустить мое приложение в новом AppDomain. Однако это имеет другие побочные эффекты - например, Assembly.GetEntryAssembly() вернет нулевую ссылку.
Учитывая, как все работает в .Net, я ожидаю, что какой-то способ настроить среду запуска моего приложения - через манифест приложения или некоторые из них - но я не смог найти даже мерцание надеюсь, в этом направлении.
Любой указатель будет полезен.
Дэвид Маллин
Хммм. В моем тесте на этот подход (который отличался от вашего), GetEntryAssembly действительно возвращал значение null. Но я не делал ExecuteAssembly - я нашел «вторую главную», которую я написал и выполнил. Я попробую ваш подход и посмотрю, будет ли это работать для меня. –
Я думаю, что ExecuteAssembly имеет значение. По крайней мере, Документы говорят, что GetEntryAssembly возвращает исполняемый, * или * тот, который был передан ExecuteAssembly(). –