Creazione di pacchetti di simboli legacy (.symbols.nupkg)
Importante
Il nuovo formato consigliato per i pacchetti di simboli è l'estensione snupkg. Vedere Creazione di pacchetti di simboli (estensione snupkg).
.symbols.nupkg è ancora supportato, ma solo per motivi di compatibilità.
Oltre a creare pacchetti per nuget.org o altre origini, NuGet supporta anche la creazione di pacchetti di simboli associati che possono essere pubblicati nei server di simboli.
Creazione di un pacchetto di simboli legacy
Per creare un pacchetto di simboli legacy, seguire queste convenzioni:
- Assegnare al pacchetto principale (con il codice) il nome
{identifier}.nupkg
e includere tutti i file tranne i file.pdb
. - Denominare il pacchetto
{identifier}.symbols.nupkg
di simboli legacy e includere la DLL dell'assembly,.pdb
i file XMLDOC, i file di origine (vedere le sezioni seguenti).
È possibile creare entrambi i pacchetti con l'opzione -Symbols
, da un file .nuspec
o da un file di progetto:
nuget pack MyPackage.nuspec -Symbols
nuget pack MyProject.csproj -Symbols
Si noti che pack
richiede Mono 4.4.2 su Mac OS X e non funziona nei sistemi Linux. In un Mac è anche necessario convertire i nomi di percorso di Windows nel file .nuspec
in percorsi di tipo Unix.
Struttura del pacchetto di simboli legacy
Un pacchetto di simboli legacy può avere come destinazione più framework di destinazione nello stesso modo in cui fa un pacchetto di libreria, quindi la struttura della cartella deve essere esattamente la stessa del lib
pacchetto primario, inclusi .pdb
solo i file insieme alla DLL.
Ad esempio, un pacchetto di simboli legacy destinato a .NET 4.0 e Silverlight 4 avrà questo layout:
\lib
\net40
\MyAssembly.dll
\MyAssembly.pdb
\sl40
\MyAssembly.dll
\MyAssembly.pdb
I file di origine vengono quindi inseriti in una speciale cartella separata denominata src
, che deve seguire la relativa struttura del repository di origine. Ciò è dovuto al fatto che i file PDB contengono i percorsi assoluti dei file di origine usati per compilare la DLL corrispondente e devono essere rilevati durante il processo di pubblicazione. Un percorso di base (prefisso di percorso comune) può essere rimosso. Si consideri, ad esempio, una libreria compilata da questi file:
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)
Oltre alla lib
cartella, un pacchetto di simboli legacy deve contenere questo layout:
\src
\Common
\MyClass.cs
\Full
\Properties
\AssemblyInfo.cs
\Silverlight
\Properties
\AssemblyInfo.cs
\MySilverlightExtensions.cs
Riferimento ai file nel file nuspec
Un pacchetto di simboli legacy può essere compilato in base alle convenzioni, da una struttura di cartelle come descritto nella sezione precedente o specificandone il files
contenuto nella sezione del manifesto. Ad esempio, per compilare il pacchetto mostrato nella sezione precedente, usare il codice seguente nel file .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>
Vedi anche
- Creazione di pacchetti di simboli (.snupkg): nuovo formato consigliato per i pacchetti di simboli