visual-studio - vscode - visual studio code path intellisense




Build NuGet Package automáticamente incluyendo dependencias referenciadas (2)

Quiero ejecutar un repositorio NuGet local / interno . Creo que he descubierto cómo "reutilizar" los paquetes existentes de NuGet incluyéndolos en un proyecto ficticio usando NuGet y escaneando el archivo del paquete para tomar mis archivos .nupkg caché .nupkg , pero ...

¿Cómo se crea un paquete nuget ( .nupkg ) de un proyecto, que incluye automáticamente todas las dependencias dll y no solo las que se obtienen a través de NuGet?

Específicamente:

  1. Crea una solución
  2. Agregar un nuevo proyecto
  3. Agregue referencias a varios archivos .dll / otros proyectos <- esta es la parte que falta
  4. Agregue paquetes NuGet a través del administrador de paquetes / cmdline / whatever
  5. algo crea automáticamente .nupkg

Por lo que he encontrado, se supone que debes hacer cosas como

  • edite manualmente su archivo .csproj para agregar <BuildPackage>true</BuildPackage> para incluir dependencias
  • crear manualmente un archivo .nuspec y listar manualmente sus dependencias ( ¿similar? )
  • ejecute manualmente el nuget pack en su archivo .nuspec

Pero todo es manual, lo cual es estúpido. Incluso las soluciones semiautomáticas siguen siendo torpes o medio manuales:

Me conformaré con algo que crea automáticamente un manifiesto .nuspec partir de las referencias del proyecto. Luego, teóricamente, ese + el evento de compilación nuget se puede enrollar en un paquete de compilación / proyecto nuget, que es lo que realmente quiero ver.


¡Mira esto!

La solución que encontré es una extensión para Visual Studio: https://visualstudiogallery.msdn.microsoft.com/fbe9b9b8-34ae-47b5-a751-cb71a16f7e96/view/Reviews

Simplemente agrega un nuevo proyecto llamado Nuget Package NuGet Package

¡Entonces estás agregando proyectos interesantes a referencias y BOOOM! Todas las dependencias y directorios de archivos se agregan automáticamente. Si desea modificar los datos de NuSpec, haga clic derecho en el proyecto y vaya a Propiedades, luego modifique lo que desee. Generado NuSpec y nupkg estará en la carpeta obj de su nuevo proyecto. Espero que ayude ;).


Para otros Googlers, puede usar esto si está usando el archivo NuGet.targets para ejecutar NuGet Pack:

<Target Name="PrePackage" BeforeTargets="BuildPackage">
  <PropertyGroup>
    <BuildCommand>$(BuildCommand) -IncludeReferencedProjects</BuildCommand>
  </PropertyGroup>
</Target>






nuget-package