перемещение файлов конфигурации для DLL в приложение, которое вызывает DLL
У меня есть веб-приложение с функцией поиска. Алгоритм поиска компилируется в отдельную dll. В коде C # для алгоритма поиска я использую строки, хранящиеся в файле настроек, чтобы указать каталог, в котором находится поисковый индекс. Как только код поиска скомпилирован, информация о настройках включается вSearch.dll.config
который помещается в каталог bin вместе с Search.dll. Теперь в моем веб-приложении я добавляю Search.dll к ссылкам. Файл конфигурации не добавляется в веб-приложение. Однако веб-приложение работает нормально и знает, где находится файл. Потому что внутриSettings.Designer
он используетDefaultSettingValueAttribute
назначить значение по умолчанию, если файл конфигурации отсутствует.
Как мне также добавитьSearch.dll.config
к моему веб-приложению, чтобы оператор мог при необходимости изменить местоположение файлов индекса на сервере?
Спасибо
РЕДАКТИРОВАТЬ:
Я попытался добавить файл конфигурации в мою папку развертывания. Но ASP.NET помещает библиотеки в каталог по адресу 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");