从 MSBuild 中的 AssemblyInfo 访问版本



我正在尝试通过Visual Studio build过程创建/推送nuget包,如此处所述。

构建包很简单:

<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中的值是"$version$"而不是AssemblyInfo.cs的版本。

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

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

我会这样做:

<PropertyGroup>
    <MyAssemblies>somedllthe.dll</MyAssemblies>
  </PropertyGroup>
 <Target Name="RetrieveIdentities">
    <GetAssemblyIdentity
        AssemblyFiles="$(MyAssemblies)">
      <Output
          TaskParameter="Assemblies"
          ItemName="MyAssemblyIdentities"/>
    </GetAssemblyIdentity>
    <Message Text="Files: %(MyAssemblyIdentities.Version)"/>
  </Target>

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

最新更新