Delen via


Verouderde symboolpakketten (.symbols.nupkg) maken

Belangrijk

De nieuwe aanbevolen indeling voor symboolpakketten is .snupkg. Zie Symbolenpakketten maken (.snupkg).
.symbols.nupkg wordt nog steeds ondersteund, maar alleen om compatibiliteitsredenen.

Naast het bouwen van pakketten voor nuget.org of andere bronnen, biedt NuGet ook ondersteuning voor het maken van gekoppelde symboolpakketten die kunnen worden gepubliceerd op symboolservers.

Een verouderd symboolpakket maken

Voor het maken van een legacy symboolpakket, volg deze conventies:

  • Geef het primaire pakket een naam (met uw code) {identifier}.nupkg en neem al uw bestanden op, behalve .pdb bestanden.
  • Geef het oude symboolpakket {identifier}.symbols.nupkg een naam en voeg uw assembly-DLL, .pdb bestanden, XMLDOC-bestanden, bronbestanden toe (zie de volgende secties).

U kunt beide pakketten maken met de -Symbols optie, hetzij vanuit een .nuspec bestand of een projectbestand:

nuget pack MyPackage.nuspec -Symbols

nuget pack MyProject.csproj -Symbols

Houd er rekening mee dat pack Mono 4.4.2 is vereist op Mac OS X en niet werkt op Linux-systemen. Op een Mac moet u ook Windows-padnamen in het .nuspec bestand converteren naar Unix-stijlpaden.

Verouderde symboolpakketstructuur

Een verouderd symboolpakket kan zich op dezelfde manier richten op meerdere doelframeworks als een bibliotheekpakket, dus de structuur van de lib map moet exact hetzelfde zijn als het primaire pakket, alleen inclusief .pdb bestanden naast het DLL-bestand.

Een verouderd symboolpakket dat is gericht op .NET 4.0 en Silverlight 4, heeft bijvoorbeeld deze indeling:

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

Bronbestanden worden vervolgens in een afzonderlijke speciale map met de naam srcgeplaatst, die de relatieve structuur van uw bronopslagplaats moet volgen. Dit komt doordat PDF-bestanden absolute paden bevatten naar bronbestanden die worden gebruikt om het overeenkomende DLL-bestand te compileren en ze moeten worden gevonden tijdens het publicatieproces. Een basispad (gemeenschappelijk padvoorvoegsel) kan worden verwijderd. Denk bijvoorbeeld aan een bibliotheek die is gebouwd op basis van deze bestanden:

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)

Naast de lib map moet een verouderd symboolpakket deze indeling bevatten:

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

Verwijzen naar bestanden in de nuspec

Een verouderd symboolpakket kan worden gebouwd op basis van conventies, vanuit een mapstructuur zoals beschreven in de vorige sectie, of door de inhoud ervan op te geven in de files sectie van het manifest. Als u bijvoorbeeld het pakket wilt bouwen dat wordt weergegeven in de vorige sectie, gebruikt u het volgende in het .nuspec bestand:

<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>

Zie ook