Совместное использование исходного кода класса C# между несколькими проектами

StackOverflow https://stackoverflow.com/questions/2666898

  •  28-09-2019
  •  | 
  •  

Вопрос

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

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

Я могу использовать «добавить существующий файл», но куда мне поместить файл, чтобы следующий разработчик знал, что он необходим.Когда-то у меня была для этого «общая» папка, но однажды эта папка не была перенесена на следующий компьютер разработки.

Как лучше всего это организовать, чтобы это имело наибольший смысл для новых сопровождающих и минимизировало риск неработающих ссылок в проектах.

Это было полезно?

Решение

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

Если это не вариант, вы можете использовать «Щелкните правой кнопкой мыши -> добавить существующий элемент -> Добавить как ссылку». Таким образом, у вас будет только одна копия кода, но она может существовать в нескольких проектах.

Другие советы

Библиотека классов, которой можно поделиться, — лучшее решение.

Но вы можете добавить файл в проект VS как ссылку, а не копировать.Для этого используйте раскрывающийся список кнопки «Добавить» в диалоговом окне добавления существующего элемента.

Если вам действительно нужно поделиться исходным кодом, например, если у вас есть одновременная 32-битная и 64-битная сборка одной и той же сборки (что иногда требуется, если вы зависите от собственного кода), вы можете использовать приведенный ответ в этой теме: Как вы обмениваетесь кодом между проектами/решениями в Visual Studio?

(Ищите «связь» файла кода между двумя проектами.)

Разбейте код регистрации на отдельную сборку.

Затем вы можете включить эту сборку в проекты, которые должны использовать этот регистратор.

Он сохраняет все в чистоте и порядке, и вам придется поддерживать только один набор кода, а не беспокоиться о каждой копии.

Создайте новую сборку, содержащую этот класс.

Тогда все ваши другие проекты смогут ссылаться на эту сборку и использовать ее класс.

Поместите класс в уникальное пространство имен, затем добавьте файл в качестве ссылки на все проекты, которые вам понадобятся.Обязательно разместите оператор using для того уникального пространства имен, в котором вы будете использовать класс, иначе вам придется полностью квалифицировать каждое его использование.Я думаю, что в подобных ситуациях это гораздо предпочтительнее, чем сборка, поскольку она не генерирует ненужные перекрестные ссылки на сборку для чего-то, что является частью вашего собственного кода, которым вы просто хотите поделиться между своими проектами.

Для этого вы также можете использовать свою систему управления версиями.

Обычно мы создаем каталог с решением и основным проектом, а затем передаем этот каталог в SVN.Затем все общие библиотеки связываются с помощью svn:external, поэтому все проекты существуют в одном каталоге решений.

После фиксации любой может проверить рабочее решение со всеми внешними зависимостями.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top