Похоже, что вы можете использовать метод AppDomain.SetData
для достижения этой цели. В документации говорится:
Вы не можете вставлять или изменять системные записи с помощью этого метода.
Независимо от этого, похоже, работает. В документации по методу AppDomain.GetData
перечислены доступные системные записи, интерес представляет запись "APP_CONFIG_FILE"
.
Если мы установим "APP_CONFIG_FILE"
до того, как будут использованы какие-либо настройки приложения, мы можем изменить, откуда загружен app.config
. Например:
public class Program
{
public static void Main()
{
AppDomain.CurrentDomain.SetData("APP_CONFIG_FILE", @"C:\Temp\test.config");
//...
}
}
Я нашел это решение, задокументированное в этом блоге , и более полный ответ (на связанный вопрос) можно найти здесь .