2012-05-22 24 views
6

Tôi đang cố gắng tạo/đẩy gói nuget thông qua quá trình xây dựng studio trực quan như được giải thích here.Truy cập Phiên bản từ AssemblyInfo trong MSBuild

xây dựng gói rất dễ dàng:

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

tôi thấy tập tin .nupkg trong $ (Triển khai) thư mục.

Nhưng để có thể đẩy nó, tôi cần $ (AssemblyVersion) để sử dụng nó trong:

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

tôi đã cố gắng XMLRead để lấy giá trị, nhưng giá trị trong NugetSpecFile là "$ phiên bản $" thay vì phiên bản từ AssemblyInfo.cs.

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

Làm cách nào để truy cập phiên bản để tôi có thể sử dụng phiên bản này trong "đẩy đẩy"?

Trả lời

11

này tôi sẽ làm điều đó:

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

Altered từ đây: MSBuild Task to read version of dll

Các vấn đề liên quan