Pregunta

Tratando de descubrir la mejor manera de usar Nuget en un entorno de desarrollo para administrar nuestras propias bibliotecas.

Queremos estandarizarnos en la forma de Nuget de hacer las cosas para nuestros librios de terceros, pero también nos gustaría usar Nuget para administrar nuestras bibliotecas de servicios internos, para los desarrolladores que consumen las librias en casa Esto es genial y todos felices. Sin embargo, para los desarrolladores que trabajan activamente en la utilidad lib, parece ser más problemático, su proceso anterior de construir lib, construir la aplicación principal, F5 y Go ahora se ralentiza con la publicación y la actualización y potencialmente muchos paquetes, sin mencionar el ¡Gimiendo sobre el proceso adicional!

Usamos TDD en las libs internas, pero todos deben poder depurar y modificar LIBS junto con la aplicación principal, hemos visto a Phil Haacks Demoss en paquetes de depuración en 1.3 y leer el blog de David Ebbos, pero eso se ajusta a un escenario diferente.

Entonces, ¿cuál es el mejor proceso para los ciclos de desarrollo/depuración? Si usa Nuget, entonces necesitamos aceptar las restricciones existentes, o hay una práctica híbrida que la gente está usando y tal vez 1.3 se acerca a la automatización de todo esto, o simplemente evitamos NUGET para paquetes internos, lo que sería una verdadera lástima.

Amar a Nuget, tal vez querer mucho del pequeño, apreciado los comentarios.

Gracias

¿Fue útil?

Solución

Te sugiero que uses Acciones o alimentos de red separadas (similar a que myget.org admite en la nube) Para diferentes escenarios. Se puede imaginar crear una compartir CI, una participación de control de calidad, una receta compartida, ...

Haga que las personas que trabajen en la biblioteca referenciada dan construcciones de CI que eliminan los paquetes de CI en el repositorio de CI, por ejemplo, y hagan que otros proyectos recogidos (que solo necesitan hacer una actualización simple, podría automatizarse a través de PowerShell en Pre-Build: Check Para una nueva versión, si es así, actualice).

Solo asegúrese de que cuando los productos lanzen sus hitos, también se lanzan con dependencias liberadas (podría ser tan simple como cambiar de alimentación, las versiones siempre tendrán un número de versión más alto que el CI Builds).

¡Espero que ayude! Saludos, Xavier

Otros consejos

Si está trabajando en el código fuente para el LIB y la aplicación principal al mismo tiempo, diría que Nuget probablemente no sea una buena solución. Creo que solo funcionará en situaciones en las que trabaja con una versión "estable" de la biblioteca que no necesita cambiar con frecuencia durante el desarrollo de su aplicación principal.

Dicho esto: ¿es posible que el desarrollo en su biblioteca pueda hacerse de forma aislada? Ya mencionas que estás haciendo TDD en la lib, entonces, ¿por qué no se puede hacer ese trabajo, luego construido, implementado, luego el trabajo de la aplicación principal realizado?

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