Извините за такой наивный вопрос, который мне даже трудно описать. У меня есть проект classlibrary, скажем, «A», в котором есть логика, на которую я ссылаюсь в проекте «B» через ссылку на сборку (добавлена ссылка на dll проекта «A»), который в основном является проектом модульного тестирования. В проекте «А» используются некоторые сторонние сборки, такие как Serilog, Newtonsoft. Итак, теперь в модульном тесте в проекте «B», когда я вызываю методы класса из проекта «A», я вижу, что мой тест завершается сбоем с исключением файла, не найденного, и он ссылается на файлы сборки, такие как Serilog и NewtonSoft, которые были там в проекте «А». Поэтому я был озадачен тем, что моему проекту «B» не нужны никакие из этих библиотек напрямую, они нужны только проекту «A». Но все же, чтобы удалить ошибку одну за другой, я добавил те же ссылки на сборки в проект «B», и это устранило ошибку.
Но я не понял, зачем мне нужно было снова добавлять те же сборки в Project 'B'. Это противоречит цели, когда я пытаюсь абстрагировать логику в отдельном проекте, чтобы другим проектам не приходилось повторять одно и то же? С этой логикой теперь каждый другой проект модульного тестирования, который я собираюсь написать в будущем, ссылаясь на проект «А», потребует такой же ссылки на сборку, которая кажется накладной.
Если это актуально: проект моей библиотеки классов «A» — это проект на основе .NET Standard 2.0, а проект «B» — это проект типа консольного приложения .NET Core 2.1.
Если это повторяющийся вопрос, пожалуйста, направьте меня, я хочу понять, как это работает. Если за этим поведением стоит концепция C#, сообщите мне, и я прочитаю об этом подробнее. Также зависит ли это поведение от типа сторонней библиотеки, которую мы используем, например, от ведения журнала по сравнению с любым другим типом библиотеки?
Заранее спасибо!