Estoy creando una solución C# en Visual Studio 2008 que tiene varios proyectos y dependencias de proyectos.
Estoy buscando una manera de cambiar los números de versión dll SOLAMENTE cuando cambia el código que crea el proyecto.
Actualmente uso Beyond Compare para comparar mi versión construida localmente con el sistema de archivos de producción. El objetivo es implementar ÚNICAMENTE dlls actualizados. Estoy usando números de versión autoincrementing, y cada vez que abres Visual Studio y haces una compilación, todos los números de la versión dll se incrementan. Lo mismo ocurre con una reconstrucción completa de la solución y cuando un desarrollador diferente realiza una compilación e intenta implementarla.
¿Hay alguna manera de configurar Visual Studio para INCREMENTAR UNICAMENTE el número de compilación en función de los cambios en el contenido del archivo? ¿Hay un complemento que haga esto?
Parece que una comparación binaria de estos archivos también fallará debido a los diferentes números de versión dentro de las DLL. ¿Alguien sabe de una mejor herramienta comparar solo los contenidos de dlls?
Gracias de antemano.Cómo configurar números de compilación en Visual Studio para habilitar la comparación dll
Respuesta
Una opción es pasar a una solución de integración continua, como Cruise Control .Net, esto permite que las compilaciones se activen al registrarse en un sistema de control de origen.
En cuanto a versiones de montaje lo que suelo hacer es crear un único SolutionVersion.cs (para reemplazar la versión de ensamblado predeterminado cs) que está vinculada a cada proyecto (utilice el Agregar elemento existente, sino cambiar el botón para añadir enlace)
Entonces utilizar una tarea de NAnt o MSBuild para tomar el número de etiqueta acumulación control de crucero y sobrescribir los SolutionVersion.cs verison números antes de la solución se construye
de esa manera puedo tener una asamblea y rastrear de nuevo a través del código Versión de compilación de CruiseControl (incluso mejor, generalmente obtengo CC.net para etiquetar la fuente con el mismo número en control de fuente)
No es exactamente lo que estás preguntando, pero encontré esto útil al tratar con soluciones grandes: Versioning Controlled Build. Según su documento, detecta los cambios que le interesan: "Si hay un archivo con una marca de tiempo más reciente (lo que significa que el código fuente ha sido modificado después del cambio de la versión anterior), el proyecto se marcará para la actualización de la versión "
La solución recomendada y compatible sería que su proyecto NO aumente automáticamente el número de compilación utilizando Visual Studio. Entonces necesitaría manualmente o escribir un script de precompilación/MS Build Task para hacer el incremento.
Hay una interesante muestra en este codeproject article que se debe comprobar que funciona ... se trata de una tarea prebuild que realiza la tarea de actualizar el número de compilación basado en el día del año
sugeriría que busca en las opciones que su sistema de control de revisión proporciona para incrustar la información de revisión en los archivos fuente. Tuve suficientes problemas con el autoincremento en el pasado que me prometí nunca más. En estos días, prefiero algo un poco más concreto que un número de compilación e incrusto identificadores únicos en cada producto del sistema de compilación.
Describo mi propio sistema en Embedding mercurial revision information in Visual Studio c# projects automatically. Si bien mi solución probablemente no es adecuada para usted, se sugirieron otras opciones interesantes en respuesta a mi pregunta, por lo que algunas de las soluciones que rechacé pueden serle útiles, incluso si tiene que adaptarlas a cualquier VCS que tenga. utilizar.
- 1. Habilitar la visualización de números de línea en Visual Studio
- 2. Cómo configurar un firewall externo para habilitar la depuración remota de Visual Studio
- 3. En Visual Studio, ¿cómo puedo configurar la acción de compilación para una carpeta completa?
- 4. Habilitar una sola advertencia en Visual Studio
- 5. ¿Cómo habilitar la depuración de procedimientos almacenados en Visual Studio?
- 6. Definición de compilación de Visual Studio: cómo agregar archivos adicionales (dll) para compilar?
- 7. Visual Studio 2012 en comparación con Visual Studio 2010 (delta)
- 8. Visual Studio: DLL diferentes para configuraciones
- 9. Agilice la compilación en Visual Studio 2005
- 10. Configurar Visual Studio para usar más RAM
- 11. Compilación Qt - Visual Studio 2010
- 12. Vinculación de dll en Visual Studio
- 13. ¿Cómo detener una compilación en Visual Studio?
- 14. ¿Cómo hacer que Visual Studio deje de copiar archivos DLL durante la compilación sin mi permiso?
- 15. Visual Studio: vuelva a habilitar "Falló la compilación, ejecuta el último éxito?" cuadro de diálogo
- 16. Visual Studio 2008 - Mover archivos en la compilación a bin/
- 17. C# Compilación sin Visual Studio
- 18. Visual Studio Estadísticas de compilación
- 19. "Habilitar" la comparación para las clases
- 20. Números de líneas relativas en Visual Studio
- 21. Habilitar excepciones de C++ en Visual Studio 2010 opciones de compilación
- 22. Compilación de ensamblaje en Visual Studio
- 23. ¿Cómo habilitar las guías de pestañas en Visual Studio 2010?
- 24. Visual Studio 6 Processor Pack Habilitar SSE2
- 25. Cómo configurar la codificación predeterminada en Visual Studio 2010
- 26. Cómo habilitar y modificar Editar y continuar en Visual Studio
- 27. Usando .dll en Visual Studio 2010 C++
- 28. Visual Studio sigue ejecutando la compilación anterior
- 29. Cómo incluir carpetas específicas en la compilación con visual studio
- 30. ¿Puedo configurar visual studio para usar psake al construir?
+1 para ccnet. Para las versiones de ensamblaje, usamos el número de revisión de subversión.Para los instaladores, tenemos proyectos de ccnet que requieren una compilación forzada, por lo que el instalador tiene una versión basada en el número de compilación de ccnet. – Pedro
Tiene razón, hacer que el servidor de compilación lo haga es la mejor opción. el archivo de versión enlazado se lleva la mayor parte del camino, pero TODAS las versiones dll cambiarían con cada compilación si está usando el número de compilación. utilizar el número de rev del control de origen parece ser más complicado de obtener en la mayoría de los escenarios, y luego más complejo usar el último número rev de solo archivos en un proyecto específico. – jaminto
Estoy abandonando el requisito de implementación parcial de solo dlls actualizados, implementar todos los dlls de una nueva versión está bien, y todos tendrán números de versión actualizados en función del número de compilación. http://www.jetbrains.com/teamcity/ es mi servidor de compilación de elección ahora, puede ser tuyo también. – jaminto