Criando pacotes de símbolos herdados (.symbols.nupkg)
Importante
O novo formato recomendado para pacotes de símbolos é .snupkg. Veja Criando pacotes de símbolos (.snupkg).
.symbols.nupkg ainda é compatível, mas exclusivamente por razões de compatibilidade.
Além de compilar pacotes para nuget.org ou outras origens, o NuGet também oferece suporte à criação de pacotes de símbolos associados que podem ser publicados em servidores de símbolos.
Criando um pacote de símbolos herdado
Para criar um pacote de símbolos herdado, siga estas convenções:
- Nomeie o pacote primário (com o seu código)
{identifier}.nupkg
e inclua todos os arquivos, exceto os arquivos.pdb
. - Nomeie o pacote de símbolos herdado como
{identifier}.symbols.nupkg
e inclua sua DLL de assembly, arquivos.pdb
, arquivos XMLDOC, arquivos de origem (consulte as seções a seguir).
Você pode criar pacotes com a opção -Symbols
de um arquivo .nuspec
ou um arquivo de projeto:
nuget pack MyPackage.nuspec -Symbols
nuget pack MyProject.csproj -Symbols
Observe que pack
requer o Mono 4.4.2 no Mac OS X e não funciona em sistemas Linux. Em um Mac, você também precisa converter os nomes de caminho do Windows no arquivo .nuspec
em caminhos no estilo Unix.
Estrutura do pacote de símbolos herdado
Um pacote de símbolos herdado pode ser direcionado a várias estruturas de destino da mesma maneira que um pacote de biblioteca, portanto, a estrutura da pasta lib
deve ser exatamente a mesma que o pacote primário, incluindo somente arquivos .pdb
junto com a DLL.
Por exemplo, um pacote de símbolos herdado voltado para o .NET 4.0 e o Silverlight 4 teria este layout:
\lib
\net40
\MyAssembly.dll
\MyAssembly.pdb
\sl40
\MyAssembly.dll
\MyAssembly.pdb
Arquivos de origem são, então, colocados em uma pasta especial separada chamada src
, que precisa seguir a estrutura relativa do repositório de origem. Isso ocorre porque PDBs contêm caminhos absolutos para arquivos de origem usados para compilar a DLL correspondente e eles precisam ser encontrados durante o processo de publicação. Um caminho base (prefixo de caminho comum) pode ser removido. Por exemplo, considere uma biblioteca criada a partir destes arquivos:
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)
Além da pasta lib
, um pacote de símbolos herdado precisaria conter este layout:
\src
\Common
\MyClass.cs
\Full
\Properties
\AssemblyInfo.cs
\Silverlight
\Properties
\AssemblyInfo.cs
\MySilverlightExtensions.cs
Fazendo referência a arquivos no nuspec
Um pacote de símbolos herdado pode ser compilado por convenções, de uma estrutura de pasta conforme descrito na seção anterior ou especificando o conteúdo na seção files
do manifesto. Por exemplo, para compilar o pacote mostrado na seção anterior, use o seguinte no arquivo .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>
Confira também
- Criando pacotes de símbolos (.snupkg): o novo formato recomendado para pacotes de símbolos