从 MSBuild 中的 AssemblyInfo 访问版本 [英] Access Version from AssemblyInfo in MSBuild

查看:13
本文介绍了从 MSBuild 中的 AssemblyInfo 访问版本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试按照说明通过 Visual Studio 构建过程创建/推送 nuget 包 这里.

I am trying to create/push nuget package through visual studio build process as explained here.

构建包很简单:

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

我在 $(Deploy) 文件夹中看到 .nupkg 文件.

I see .nupkg file in $(Deploy) folder.

但是为了能够推送它,我需要 $(AssemblyVersion) 来使用它:

But to be able to push it, I need $(AssemblyVersion) to use it in :

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

我尝试使用 XMLRead 来获取值,但 NugetSpecFile 中的值是$version$",而不是 AssemblyInfo.cs 中的版本.

I tried XMLRead to fetch the value, but value in NugetSpecFile is "$version$" instead of version from AssemblyInfo.cs.

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

如何访问版本以便在nuget push"中使用它?

How do I access version so I could use it in "nuget push"?

推荐答案

我会这样做:

<PropertyGroup>
    <MyAssemblies>somedll	he.dll</MyAssemblies>
  </PropertyGroup>

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

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

从这里改变:MSBuild 任务以读取 dll 版本

这篇关于从 MSBuild 中的 AssemblyInfo 访问版本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆