Pregunta

Tengo 3 proyectos .net.

Project1.dll es generado por un proyecto VS2008.

Project2.dll es generado por un proyecto VS2005 que hace referencia a Project1.dll.

Project3.dll es generado por un proyecto VS2008 que hace referencia a Project1.dll y Project2.dll.

En este momento, construyo Project1.dll y lo copio manualmente en el lugar donde Project 2 puede recogerlo.

Luego construyo Project2.dll y lo copio manualmente y Project1.dll al lugar donde Project 3 puede recogerlos.

Obviamente estoy haciendo algo mal (manual). ¿Cuál es la forma correcta de mantener actualizadas las referencias de mis proyectos?


Actualizar Project2 a VS2008 y luego crear una solución que contenga los 3 proyectos no es una opción en este momento. Tenemos un complemento de Visualstudio de terceros que aún no funciona en VS2008. Project2 debe permanecer en VS2005

La actualización de Project1 y Project3 a VS2005 y luego crear una solución tampoco es una opción. Estamos confiando en las características de C # 3.0 y .net 3.5 en esos proyectos.

¿Fue útil?

Solución

David, Probablemente la mejor opción sería tener una carpeta de compilación común para los tres proyectos. Esto se puede hacer en las Propiedades del proyecto- > Construir - > Ruta de salida. Luego señale las referencias a la carpeta de salida. De esa manera, cada vez que construyas cualquiera de los proyectos inferiores, los proyectos superiores tendrán las últimas versiones. También puede establecer la ruta por configuraciones (Depurar, Liberar), por lo que no tendrá que cambiar eso para cada tipo de compilación.

Otros consejos

¿Qué tal un evento previo a la compilación para Project3, que se apaga y utiliza un archivo por lotes para compilar Project1, copiarlo en la carpeta Project2 y luego construir project2 y copiarlo en la carpeta project3.

Recomendaría compartir los archivos csproj / vbproj entre las soluciones. El formato de los archivos del proyecto es compatible entre las dos versiones de studio (sin embargo, los archivos de la solución no lo son), y mientras sus proyectos VS2008 estén dirigidos al tiempo de ejecución 2.0, no debería tener problemas para compilarlos. Esto le permitirá hacer referencia a los proyectos, que se encargarán de las dependencias.

El único lugar donde esto se pone difícil es si tienes un proyecto web que necesita funcionar entre las dos versiones de studio. En ese caso, hay algunas modificaciones en los archivos del proyecto que apuntarán a los archivos de destino MSBuild correctos.

Usamos un script de compilación que maneja las dependencias, construye las DLL y hace lo que estás haciendo manualmente.

Un truco que he usado en el pasado es mover todo a 2008. Luego configuré una solución especial en 2005 para el proyecto dos y la uso para trabajar con el complemento. Hacer que esto funcione depende de cuán mal se comporte el proyecto dos en 2008.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top