Existe-t-il un moyen de créer un package NuGet à l'aide de code compilé en mode version? Ou y a-t-il une raison pour laquelle je ne devrais publier (rendre disponible localement, dans ce cas) que des packages compilés en mode débogage?
Chaque fois que j'appelle nuget pack
depuis mon répertoire de projet, où j'ai le fichier nuspec ci-dessous, sur du code que je n'ai compilé qu'en mode release, il se plaint de ne pas trouver la DLL dans le dossier de débogage ( "\bin\Debug\SomeProject.dll"
). Si je le compile en mode débogage, ces fichiers sont là et il les emballe comme il se doit.
<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>$id$</id>
<version>$version$</version>
<authors>$author$</authors>
<owners>$author$</owners>
<iconUrl>http://somewhere/project.png</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>$description$</description>
</metadata>
</package>
nuget pack
appels futurs , modifiez le fichier XML du fichier de projet dans votre éditeur de texte préféré.<file src="bin\Release\*.pdb" target="lib\net40\" />
), soit publier un package de symboles à côté de votre package DLL.Si vous utilisez un événement post-build et que vous souhaitez créer un package que vous utilisiez la configuration Debug ou Release, vous pouvez configurer la ligne de commande de l'événement post-build comme suit:
la source
Pour que NuGet utilise automatiquement le mode Release lorsque vous exécutez
nuget pack
, procédez comme suit:.csproj
fichier dans un éditeur de texte.Trouvez la ligne suivante:
Debug
parRelease
.la source
Les réponses ici sont bonnes, mais j'avais beaucoup de problèmes avec cela pour un projet .NET Standard. J'avais un projet qui n'allait publier que des binaires Release, mais il ne respectait pas mon chemin de sortie de construction par défaut.
J'ai ajouté ceci à mon CSProj qui m'a ensuite permis d'utiliser la réponse acceptée ici .
la source