Pergunta

Eu tenho um projeto VS2008 escrito em C # com um número de conjuntos. Eu gostaria de ter uma maneira simples de gerenciar os números de versão entre todas as diferentes montagens e uma maneira de incrementar automaticamente o número de compilação e têm que salvou para o número da versão de cada conjunto.

Eu estou supondo que este é um problema com a maioria dos projectos então, presumivelmente, ter sido resolvido antes?

Todas as sugestões para como posso simplificar o gerenciamento de recursos de versão do meu projeto?

Foi útil?

Solução

Eu uso um arquivo .cs no nível da solução que está ligada por todos os projetos na solução que contém as seguintes linhas:

using System.Reflection;
[assembly : AssemblyVersion("1.2.3.*")]

E certifique-se de remover o atributo AssemblyFileVersion do arquivo AssemblyInfo em seu projeto.

Outras dicas

Coloque um arquivo para a solução, chamam isso de "SolutionInfo.cs" (estou assumindo C #, também trabalho em VB). Neste colocar todas as propriedades que têm em comum. Comece com AssemblyVersionAttribute.

Então, em cada projeto link para isso selecionando item existente add para cada projeto, mas ao invés de clicar em Adicionar, use o menu suspenso para adicionar como link.

Temos um único arquivo AssemblyInfoGlobal.cs a nível solução, como as outras respostas. Então nós temos como parte do nosso script de construção de um pequeno aplicativo que leva o CCNetLabel que CruiseControl.net define (e usando o defaultLabeller para gerar as etiquetas) e check-out o arquivo global, modificar o número da versão e, em seguida, verificar a parte traseira arquivo global em .

Alguns de nossos projetos têm múltiplas soluções, para que o arquivo global, fica acima do nível da solução na estrutura de diretórios, alto o suficiente para que tudo o que precisa é abaixo dela.

Também, em seguida, atualizar os números de versão projetos de implantação - o número para estes é encontrado dentro do arquivo VDProj, mas eu não tenho certeza que você vai encontrá-los nas versões expresso - Eu acho que é recurso de um profissional completo para cima. E alguns projetos têm projetos de implantação de uma dúzia, mas não há maneira fácil de externalizar o numberf versão do arquivo VDPROJ si. (Ou há?)

Em seguida, a construção acontece o que significa que todas as saídas da construção têm exatamente o mesmo número de versão, a qualquer momento, podemos obter a versão do MSI ou montagem e sabemos exatamente o que fonte foi usado para construir essa saída.

using System.Reflection; [assembly : AssemblyVersion("1.2.3.*")]

Apenas um comentário sobre isso, os ciclos número da versão gerado automaticamente. Então, se você estiver olhando para ser capaz de versão de tal forma que um ontem compilação tem uma versão 1.2.3.X onde X

Para alcançar este uso

[assembly : AssemblyVersion("1.2.*")]

Isto fará você versão 1.2.X.Y onde a combinação de X.Y é maior hoje do que ontem. Eu estou supondo X.Y são uma função da data e hora, respectivamente

Você pode escrever uma tarefa MSBuild personalizada para fazer isso. Ter um olhar para esta abordagem

Você pode usar asteriscos em seus AssemblyInfo.cs:

// Version information
[assembly: AssemblyVersion( "1.0.*" )]

Ela vai aumentar seus versionnumbers automaticamente. Para compartilhar um número entre todos os conjuntos ... Eu não tenho certeza, mas talvez você usar o atributo mencionado em um arquivo compartilhado.

Eu usei as tarefas svnversion comunidade MSBuild fazer algo parecido isso, eu segui as instruções aqui Embora a maneira que eu faço não abranger várias montagens.

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