2012-05-22 12 views
6

here açıklandığı gibi görsel stüdyo oluşturma işlemiyle nuget paketi oluşturmaya/çalıştırmaya çalışıyorum.MSBuild'deki AssemblyInfo'dan Erişim Sürümü

Bina paketi kolaydır:

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

Ben $ (dağıtma) klasöründe .nupkg dosyasına bakın.

Ama itin edebilmek için, ben bunu kullanmak $ (AssemblyVersion) gerekir: yerine ben değerini almak için XMLRead çalıştı, ama NugetSpecFile değeri "$ sürümü $" dır

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

AssemblyInfo.cs sürümü.

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

Sürümüne nasıl erişebilirim, böylece "nuget push" içinde kullanabilir miyim?

cevap

11

Bu i yapacağım:

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

buradan Değişmiş: MSBuild Task to read version of dll