2012-05-22 13 views
6

Sto provando a creare/spingere il pacchetto nuget attraverso il processo di costruzione di Visual Studio come spiegato here.Access Version from AssemblyInfo in MSBuild

pacchetto Building è facile:

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

vedo file di .nupkg nella cartella $ (Deploy).

Ma per essere in grado di spingere, ho bisogno di $ (AssemblyVersion) per utilizzarlo in:

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

ho cercato XMLRead per recuperare il valore, ma il valore in NugetSpecFile è "$ version $" invece di versione da AssemblyInfo.cs.

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

Come si accede versione così ho potuto usarlo in "push NuGet"?

risposta

11

Questo lo farò:

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

Alterato da qui: MSBuild Task to read version of dll