Совместное использование исходного кода класса C# между несколькими проектами
-
28-09-2019 - |
Вопрос
Я написал класс, который будет обрабатывать внутреннюю регистрацию в моем приложении.Теперь я хочу использовать этот класс в другом новом и совершенно отдельном проекте.
Я мог бы просто скопировать файл в папку нового проекта, но мне хотелось бы иметь только одну его копию, чтобы все изменения в ней со временем применялись к обоим проектам.
Я могу использовать «добавить существующий файл», но куда мне поместить файл, чтобы следующий разработчик знал, что он необходим.Когда-то у меня была для этого «общая» папка, но однажды эта папка не была перенесена на следующий компьютер разработки.
Как лучше всего это организовать, чтобы это имело наибольший смысл для новых сопровождающих и минимизировало риск неработающих ссылок в проектах.
Решение
Вы можете создать проект библиотеки, содержащий этот класс, и все, что вам нужно сделать, это добавить ссылку на этот проект.
Если это не вариант, вы можете использовать «Щелкните правой кнопкой мыши -> добавить существующий элемент -> Добавить как ссылку». Таким образом, у вас будет только одна копия кода, но она может существовать в нескольких проектах.
Другие советы
Библиотека классов, которой можно поделиться, — лучшее решение.
Но вы можете добавить файл в проект VS как ссылку, а не копировать.Для этого используйте раскрывающийся список кнопки «Добавить» в диалоговом окне добавления существующего элемента.
Если вам действительно нужно поделиться исходным кодом, например, если у вас есть одновременная 32-битная и 64-битная сборка одной и той же сборки (что иногда требуется, если вы зависите от собственного кода), вы можете использовать приведенный ответ в этой теме: Как вы обмениваетесь кодом между проектами/решениями в Visual Studio?
(Ищите «связь» файла кода между двумя проектами.)
Разбейте код регистрации на отдельную сборку.
Затем вы можете включить эту сборку в проекты, которые должны использовать этот регистратор.
Он сохраняет все в чистоте и порядке, и вам придется поддерживать только один набор кода, а не беспокоиться о каждой копии.
Создайте новую сборку, содержащую этот класс.
Тогда все ваши другие проекты смогут ссылаться на эту сборку и использовать ее класс.
Поместите класс в уникальное пространство имен, затем добавьте файл в качестве ссылки на все проекты, которые вам понадобятся.Обязательно разместите оператор using для того уникального пространства имен, в котором вы будете использовать класс, иначе вам придется полностью квалифицировать каждое его использование.Я думаю, что в подобных ситуациях это гораздо предпочтительнее, чем сборка, поскольку она не генерирует ненужные перекрестные ссылки на сборку для чего-то, что является частью вашего собственного кода, которым вы просто хотите поделиться между своими проектами.
Для этого вы также можете использовать свою систему управления версиями.
Обычно мы создаем каталог с решением и основным проектом, а затем передаем этот каталог в SVN.Затем все общие библиотеки связываются с помощью svn:external, поэтому все проекты существуют в одном каталоге решений.
После фиксации любой может проверить рабочее решение со всеми внешними зависимостями.