2010-08-01 35 views
21

Actualmente tengo 4 soluciones que son proyectos independientes, sin embargo, hay un poco de código duplicado cuando se trata de algunas áreas de las aplicaciones.¿La mejor manera de trabajar con múltiples proyectos/soluciones en Visual Studio?

En este momento se trata simplemente de algunas formas y su código asociado.

Cuando quiero cambiar o mejorar algo, tengo que copiar y pegar en todos los proyectos relevantes.

Consideré la creación de un nuevo proyecto dentro de una de las soluciones para la biblioteca .dll/class, pero sentí que esto era incorrecto. (Por favor, diga si estoy equivocado).

Como es un componente para todas las aplicaciones, decidí crear una nueva solución para la biblioteca .dll/class y estoy buscando mover el código compartido a eso, pero, como nunca antes había bajado por esta ruta, ¿Cuáles son mis opciones desde aquí?

¿Puedo incluir esta solución en las demás si necesito hacer un cambio simple y actualizarlo en todos los proyectos o en su lugar, siempre debería estar trabajando en el componente compartido en una instancia separada de Visual Studio , fuera de las aplicaciones que lo usan?

Respuesta

16

Esa es exactamente la forma correcta de manejar esta situación.

Puedes incluir proyectos en múltiples soluciones haciendo clic derecho en la solución y seleccionando Agregar proyecto existente ...

Cualquier cambio que se realice aparecerán en todas las soluciones. El único problema al que esto conduce es que es posible romper una solución de otra. Aquí es donde las construcciones automáticas en el compromiso con el control de la fuente entran en juego.

+1

Gracias por esto. - Para ser claro, debería crear soluciones independientes para las características compartidas, luego ir a las otras soluciones y elegir agregar el proyecto? ... La razón por la que no me gustó agregar un nuevo proyecto directamente a una solución existente fue porque pensé que de alguna manera lo ata a esa solución y solo se puede usar allí. ¿Estoy equivocado? – Wil

+1

Puede crear un proyecto en una solución existente y agregarlo a otros. Luego puede agregar una referencia al proyecto en los proyectos que ya existían. – pdr

+1

@pdr - No puedo decir que realmente te haya entendido enseguida, pero lo intenté de todos modos (solo con un MSGBOX compartido, ¡pero tienes que empezar en alguna parte!) Y no puedo creer lo fácil y simple que es estaba. Muchas gracias por la ayuda. – Wil

3

Mover el código común a un conjunto compartido por separado es una excelente opción.

Una cosa a tener en cuenta es mantener la lógica de negocio común o el código de tipo de objeto de negocio separado del código relacionado con la interfaz como controles personalizados, si es necesario tener dos conjuntos comunes. Esto es más trabajo al principio, pero hace las cosas mucho más fáciles más adelante cuando necesita hacer cambios en la interfaz de usuario o cambiar la suite de control que está utilizando.

+0

Muchas gracias por la ayuda – Wil

10
  1. Poner códigos compartidos en separada Solución/Proyecto como biblioteca de clases,
  2. En el post evento de construcción de proyectos compartidos copia del archivo DLL en un directorio específico,
  3. Añadir compartidos DLL de este directorio para otros proyectos/soluciones

Al hacer esto cada vez que construya sus proyectos de consumo, usarán las últimas dll automáticamente.

+0

Muchas gracias por la ayuda. – Wil

+0

mucho mejor que compartir proyectos existentes en todas las soluciones, una cosa que puede complicar es la construcción automatizada y la integración continua, pero todo lo posible – mikus

Cuestiones relacionadas