2012-05-22 69 views
6

Estoy intentando crear/insertar paquetes nuget a través del proceso de compilación de Visual Studio como se explica en here.Acceda a la versión desde AssemblyInfo en MSBuild

paquete de construcción es fácil:

<Exec WorkingDirectory="$(ProjectDir)" Command="$(NuGetApp) pack $(ProjectFile) -OutputDirectory $(Deploy) -Verbose -Prop Configuration=Release"/> 

veo .nupkg archivo en la carpeta $ (Deploy).

Pero para poder empujarlo, necesito $ (AssemblyVersion) para utilizarlo en:

<Exec Command="$(NuGetApp) push $(ProjectName)$(AssemblyVersion) -s $(NugetServer) $(NugetKey)" /> 

Probé XMLRead a buscar el valor, pero el valor en NugetSpecFile es "$ versión $" en lugar de versión de AssemblyInfo.cs.

<XmlRead XPath="/package/metadata/version" XmlFileName="$(NuSpecFile)"> 
     <Output TaskParameter="Value" PropertyName="AssemblyVersion" /> 
    </XmlRead> 

¿Cómo accedo a la versión para poder usarla en "nuget push"?

Respuesta

11

Esto lo haré:

<PropertyGroup> 
    <MyAssemblies>somedll\the.dll</MyAssemblies> 
    </PropertyGroup> 

<Target Name="RetrieveIdentities"> 
    <GetAssemblyIdentity 
     AssemblyFiles="$(MyAssemblies)"> 
     <Output 
      TaskParameter="Assemblies" 
      ItemName="MyAssemblyIdentities"/> 
    </GetAssemblyIdentity> 

    <Message Text="Files: %(MyAssemblyIdentities.Version)"/> 
    </Target> 

alterado desde aquí: MSBuild Task to read version of dll

Cuestiones relacionadas