visual studio microsoft cli nuget

studio - Embalaje de proyectos NuGet compilados en modo de lanzamiento?



nuget visual studio 2015 (3)

¿Hay alguna manera de hacer un paquete NuGet usando código compilado en modo de lanzamiento? ¿O hay alguna razón por la que solo debería publicar (poner a disposición localmente, en este caso) paquetes compilados en modo de depuración?

Cada vez que llamo a nuget pack desde mi directorio de proyectos, donde tengo el siguiente archivo nuspec, en el código que solo he compilado en modo de lanzamiento, se queja de que no se encuentra el archivo DLL en la carpeta de depuración ( "/bin/Debug/SomeProject.dll" ). Si lo compilo en modo de depuración, esos archivos están allí y los empaqueta como debería.

<?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>


Para que NuGet use automáticamente el modo Release cuando ejecuta nuget pack , haga lo siguiente:

  1. Abra su archivo .csproj en un editor de texto.
  2. Encuentre la siguiente línea:

    <Configuration Condition=" ''$(Configuration)'' == '''' ">Debug</Configuration>

  3. En esta línea, reemplace Debug con Release .
  4. Guardar cambios.

Puede resolverlo así: NuGet.exe pack Foo.csproj -Prop Configuration=Release ( la referencia ).


Si está utilizando un evento posterior a la construcción y desea crear un paquete, ya sea que utilice la configuración de depuración o liberación, puede configurar la línea de comandos del evento posterior a la compilación de la siguiente manera:

"<path to nuget tools>/NuGet.exe" pack "$(ProjectPath)" -Prop Configuration=$(ConfigurationName)