В настоящее время у меня есть 4 решения, которые являются независимыми проектами, однако существует довольно мало дублированного кода когда дело доходит до нескольких областей приложений.
В данный момент это - просто несколько форм и их связанный код.
Когда я хочу изменить или улучшить что-то, я должен скопировать и вставить ко всем соответствующим проектам.
Я посмотрел на создание нового проекта в одном из решений для .dll/class библиотеки, но я чувствовал, что это было неправильно. (Скажите, неправ ли я).
Поскольку это - компонент для всех приложений, я решил создать новое решение для .dll/class библиотеки, и рассмотрение перемещает общий код в тот - но, никогда спустившись по этому маршруту прежде, каковы мои опции отсюда?
Могут я, чтобы затем включать это решение в других, если я должен внести простое изменение, и оно обновило во всех проектах или вместо этого, я должен всегда работать над совместно используемым компонентом в отдельном экземпляре Visual Studio, за пределами приложений с помощью него?
Это правильный способ справиться с этой ситуацией.
Вы можете включить проекты в несколько решений, щелкнув решение правой кнопкой мыши и выбрав Добавить существующий проект ...
Любые внесенные вами изменения появятся во всех решениях. Единственная проблема, к которой это приводит, состоит в том, что одно решение можно отделить от другого. Именно здесь автоматические сборки при фиксации в системе управления версиями вступают в свои права.
Автор делая это каждый раз, когда вы создаете свои потребительские проекты, они будут автоматически использовать последнюю версию DLL.
Перенос общего кода в отдельную общую сборку - отличный вариант.
Стоит подумать о том, чтобы держать общую бизнес-логику или код типа бизнес-объектов отдельно от кода, связанного с пользовательским интерфейсом, например, пользовательских элементов управления - если вам нужно, тогда у вас есть две общие сборки. Это требует больше усилий на начальном этапе, но значительно упрощает работу в дальнейшем, когда вам потребуется внести изменения в пользовательский интерфейс или изменить набор используемых элементов управления.