visual totalmente studio solución solucion sea restaurar que puede proyecto para paquetes paquete los latest guardó guarde error correctamente consola con compatible antes administrar administrador continuous-integration nuget nuget-package

continuous integration - totalmente - Cómo actualizar automáticamente los paquetes NuGet a la última versión disponible



restaurar paquetes nuget visual studio 2012 (3)

Esto explica cómo hacerlo a través de MSBuild

http://netitude.bc3tech.net/2014/11/28/auto-update-your-nuget-packages-at-build-time/

<Target Name="UpdatePackages" DependsOnTargets="CheckPrerequisites"> <Exec Command="$(UpdateCommand)" Condition="''$(OS)'' != ''Windows_NT'' And Exists(''$(PackagesConfig)'')" /> <Exec Command="$(UpdateCommand)" LogStandardErrorAsError="true" Condition="''$(OS)'' == ''Windows_NT'' And Exists(''$(PackagesConfig)'')" /> </Target> <!-- Commands --> <UpdateCommand>$(NuGetCommand) update "$(PackagesConfig)" -source "$(PackageSources)" -id AutoUpdater $(NonInteractiveSwitch)</UpdateCommand> <RestoreCommand>$(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" $(NonInteractiveSwitch) $(RequireConsentSwitch) -solutionDir $(PaddedSolutionDir)</RestoreCommand> <BuildCommand>$(NuGetCommand) pack "$(ProjectPath)" -Properties "Configuration=$(Configuration);Platform=$(Platform)" $(NonInteractiveSwitch) -OutputDirectory "$(PackageOutputDir)" -symbols</BuildCommand> <!-- We need to ensure packages are restored prior to assembly resolve --> <BuildDependsOn Condition="$(RestorePackages) == ''true''"> RestorePackages; UpdatePackages; $(BuildDependsOn); </BuildDependsOn>

Tengo dos repositorios, y necesito bibliotecas compiladas de un repositorio en el otro. No quiero verificar manualmente repo1 para las bibliotecas actualizadas, y copiar / comprometerme con repo2, porque eso es estúpido. Tengo repo1 compilando paquetes NuGet en cada compilación de las bibliotecas necesarias y publicándolas en un servidor NuGet interno. Los proyectos en repo2 pueden hacer referencia a estos paquetes NuGet, y todo está (casi) funcionando.

El último obstáculo para esto es actualizar automáticamente los paquetes NuGet en los proyectos de repo2. Como no sé cuándo se actualizarán las bibliotecas en repo1 (y no debería hacerlo), me gustaría algún tipo de evento de compilación en los proyectos en repo2 que actualizará automáticamente los paquetes NuGet. Actualmente solo tengo un evento de precompilación para hacerlo, pero como los archivos de packages.config contienen el número de versión del paquete instalado, sigo obteniendo archivos modificados en repo2 (los archivos de packages.config se actualizan).

Entonces mi pregunta es: ¿cuál es una buena manera de actualizar automáticamente los paquetes NuGet sin arruinar mi repo2 VCS? ScottGu dice Here (en comentarios) que es posible enganchar actualizaciones de paquete hasta compilaciones de CI, pero no especifica cómo y mi solución actual es desordenada. ¿Hay una forma de construir que me estoy perdiendo? O mejor solución temporal?


Probablemente pueda aprovechar la característica Restauración de paquete NuGet (un poco de información aquí: http://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages )

En la construcción del proyecto, se llama a "nuget.exe -install" para reinstalar los paquetes de packages.config. No lo he intentado, pero podría agregar un comando Actualizar al archivo nuget.targets de la misma manera. (Tendría que llamar tanto a la actualización de nuget.exe como a la instalación existente de nuget.exe).


Puede modificar su archivo .cspoj para ejecutar un objetivo "BeforeBuild" como este:

<Target Name="BeforeBuild"> <Exec Command="&quot;$(SolutionDir).nuget/NuGet&quot; update &quot;$(ProjectDir)packages.config&quot; -Id your.package.id" /> </Target>

Tenga en cuenta que: necesitará el "Nuget.exe" en su directorio de soluciones