Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/21: Рейтинг темы: голосов - 21, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 01.09.2017
Сообщений: 7

Библиотека класса (DLL) не видит свой app.config

06.10.2017, 17:36. Показов 4252. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго дня!

Проблема следующая. Есть библиотека классов (DLL), в которой имеется модель EF, соответственно в app.config прописаны данные для подключения и для работы EF.
Когда библиотеку добавляю к другому проекту в ссылки, то она тянет с собой свой app.config, а так же подтягивает с собой нужные DLL, в частности EF. Но при запуске он смотрит app.config основного приложения, т.к. если туда добавить все настройки все - работает.

Нашел способы, как прочитать конфигурацию, но это не подходит, т.к. проблема не только в строке подключения, но и в других настройках EF, которые руками не делаются (defaultConnectionFactory, providers).

Можно ли как-то это обойти, глобально в библиотеке указать на какую конфигурацию смотреть?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.10.2017, 17:36
Ответы с готовыми решениями:

Почему приложение ищет ИмяСборки.exe.config вместо app.config?
Вот с какого перепугу приложение ищет ИмяСборки.exe.config вместо app.config?

Откуда сначал берутся настройки приложения, из user.config или App.config?
Собственно в чём проблема. Есть данные которые я хочу сохранить в файле настроек приложения. Я выбрал...

Неуправляемая DLL библиотека. Импорт, создание класса библиотеки
По курсовой нужно воспользоваться неуправляемой dll. Сразу скажу, возможно много где ошибаюсь в связи с узкими знаниями в этом...

8
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
06.10.2017, 18:17
Цитата Сообщение от Алексей Л Посмотреть сообщение
при запуске он смотрит app.config основного приложения
Так и должно быть.
Цитата Сообщение от Алексей Л Посмотреть сообщение
Можно ли как-то это обойти
С какой целью? Почему не внести все что нужно в конфиг основного исполняемого приложения?
0
0 / 0 / 0
Регистрация: 01.09.2017
Сообщений: 7
07.10.2017, 23:39  [ТС]
Цитата Сообщение от insite2012 Посмотреть сообщение
С какой целью? Почему не внести все что нужно в конфиг основного исполняемого приложения?
Мне кажется, что основное приложение не должно этим заниматься, там должны быть настройки основного приложения.
Да и там могут быть похожие настройки, например, того же EF.
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
07.10.2017, 23:48
Цитата Сообщение от Алексей Л Посмотреть сообщение
Мне кажется, что основное приложение не должно этим заниматься
Ну а мне кажется, что dll не должна вообще знать ни о каких бы то ни было файлах конфигурации. В ней есть свой функционал, этого достаточно.
0
0 / 0 / 0
Регистрация: 01.09.2017
Сообщений: 7
08.10.2017, 00:19  [ТС]
Согласен!

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

Или, там вообще такого быть не должно и все должно приходить снаружи?
0
Эксперт .NET
 Аватар для Usaga
14087 / 9305 / 1348
Регистрация: 21.01.2016
Сообщений: 34,949
08.10.2017, 06:34
Алексей Л, в приложении должен быть один файл конфигурации. Всё должно конфигурироваться в нём.
0
Warrior
 Аватар для _exp10der_
500 / 427 / 177
Регистрация: 23.11.2014
Сообщений: 932
09.10.2017, 21:30
И почему же плохо иметь несколько файлов с конфигами например для продакшена/стейджа/дев ?
и мержить их в один конфиг. Например такой подход используют для приложений написанных на node.js, самый банальный это webpack.config.js который обычно мержиться из несколько файлов.

Алексей Л, вот простой пример с несколькими файлами. Делать так надо только для приложения а не для dll.
https://docs.microsoft.com/en-... figuration

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
using System;
using System.IO;
using Microsoft.Extensions.Configuration;
 
namespace ConsoleApp567
{
    internal class Program
    {
        private static void Main()
        {
            IConfiguration configuration = new ConfigurationBuilder()
                .SetBasePath(Directory.GetCurrentDirectory())
                .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
                .AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("MY_APP_ENVIRONMENT") ?? "Production"}.json", optional: true)
                .AddJsonFile("othersetting.json", optional: true)
                .Build();
 
            var connection = configuration.GetConnectionString("MyConnectionString");
 
            var other = configuration.GetValue<string>("other");
 
            var myClass = configuration.GetSection("myObj").Get<MyClass>();
        }
    }
 
    public class MyClass
    {
        public int Number { get; set; }
        public string Name { get; set; }
    }
}
Вложения
Тип файла: zip ConsoleApp567.zip (4.8 Кб, 1 просмотров)
1
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
09.10.2017, 22:11
Цитата Сообщение от _exp10der_ Посмотреть сообщение
такой подход используют для приложений написанных на node.js
Без понятия что там используют, однако мы хочу вам напомнить, что мы в ветке .NET, а никак не node.js. Стандартная практика - один конфиг для одного приложения.
Ну и разговор не про то, как использовать несколько конфигов (и собирать их в один), а про то, чтобы у отдельно взятой dll был свой, независимый от основного приложения конфиг.
0
Warrior
 Аватар для _exp10der_
500 / 427 / 177
Регистрация: 23.11.2014
Сообщений: 932
09.10.2017, 23:01
Ну для dll(имею ввиду Class libary) делать конфиг это плохая практика, если dll что то надо, для этого есть конструктор у классов которому можно передать аргументы. Против нескольких файлов конфигурации(для приложения) для разных окружений разработка/тестирование/продакшен и т.д нечего против не имею, но сильно увлекаться декомпозицией на разные файлы конечно увлекаться не надо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.10.2017, 23:01
Помогаю со студенческими работами здесь

Шифрование app.config
Есть winform приложение, в нем есть app.config с информацией, которую нужно скрыть от конечных пользователей (connection string и др.)...

Кавычки в app.config
Как записать значение в кавычках в конфигурационный фаил? Мне надо, чтобы слово &quot;internet&quot; считывалось потом из...

Изменить данные в app.config
Всем привет. Написал приложение, которое копирует определенные файлы с одной папки в другую. Для того чтобы потом могли изменять путь,...

Сохранить в App.config значения переменных
Добрый день! Дан следующий кусочек кода: //TODO: Hardcoded IP, ports move to configuration file...

Присоединение app.config к exe файлу
Добрый день уважаемые форумчане. Подскажите пожалуйста, есть ли возможность сделать так, чтобы пользователь не видел файл app.config?...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru