Вы действительно можете указать файл конфигурации, который будет использоваться API-интерфейсами конфигурации .NET, но вы должны сделать это до создания AppDomain (что не так просто, как кажется). Так работает ASP.NET дляпример.Он настраивает AppDomain для использования файла "web.config", расположенного в виртуальном каталоге, в отличие от необходимости w3p.exe.config или чего-то другого.
Вы можете сделать это тоже, но вам нужно создатьвторичный AppDomain.Само по себе это хорошая идея по многим причинам, связанным с несколькими надстройками и ссылками на сборки.Но одна из вещей, которую вы можете вставить в настройку AppDomain , - это имя / путь к файлу «app.config».
Для создания нового AppDomain вы можете использовать «shim»это немного стандартного кода C ++, который настраивает и запускает AppDomain, а остальным кодом с этого момента можно управлять кодом.
Есть статья на MSDN, написанная Эндрю Уайтчепелом и названная IsolatingРасширения Office с помощью мастера COM Shim .Я не буду лгать, это не тривиальная концепция, но и не так уж плохо.Для вас есть мастер, который создает проект C ++, который загружает надстройку .NET в новый домен приложений.Конфигурирование AppDomain должно быть выполнено до его загрузки, поэтому вам нужно добавить следующее в созданный мастером код:
// CLRLoader.cpp
HRESULT CCLRLoader::CreateLocalAppDomain()
{
... snip ...
// Configure the AppDomain to use a specific configuration file
pDomainSetup->put_ConfigurationFile(CComBSTR(szConfigFile));
... snip ...
}
Стоит также отметить, что если / когда вы конвертируете в VSTOпроект, среда выполнения VSTO делает всю эту конфигурацию AppDomain для вас.Каждый надстройка VSTO работает в своем собственном домене приложений со своим собственным файлом app.config.