Usando o AssemblyInfo para atualizar automaticamente vários arquivos de AssemblyInfo.cs
-
02-07-2019 - |
Pergunta
Eu tenho vários arquivos de AssemblyInfo.cs como parte de muitos projetos em uma única solução que estou construindo automaticamente como parte do TeamCity.
Para tornar o script msbuild mais sustentável, eu gostaria de poder usar a tarefa da comunidade AssemblyInfo em conjunto com um grupo de item, por exemplo,
<ItemGroup>
<AllAssemblyInfos Include="..\**\AssemblyInfo.cs" />
</ItemGroup>
<AssemblyInfo AssemblyTitle="" AssemblyProduct="$(Product)" AssemblyCompany="$(Company)" AssemblyCopyright="$(Copyright)"
ComVisible="false" CLSCompliant="false" CodeLanguage="CS" AssemblyDescription="$(Revision)$(BranchName)"
AssemblyVersion="$(FullVersion)" AssemblyFileVersion="$(FullVersion)" OutputFile="@(AllAssemblyInfos)" />
O que não funciona flagrantemente porque o OputFile não pode ser um grupo de item referenciado.
Alguém sabe como fazer isso funcionar?
Solução
Tente alterar o @ para um % como abaixo
<ItemGroup>
<AllAssemblyInfos Include="..\**\AssemblyInfo.cs" />
</ItemGroup>
<AssemblyInfo AssemblyTitle="" AssemblyProduct="$(Product)" AssemblyCompany="$(Company)" AssemblyCopyright="$(Copyright)"
ComVisible="false" CLSCompliant="false" CodeLanguage="CS" AssemblyDescription="$(Revision)$(BranchName)"
AssemblyVersion="$(FullVersion)" AssemblyFileVersion="$(FullVersion)" OutputFile="%(AllAssemblyInfos)" />
Isso cria uma chamada para todas as entradas no ALLASSEMBLYIRINFOS.
Dê uma olhada neste artigo também, deve ajudar.
Outras dicas
Usamos arquivos "vinculados" no projeto. Solution Explorer -> Adicionar item existente -> .. Select_file .. -> Arrow_on_Left_of_add_button -> Adicionar como link
Em seguida, o arquivo selecionado (AssemblyInfo.cs por enquanto) não é copiado para a direção do projeto, o BUD está ligado apenas do caminho especificado.