Я расскажу о настройке, которую мы используем для управления и тестирования наших проектов Windows Service. Хотя это не отвечает на вопрос «обмен кодом без DLL» (ответ Унмеша позаботится об этом), я думаю, что OP, вероятно, не понимает, насколько это просто с DLL. В любом случае, я надеюсь, что это поможет кому-то.
Создать решение, LDAPSync. Создание трех проектов в этом решении:
- LDAPSyncLib
- LDAPSyncSvc
- LDAPSyncTest
LDAPSyncLib является DLL проект, который содержит все бизнес-логики и основной функциональности.
LDAPSyncSvc проект службы Windows, который содержит два класса, сервис класса контроллера, который наследует от ServiceBase, и класса для обслуживания. Этот проект имеет ссылку на проект LDAPSyncLib.
LDAPSyncTest является либо графическим приложением (WinForms, WCF и т. Д.), Либо консольным приложением, в зависимости от ваших потребностей. Этот проект также имеет «ссылку на проект» на LDAPSyncLib. Его единственная цель - предоставить некоторый интерфейс, который позволяет вам легко выполнять требуемые вызовы в вашей бизнес-логике для целей тестирования. В Visual Studio установите это как «StartUp Project».
Теперь, когда вы запускаете отладку через Visual Studio, вы получите красивый небольшой графический интерфейс или командное окно, которое вы можете использовать для проведения тестовых вызовов вручную. Когда вы устанавливаете его как службу Windows, класс контроллера LDAPSyncSvc берет на себя и обрабатывает все необходимые запросы на обслуживание (запуск, остановка, пауза и т. Д.).
У нас есть около 30 внутренних проектов Windows Service, которые мы постоянно управляем, разрабатываем и тестируем уже более десяти лет, и этот рабочий процесс оказался неоценимым в быстром поиске и исправлении ошибок при их возникновении. Желаем удачи в вашем проекте, и я надеюсь, что это поможет некоторым будущим Googlers.
Возможно, вам понадобятся новые и новые символические ссылки. – CodesInChaos 2010-12-02 15:27:01
@CodeInChaos, нет возможности хранить символические ссылки в sourcecontrol/backups легко - вы делаете оба из них, правильно? =) – Rob 2010-12-02 15:30:35
http://stackoverflow.com/questions/954560/what-does-git-do-to-files-that-are-a-symbolic-link звучит как git-хранилище sym-ссылок как sym-links. Не знаю, работает ли он на окнах, хотя я пока не использую Vista. И в зависимости от варианта использования может быть достаточно добавить символическую ссылку в файл игнорирования и вручную создать ее для каждого кодера. Немного хакерский, но должен работать. – CodesInChaos 2010-12-02 15:51:55