web-dev-qa-db-fra.com

Inclure les fichiers pdb dans mes fichiers nuget (nupkg)

J'utilise MSBuild pour générer mes paquets Nuget.

Y a-t-il une commande que je dois définir, pour lui permettre d'inclure mes fichiers .pdb, pour entrer dans la source lors du débogage?

Je ne veux pas que les fichiers source soient inclus dans le projet qui extrait le paquet Nuget.

23
monstertjie_za

Bien que cela puisse aider au débogage, il est certainement utile d’inclure des fichiers .pdb afin que les traces de pile aient des numéros de ligne.

Dans le fichier nuspec, incluez un élément <files> (enfant de <package>, frère de <metadata>). Voici ce que j'ai dans l'une de mes bibliothèques de classes:

<files>
    <file src="bin\$configuration$\$id$.pdb" target="lib\net452\" />
</files>

Assurez-vous que la cible est le même dossier que celui où votre fichier .dll est placé dans le package.

22
Jeff Shepler

Si vous utilisez VS2017 15.4 ou version ultérieure, vous pouvez définir une propriété MSBuild dans votre fichier de projet.

<AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>

Ceci est discuté dans NuGet # 4142

13
Paul Hatcher

Reportez-vous à ce lien . En fait, vous devriez ajouter -Symbols à la fin de la commande pour créer un paquet de symboles. Vous ne devriez pas ajouter de fichiers pdb au paquet de nuget principal.

2
Milad

Avec le nouveau format csproj, il est plus facile de créer NuGet avec MSBuild . Pour inclure vos fichiers pdb, il vous suffit de saisir la balise <IncludeSymbols>true</IncludeSymbols> dans un groupe de propriétés ..__, ce qui créera un paquet .symbols.nupkg supplémentaire peut libérer à votre flux.

0
iosi G