10

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

构建包很容易:

<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”中使用它?

4

1 回答 1

17

这个我会做的:

<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

于 2012-05-23T08:41:33.190 回答