Me gustaría crear una aplicación que haga uso del NuGet Package NuGet.Core. Tiene una clase llamada PackageBuilder que lo hace posible. ¿Hay alguna muestra/tutorial/documentación disponible?¿Cómo crear un paquete NuGet usando NuGet.Core?
Respuesta
No conozco ningún tutorial o documentación sobre cómo crear un paquete NuGet usando NuGet.Core. En cambio, echaría un vistazo al código fuente de NuGet.exe. Tiene un comando que construye un paquete desde un archivo .nuspec. El PackCommand class, que usa la clase PackageBuilder, debe mostrarle lo que debe hacer.
No encuentro PackCommand en Nuget.Core. ¿Puedes ayudarme? – Rookian
PackCommand está en el espacio de nombres NuGet.Commands en el ensamblado NuGet.exe. –
Un ejemplo muy simple:
- crear una carpeta que contiene los archivos que desea en el paquete.
escribir algo de código como este:
ManifestMetadata metadata = new ManifestMetadata() { Authors = "mauvo", Version = "1.0.0.0", Id = "myPackageIdentifier", Description = "A description", }; PackageBuilder builder = new PackageBuilder(); builder.PopulateFiles("folderPath/", new[] {new ManifestFile() {Source = "**"}}); builder.Populate(metadata); using(FileStream stream = File.Open(packagePath, FileMode.OpenOrCreate)) { builder.Save(stream); }
¿Por qué esta no es la respuesta aceptada? La respuesta actual parece más un comentario. – glopes
Un ejemplo mejorado basado en el código de David. Cambios:
- Todos los archivos en una carpeta excepto * .nuspec se agregan al paquete.
Una fila que define el nombre del archivo del paquete.
ManifestMetadata metadata = new ManifestMetadata() { Authors = "mauvo", Version = "1.0.0.0", Id = "myPackageIdentifier", Description = "A description", }; PackageBuilder builder = new PackageBuilder(); var files = Directory.GetFiles(packagePath, "*", SearchOption.AllDirectories) .Where(f => !f.EndsWith(".nuspec")) .Select(f => new ManifestFile { Source = f, Target = f.Replace(path, "") }) .ToList(); builder.PopulateFiles("", files); builder.Populate(metadata); string packageFile = Path.Combine(packagePath, builder.GetFullName()) + ".nupkg"; using(FileStream stream = File.Open(packageFile, FileMode.OpenOrCreate)) { builder.Save(stream); }
- 1. Crear Nuget paquete con múltiples archivos DLL
- 2. Prueba de un paquete NuGet
- 3. Crear un paquete NuGet que muestre notificaciones de actualización
- 4. Crear paquete nuget para una solución con múltiples proyectos
- 5. Mostrar las dependencias de un paquete NuGet
- 6. NuGet no muestra ningún paquete
- 7. Cómo publicar Nuget paquete de versión preliminar
- 8. Cómo quitar el paquete NuGet del servidor?
- 9. ¿Cómo debo crear o cargar un paquete NuGet de 32 y 64 bits?
- 10. Paquete Nuget Clean Eliminar/Instalar
- 11. NuGet: comando de paquete no está incluyendo dependencias NuGet
- 12. Cómo crear un paquete de despliegue web solo usando TFS
- 13. ¿Cómo instalar JSON.NET usando NuGet?
- 14. Implementando StyleCop MSBUILD del paquete NuGet
- 15. Agregando un paso de compilación personalizado con un paquete nuget
- 16. Hace referencia a MSBuildTasks del paquete Nuget
- 17. Obtener carpeta del paquete NuGet en MSBuild
- 18. paquete NuGet dll's + content files = failed?
- 19. paquete NuGet para ASP.NET MVC 3
- 20. Agregue el paquete NuGet sin sus dependencias
- 21. Agregar elementos de nivel de solución en un paquete NuGet
- 22. TeamCity - ¿Cómo crear un paquete de instalador?
- 23. Dependencias locales del paquete NuGet: ¿se resuelve de la fuente oficial de Nuget?
- 24. Crear un paquete clickonce webdeploy
- 25. Crear paquete NuGet que instala referencias con Copy Local establecido en falso
- 26. ¿Cómo puede un paquete NuGet incluir transformaciones para app.config y web.config?
- 27. ¿Puedo copiar la configuración del paquete nuget de un proyecto a otro?
- 28. Team Foundation Server 2010 y la carpeta del paquete NuGet
- 29. Desinstalar un paquete usando Chef
- 30. ¿Cómo crear un paquete de idioma personalizado para Android?
Al parecer la única documentación es [una entrada en el blog] (http://blog.nuget.org/20130520/Play-with-packages.html). Eso no es adecuado para las personas que intentan usar la biblioteca. –
Solicitud cortés de documentación https://github.com/NuGet/Home/issues/2425 –