Добавление ссылок для кода, перемещенного в библиотеку классов

Из решения, которое я сделал в Visual Studio 2013, я хочу перенести метод в DLL (проект библиотеки классов).

Когда я вставляю метод в проект DLL, он не распознает части кода и показывает эту ошибку`:

"Вы пропустили директиву using или ссылку на сборку?"

Из-за этого DLL не может быть собрана. Я предполагаю, что требуется определенная ссылка на решение, но я не уверен, как поступить.

Я знаю, как добавить ссылку из решения в DLL, но я не уверен, как это делается наоборот или даже если это возможно.

2 ответа

Решение

Да, вам нужно восстановить те же ссылки, которые использует исходный проект, если они используются в коде, который вы хотите переместить.

Если вам нужно сделать это вручную (т.е. без таких инструментов, как ReSharper):

  1. Переместите код в новую сборку.
  2. Для каждого пространства имен или типа, дающего ошибку, найдите ее в Обозревателе объектов.
  3. Найдите сборку, содержащую это пространство имен и тип, и добавьте ссылку на эту сборку в своем новом проекте.

Вам также может понадобиться добавить ссылку на проект в исходный проект.

Вы не можете добавить ссылку на EXE из библиотеки классов (при условии, что EXE использует эту библиотеку классов), так как это приведет к циклической ссылке.

Обычно необходимо реорганизовать все зависимости, чтобы в библиотеке классов они были все или позволяли приложению вводить зависимости из EXE/ других клиентов. В более позднем случае библиотека классов должна определить базовые классы / интерфейсы, чтобы разрешить такое внедрение.

Другие вопросы по тегам