2012-05-22 82 views
6

我試圖通過視覺工作室構建過程來創建/推nuget包,如解釋hereMSBuild中的AssemblyInfo的訪問版本

建設一攬子計劃很簡單:

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

我看到$(部署)文件夾.nupkg文件。

但要能推動它,我需要$(的AssemblyVersion)使用它:

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

我試圖XMLRead獲取的價值,但在NugetSpecFile值是「$版本$」,而不是來自AssemblyInfo.cs的版本。

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

如何訪問版本以便我可以在「nuget push」中使用它?

回答

11

這個我會做到這一點:

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

從這裏改變的: MSBuild Task to read version of dll

相關問題