Поделитесь исходным кодом класса С# между несколькими проектами
Я написал класс, который будет обрабатывать внутренние записи в моем приложении.
Теперь я хочу использовать этот класс в другом новом и полностью отдельном проекте.
Я мог бы просто скопировать файл в новую папку проекта, но мне хотелось бы иметь только один экземпляр этого файла, чтобы все изменения в нем применимы к обоим проектам с течением времени.
Я могу использовать "добавить существующий файл", но где я помещаю файл так, чтобы следующий разработчик знал, что это требуется. У меня когда-то была "общая" папка, но один раз эта папка не была перенесена на следующий компьютер разработки.
Каков наилучший способ организовать это, чтобы он имел наибольший смысл для новых разработчиков и минимизировал риск неработающих ссылок в проектах.
Ответы
Ответ 1
Вы можете создать проект библиотеки, который имеет этот класс таким образом, все, что вам нужно сделать, это добавить ссылку на этот проект.
Если это не вариант, вы можете использовать "Правый клик → добавить существующий элемент → Добавить как ссылку", таким образом, у вас есть только одна копия кода, но она может существовать в нескольких проектах.
Ответ 2
Лучшим решением является библиотека классов для обмена.
Но вы можете добавить файл в проект VS как ссылку, а не копировать. Для этого используйте раскрывающийся список кнопки Добавить диалог добавления существующего элемента.
Ответ 3
Если вам действительно нужно разделить исходный код, например, если у вас есть одновременная 32-битная и 64-битная сборка одной и той же сборки (что требуется в некоторых случаях, если вы зависите от собственного кода), вы можете использовать ответ, данный в этой теме: Как вы совместно используете код между проектами/решениями в Visual Studio?
(Ищите ссылку "код" между двумя проектами.)
Ответ 4
Разделите свой код регистрации на отдельную сборку.
Затем вы можете включить эту сборку в проекты, которые должны использовать этот регистратор.
Он сохраняет все красивое и чистое, и вам нужно будет поддерживать только один набор кода, а не беспокоиться о каждой копии.
Ответ 5
Создайте новую сборку, содержащую этот класс.
Затем все ваши другие проекты могут ссылаться на эту сборку и использовать класс внутри.
Ответ 6
Поместите класс в уникальное пространство имен, а затем добавьте файл как ссылку на все проекты, которые вам нужны для его использования. Убедитесь, что вы поместили оператор using для этого уникального пространства имен, в котором вы будете использовать класс, или вам придется полностью квалифицировать каждое его использование.
В подобных ситуациях я думаю, что это гораздо предпочтительнее, чем assemply, поскольку оно не создает ненужных ссылок на перекрестные ссылки, для чего-то, что является частью вашего собственного кода, который вы просто хотите поделиться между вашими проектами.
Ответ 7
Вы также можете использовать свою систему управления версиями, чтобы сделать это.
Обычно мы создаем Directory с Solution и Main Project, а затем передаем этот каталог SVN. Затем все общие библиотеки связаны с помощью svn: external - поэтому все проекты существуют в одном каталоге решений.
После фиксации каждый может проверить работоспособное решение со всеми внешними зависимостями.