Может быть, решение прост, но я не мог найти его так, как хотел.
У меня есть основной проект библиотеки С# со всеми моими приложениями, используя ссылку на этот проект.
Теперь я создал еще один небольшой проект библиотеки, и я хочу, чтобы все мои приложения также увидели пространство имен/классов внутри этого нового проекта.
Поскольку я не могу/не должен добавлять ссылку на этот новый проект ко всем моим проектам. Я хочу расширить свою основную библиотеку с помощью этой новой небольшой библиотеки.
Однако просто перетаскивание классов внутри основной библиотеки не является вариантом, потому что у меня больше таких мини-библиотек, которые нужно будет подключать и выходить в зависимости от ситуации.
* Поэтому я хочу добавить ссылку на эту библиотеку в мою основную * библиотеку и сделать все мои приложения видя код новой библиотеки. Однако идея классная, и я ожидал ее работы, но она не сработала.
Я что-то упускаю? Как еще я могу расширить свою основную библиотеку? Заранее спасибо.
Я согласен с Бобом Хорном в том, что это не так, как это делается (в целом). Однако у меня есть другое возможное решение. Возможно, если проект еще не слишком велик, то есть его все еще практично это сделать. Я нашел, что это можно сделать на всех, кроме самых больших приложений.
По существу, ваша проблема была решена многими лунами назад древними программистами еще в эпоху каменного века, когда они реализовали идею под названием "N-Tier". Это должно дать вам подсказку, что, поскольку ваш проект сейчас растет, вам необходимо реструктурировать/реорганизовать и переосмыслить его по-новому/старому.
Пример. В большинстве проектов требуется следующее:
Обратите внимание, что единственным слоем с множественным числом являются слои пользовательского интерфейса. Это связано с тем, что вы можете написать пользовательский интерфейс консоли, веб-интерфейс пользователя, пользовательский интерфейс для Apple ICoffeeMaker или IWashingMachine или IBoobImplanter или другое новое устройство, которое Apple решит придумать дальше, пользовательский интерфейс для Windows, пользовательский интерфейс для Linux, пользовательский интерфейс для Android, и в основном пользовательский интерфейс для любого устройства, которое вы хотите.
Все эти слои пользовательского интерфейса обращаются к уровню обслуживания, что заставляет все приложения, которые хотят получить доступ к вашей системе, таким образом, что полностью находится под контролем уровня обслуживания.
Это также имеет преимущество, заключающееся в том, что он содержит весь ваш соответствующий код в одном месте, который имеет в целом основные преимущества для обслуживания, безопасности, проверки, проверки и т.д. И оставляет слои пользовательского интерфейса свободными, чтобы делать то, что они делают лучше всего... отображать информацию.
Наконец, вы также можете очень легко применить все новейшие и самые лучшие шаблоны проектирования для такой системы, потому что все, что вам нужно сделать, это реализовать интерфейсы между слоями, которые, по вашему мнению, необходимо разделить, и вы находитесь на пути к полному DI/IOC и все те другие хорошие вещи, которые обеспечивает здоровая диета для вашего проекта.
Многие люди могут сказать, что это слишком много работы для небольших проектов, но...
и правильная структура с самого начала помогает этому росту.
Я не знаю, отвечает ли это на ваш вопрос, но когда я получаю свободное время, я буду делать видеоуроки YouTube, объясняющие, как это сделать должным образом.
Да, тебе что-то не хватает. :) Это не работает. Просто потому, что ваша основная библиотека ссылается на другую библиотеку, не делает эту библиотеку доступной для ваших приложений. Ваши другие приложения должны ссылаться на другие библиотеки.
Поскольку я не могу/не должен добавлять ссылку на этот новый проект ко всем моим проектам.
Зачем? Если ваши приложения должны ссылаться на них, то ссылайтесь на них. Вот как это работает.