Existe-t-il un moyen de créer un paquet NuGet en utilisant le code compilé en mode publication? Ou y a-t-il une raison pour laquelle je devrais publier (mettre à disposition localement, dans ce cas) des packages compilés en mode débogage?
Chaque fois que j'appelle nuget pack
à partir du répertoire de mon projet, où se trouve le fichier nuspec ci-dessous, le code que je n'ai compilé qu'en version, me 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 est emballé 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>
Vous pouvez le résoudre comme ceci: NuGet.exe pack Foo.csproj -Prop Configuration=Release
( la référence ).
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 de la manière suivante:
"<path to nuget tools>\NuGet.exe" pack "$(ProjectPath)" -Prop Configuration=$(ConfigurationName)
Pour que NuGet utilise automatiquement le mode de libération lorsque vous exécutez nuget pack
, procédez comme suit:
.csproj
dans un éditeur de texte.Trouvez la ligne suivante:
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
Debug
par Release
.Les réponses ici sont bonnes, mais cela me posait de nombreux problèmes pour un projet .NET Standard. J'avais un projet qui ne faisait que publier des fichiers binaires Release, mais il ne respectait pas le chemin de sortie par défaut de la construction.
J'ai ajouté ceci à mon CSProj, ce qui m'a ensuite permis d'utiliser la réponse acceptée ici .
<PropertyGroup Condition="'$(Configuration)' == 'Release'">
<OutputPath>$(SolutionDir)bin\$(PlatformTarget)\Release</OutputPath>
</PropertyGroup>