msbuild - 从MSBuild中的AssemblyInfo访问版本

标签 msbuild nuget-package assemblyinfo

我正在尝试通过Visual Studio的构建过程来创建/推送nuget包,如here所述。

建立包装很简单:

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

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

但是为了能够推送它,我需要$(AssemblyVersion)才能在其中使用它:
<Exec Command="$(NuGetApp) push $(ProjectName)$(AssemblyVersion) -s $(NugetServer) $(NugetKey)" />

我尝试使用XMLRead来获取值,但是NugetSpecFile中的值为“$ version $”,而不是AssemblyInfo.cs的版本。
<XmlRead XPath="/package/metadata/version" XmlFileName="$(NuSpecFile)">
      <Output TaskParameter="Value" PropertyName="AssemblyVersion" />
    </XmlRead>

如何访问版本,以便可以在“nuget push”中使用它?

最佳答案

我会做的:

<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

关于msbuild - 从MSBuild中的AssemblyInfo访问版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10709677/

相关文章:

msbuild - 运行 MSBuild.exe 时文件记录器的可用参数有哪些?

msbuild - 如何使用 msbuild 下载文件?

azure - 使用云配置(Service Definition.csdef)文件的配置创建 Nuget 包

.net - 使用GeneratePathProperty将另一个包中的程序集包含到我的NuGet包中

c# - C# 中的 ProductName 和 CompanyName

c# - 从 AssemblyInfo.cs 获取程序集版本

MSBuild 任务静默执行

TFS 2010/Msbuild 失败,StackOverFlowException

c# - WindowsAzure.Storage,版本=9.3.0.0 - 异常无法加载文件或程序集

c# - AssemblyInfo 内部版本号未更新