Acesse a versão do AssemblyInfo no MSBuild
-
13-12-2019 - |
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"?
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