2012-03-01 21 views
7

Estoy intentando crear un paquete Nuget de mi proyecto siguiendo esta guía http://docs.nuget.org/docs/creating-packages/creating-and-publishing-a-packageNuget packages.config y la versión específica

He creado con éxito un nuspec y nupkg. Mi proyecto contiene una dependencia de Json.NET que instalé a través de Nuget. Sin embargo, quiero especificar una versión específica de Json.NET para usar, versión 4.0.7. He añadido el siguiente a mi nuspec:

<dependencies> 
    <dependency id="Newtonsoft.Json" version="[4.0.7]" /> 
</dependencies> 

Cuando corro nuget pack parece detectar Tengo un packages.config

Using 'MyProject.nuspec' for metadata. 
Found packages.config. Using packages listed as dependencies. 

Esto parece ignorar por completo mi dependencia se define en la nuspec como la instalación de la El paquete Nuget enumera las dependencias como> = 4.0.7, que extrae la última versión 4.0.8.

¿Cómo puedo detener esto o, preferiblemente, mantener Nuget tirando de las dependencias de los packages.config pero me permite sobrescribir dependencias específicas?

Respuesta

18

Me sale el mismo problema. Es necesario definir una versión exacta como esto

<dependencies> 
<dependency id="Newtonsoft.Json" version="[4.0.7,4.0.7]" /> 
</dependencies> 

Así que asegurará cuando el proyecto tira en las dependencias será = 4.0.7 no> = 4.0.7

+1

Si bien [4.0.7,4.0.7] obviamente también funcionará, [4.0.7] * debería * funcionar. Si no es así, hay un error. Funcionó para mí, pero no sé exactamente lo que estabas haciendo. Por favor, [informe un error] (http://nuget.codeplex.com/WorkItem/Create) con exactamente lo que hizo, para que podamos solucionarlo. ¡Gracias! –

3

La forma en que se especifica la versión es correcto; como se muestra en nuestro versioning docs, [1.0] significa 'versión == 1.0'. El comportamiento que describes sería un error, pero no pude reproducir el error. Lo que hice:

  • Creada una biblioteca de clases
  • Agregado Json.NET través NuGet (instalado 4.0.8)
  • Exec'd nuget spec
  • Agregado <dependencies><dependency id="Newtonsoft.Json" version="[4.0.7]" /> a la .nuspec
  • Exec 'nuget pack
  • Abrió el paquete en Package Explorer; muestra la dependencia como '= 4.0.7'
  • Instalé mi paquete en un nuevo proyecto; que muestra la dependencia como '= 4.0.7' e instala 4.0.7

screen capture screen capture 2

Tal vez usted no está utilizando la versión más reciente de nuget.exe o la extensión de Visual Studio NuGet? Cuando dices "enumera la dependencia", ¿dónde lo ves? ¿Cuándo está instalado su paquete, en Package Explorer o en otro lugar?

Cuestiones relacionadas