Creación de paquetes de símbolos heredados (.symbols.nupkg)

Importante

El nuevo formato recomendado para paquetes de símbolos es .snupkg. Vea Crear paquetes de símbolos (.snupkg).
.symbols.nupkg todavía se admite, pero solo por motivos de compatibilidad.

Además de crear paquetes para nuget.org u otros orígenes, NuGet también admite la creación de paquetes de símbolos asociados que se pueden publicar en servidores de símbolos.

Crear un paquete de símbolos heredado

Para crear un paquete de símbolos heredado, siga estas convenciones:

  • Asigne al paquete principal (con el código) el nombre {identifier}.nupkg e incluya todos los archivos excepto los archivos .pdb.
  • Asigne al paquete de símbolos heredados el nombre {identifier}.symbols.nupkg e incluya los archivos DLL de ensamblado, los archivos .pdb, los archivos XMLDOC y los archivos de origen (vea las secciones siguientes).

Puede crear ambos paquetes con la opción -Symbols, ya sea desde un archivo .nuspec o desde un archivo de proyecto:

nuget pack MyPackage.nuspec -Symbols

nuget pack MyProject.csproj -Symbols

Tenga en cuenta que pack requiere Mono 4.4.2 en Mac OS X y no funciona en los sistemas Linux. En los equipos Mac, también debe convertir los nombres de las rutas de acceso de Windows del archivo .nuspec a las rutas de acceso de estilo Unix.

Estructura del paquete de símbolos heredado

Un paquete de símbolos heredado puede tener como destino varias plataformas de destino de la misma manera que un paquete de bibliotecas, por lo que la estructura de la carpeta lib debe ser exactamente igual que el paquete principal, incluyendo solo los archivos .pdb junto con los archivos DLL.

Por ejemplo, un paquete de símbolos heredado que tenga como destino .NET 4.0 y Silverlight 4 tendría este diseño:

\lib
    \net40
        \MyAssembly.dll
        \MyAssembly.pdb
    \sl40
        \MyAssembly.dll
        \MyAssembly.pdb

Los archivos de código fuente se colocan en una carpeta especial independiente denominada src, que debe seguir la estructura relativa del repositorio de origen. Esto es así porque los archivos PDB contienen rutas de acceso absolutas a los archivos de código fuente que se usan para compilar los archivos DLL correspondientes y se deben buscar durante el proceso de publicación. Se puede quitar una ruta de acceso base (prefijo de ruta de acceso común). Por ejemplo, considere una biblioteca creada a partir de estos archivos:

C:\Projects
    \MyProject
        \Common
            \MyClass.cs
        \Full
            \Properties
                \AssemblyInfo.cs
            \MyAssembly.csproj (producing \lib\net40\MyAssembly.dll)
        \Silverlight
            \Properties
                \AssemblyInfo.cs
            \MySilverlightExtensions.cs
            \MyAssembly.csproj (producing \lib\sl4\MyAssembly.dll)

Aparte de la carpeta lib, un paquete de símbolos heredado tendría que tener este diseño:

\src
    \Common
        \MyClass.cs
    \Full
        \Properties
            \AssemblyInfo.cs
    \Silverlight
        \Properties
            \AssemblyInfo.cs
        \MySilverlightExtensions.cs

Hacer referencia a los archivos en el archivo nuspec

Se puede crear un paquete de símbolos heredado mediante convenciones a partir de una estructura de carpetas, tal y como se describe en la sección anterior, o especificando su contenido en la sección files del manifiesto. Por ejemplo, para crear el paquete que se muestra en la sección anterior, use lo siguiente en el archivo .nuspec:

<files>
    <file src="Full\bin\Debug\*.dll" target="lib\net40" />
    <file src="Full\bin\Debug\*.pdb" target="lib\net40" />
    <file src="Silverlight\bin\Debug\*.dll" target="lib\sl40" />
    <file src="Silverlight\bin\Debug\*.pdb" target="lib\sl40" />
    <file src="**\*.cs" target="src" />
</files>

Consulte también