перемещение файлов конфигурации для dll в приложение, которое вызывает dll

У меня есть веб-приложение с функцией поиска. Алгоритм поиска скомпилирован в отдельную dll. В коде C# для алгоритма поиска я использую строки, хранящиеся в файле настроек, чтобы указать на каталог, в котором находится поисковый индекс. После компиляции кода поиска информация о настройках включается в файл Search.dll.config, который помещается в каталог bin вместе с Search.dll. Теперь в моем веб-приложении я добавляю Search.dll к ссылкам. Файл конфигурации не добавляется в веб-приложение. Однако веб-приложение работает нормально и знает, где находится файл. Потому что внутри Settings.Designerон использует DefaultSettingValueAttributeдля назначения значения по умолчанию, если файла конфигурации нет.

Как мне также добавить Search.dll.configв мое веб-приложение, чтобы оператор мог изменить расположение файлов индекса на сервере по мере необходимости?

Спасибо.

РЕДАКТИРОВАТЬ:

Я попытался добавить файл конфигурации в папку развертывания. Но ASP.NET помещает библиотеки DLL в каталог C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root......, и файл конфигурации не копируется туда. Так что на данный момент я понятия не имею, как включить файл конфигурации с моим кодом.

Спасибо за помощь.

Примечание:

Я использовал следующий код, чтобы получить значения файла конфигурации в приложение. Однако это зависит от того, находится ли dll и файл конфигурации в одной папке, чего я не знаю, как это сделать.

    var executingAssembly = System.Reflection.Assembly.GetExecutingAssembly();
    var location = executingAssembly.Location; //C:\MyApp\bin\Debug\Search.dll
    var config = ConfigurationManager.OpenExeConfiguration(location);
    var sections = config.Sections; //count of this is 21
    ConfigurationSectionGroup csg = config.GetSectionGroup("applicationSettings");
    ConfigurationSectionCollection csc = csg.Sections;
    ConfigurationSection cs = csc.Get("Search.Properties.Settings");
5
задан Barka 21 March 2012 в 18:28
поделиться