Добавление ссылок для кода, перемещенного в библиотеку классов
Из решения, которое я сделал в Visual Studio 2013, я хочу перенести метод в DLL (проект библиотеки классов).
Когда я вставляю метод в проект DLL, он не распознает части кода и показывает эту ошибку`:
"Вы пропустили директиву using или ссылку на сборку?"
Из-за этого DLL не может быть собрана. Я предполагаю, что требуется определенная ссылка на решение, но я не уверен, как поступить.
Я знаю, как добавить ссылку из решения в DLL, но я не уверен, как это делается наоборот или даже если это возможно.
2 ответа
Да, вам нужно восстановить те же ссылки, которые использует исходный проект, если они используются в коде, который вы хотите переместить.
Если вам нужно сделать это вручную (т.е. без таких инструментов, как ReSharper):
- Переместите код в новую сборку.
- Для каждого пространства имен или типа, дающего ошибку, найдите ее в Обозревателе объектов.
- Найдите сборку, содержащую это пространство имен и тип, и добавьте ссылку на эту сборку в своем новом проекте.
Вам также может понадобиться добавить ссылку на проект в исходный проект.
Вы не можете добавить ссылку на EXE из библиотеки классов (при условии, что EXE использует эту библиотеку классов), так как это приведет к циклической ссылке.
Обычно необходимо реорганизовать все зависимости, чтобы в библиотеке классов они были все или позволяли приложению вводить зависимости из EXE/ других клиентов. В более позднем случае библиотека классов должна определить базовые классы / интерфейсы, чтобы разрешить такое внедрение.