nuget

Nuget: empaquetar una solución con múltiples proyectos(enfocándose en múltiples marcos)



(1)

Digamos que tengo la siguiente solución con varias versiones del mismo código, cada una dirigida a un marco diferente y me gustaría generar un paquete nuget a partir de él.

SharedLib.sln SharedLib.Net35.csproj packages.config SharedLib.Net40.csproj packages.config SharedLib.Phone.csproj packages.config SharedLib.SL4.csproj packages.config

El nupkg esperado tiene la siguiente estructura

SharedLib.1.0.nupkg lib/net35/SharedLib.dll lib/net40/SharedLib.dll lib/sl4-wp/SharedLib.dll lib/sl4/SharedLib.dll

nuget.exe pack SharedLib.SL4.csproj determinará automáticamente que el marco de destino es SilverLight4 y colocará los binarios en lib/sl4

Sé que puedo agregar un archivo SharedLib.SL4.nuspec con una sección <file> para incluir archivos binarios de los otros proyectos, pero hay una manera de hacer que nuget coloque automáticamente la salida de la solución combinada en la estructura adecuada (y también detecte dependencias en los paquetes .config de todos los proyectos?


No, actualmente no hay otra forma de hacer esto que no sea escribir un script de compilación personalizado que coloque los archivos en el lugar correcto y luego ejecute el paquete NuGet en ellos, o tomar el enfoque .nuspec que describió.

Esta es una característica que nos gustaría tener, pero no hemos pensado en una buena manera de hacerlo. Sin embargo, tu publicación me acaba de dar una idea.

Hoy, puede apuntar el paquete nuget a un archivo .csproj.

Podríamos considerar un enfoque que le permitiera apuntarlo a un archivo .sln y si los nombres de los proyectos siguen alguna convención, empaquetaríamos todos los proyectos en un solo paquete.

Si realmente desea esta función, considere registrar un problema en el rastreador de problemas de NuGet. http://nuget.codeplex.com/workitem/list/basic