Como especificar o local do arquivo de solução para arquivos de informações de assembly de controle de versão no MSBUILD

StackOverflow https://stackoverflow.com//questions/25075651

Pergunta

Estou mexendo nisso há um dia, mas sem sorte.O versionamento do assembly com MSBUILD funcionava antes, mas recentemente movemos os arquivos da solução para uma pasta separada dentro da raiz do projeto e, desde então, o versionamento não tem funcionado.

Abaixo está a estrutura do projeto

Pasta de código

-> Pasta ProjetoA

-> pasta ProjetoB

-> pasta ProjetoC

-> Pasta de soluções

*Anteriormente, os arquivos Solutions (.sln) estavam na pasta Code.

Quando executamos o MSBuild recebo o aviso abaixo.

Nenhum arquivo de informações de montagem foi fornecido

Abaixo está uma versão reduzida do log de construção.

Excluir espaço de trabalho

00:00 Excluir diretório de fontes

00:00 Criar espaço de trabalho

01:14 Obtenha espaço de trabalho

00:00 Versionamento de montagens

00:00 AssemblyVersion and AssemblyFileVersion Assembly Version Processando:Usando padrões de número de versão incluídos na definição de build

00:00 Defina todos os valores da propriedade Assembly (b) Assembléias de versão com os seguintes padrões:AssemblyVersion (1.0.0.0) e AssemblyFileVersion (AAA YYYY.MM.DD.B) Nenhum arquivo de informação de montagem foi fornecido

Abaixo está a tarefa do MSBuild que produz o log acima.

  <local:VersionAssemblyInfoFiles 
    AssemblyFileVersionPattern="[AssemblyFileVersionPattern]" 
    AssemblyInfoFilePattern=" AssemblyInfoFilePattern]" 
    AssemblyVersionPattern="[AssemblyVersionPattern]" 
    BuildDirectory="[BuildDirectory]" BuildNumberPrefix=" 
   [BuildNumberPrefix]" BuildSettings="[BuildSettings]" 
    DisplayName="Versioning Assemblies" 
    DoCheckinAssemblyInfoFiles="[DoCheckinAssemblyInfoFiles]" 
    ForceCreateVersion="[ForceCreateVersion]" 
    sap:VirtualizedContainerService.HintSize="200,22" 
    mva:VisualBasic.Settings="Assembly references and imported namespaces 
   serialized as XML namespaces" UseVersionSeedFile="[UseVersionSeedFile]" 
   VersionSeedFilePath="[VersionSeedFilePath]" Workspace="[Workspace]" 
   xmlns:local="clr-namespace:TfsBuild.Versioning.Activities;
   assembly=TfsBuild.Versioning.Activities">

      <sap:WorkflowViewStateService.ViewState>
        <scg:Dictionary x:TypeArguments="x:String, x:Object">
          <x:Boolean x:Key="ShouldCollapseAll">False</x:Boolean>
          <x:Boolean x:Key="ShouldExpandAll">True</x:Boolean>
        </scg:Dictionary>
      </sap:WorkflowViewStateService.ViewState>
 </local:VersionAssemblyInfoFiles>

Eu também olhei para a solução sugerida aqui mas não tive sorte.Alguém pode me indicar a direção certa?Não sou especialista em MSBuild.

Desde já, obrigado.

Foi útil?

Solução

Acabei fazendo a seguinte solução alternativa.Não temos a opção de mover todas as soluções para o nível Raiz do projeto.

a.Crie uma nova solução, ou seja, SomeApp.lib.versioning.Sln Esta solução viveria sob a pasta raiz e é usada apenas para verificar o restante dos projetos.

b.O projeto (.csproj) para SomeApp.Lib.Versioning.sln ficaria no mesmo nível que o restante dos projetos.

Então a nova estrutura é

Pasta de código

-> Pasta ProjetoA

-> pasta ProjetoB

-> pasta ProjetoC

-> Pasta de soluções

-> SomeApp.Lib.Versioning.sln

-> Pasta SomeApp.Lib.Versioning

c.Agora faço referência ao SomeApp.Lib.Versioning.proj de uma das soluções na pasta Soluções.Isso significa que SomeApp.Lib.Versioning.proj tem duas soluções anexadas para acertar.

d.O projeto que exibe a versão de construção usaria o tipo, ou seja, arquivo de classe de SomeApp.Lib.Versioning.proj

De acordo com o versionamento de compilação padrão, SomeApp.Lib.Versioning.proj teria a versão de compilação correta (SomeApp.Lib.Versioning.sln está no nível raiz)

Observações:Esta é apenas uma solução alternativa e não uma solução ideal.Isso não criará versões de todos os assemblies do projeto.Por exemplo, se quisermos saber qual assembly foi construído em qual versão, isso não vai funcionar.É apenas um espaço reservado para obter a versão de construção da solução.

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