Pergunta

Estou tentando criar/enviar o pacote nuget por meio do processo de construção do Visual Studio, conforme explicado aqui.

Construir pacote é fácil:

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

Vejo o arquivo .nupkg na pasta $(Deploy).

Mas para poder pressioná-lo, preciso de $(AssemblyVersion) para usá-lo em:

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

Tentei XMLRead para buscar o valor, mas o valor em NugetSpecFile é "$version$" em vez da versão de AssemblyInfo.cs.

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

Como faço para acessar a versão para poder utilizá-la no "nuget push"?

Foi útil?

Solução

Isso eu farei:

<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>

Alterado daqui:Tarefa MSBuild para ler a versão da dll

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top