从MSBuild中的AssemblyInfo访问版本

NiT*_*TiN 10 msbuild assemblyinfo nuget-package

我想创建/通过Visual Studio生成过程中推动NuGet包的解释在这里.

建筑包很容易:

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

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

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

<Exec Command="$(NuGetApp) push $(ProjectName)$(AssemblyVersion) -s $(NugetServer) $(NugetKey)" />
Run Code Online (Sandbox Code Playgroud)

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

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

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

Jam*_*den 16

我会这样做的:

<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>
Run Code Online (Sandbox Code Playgroud)

从这里改变: MSBuild任务读取DLL的版本