Grupo de Arquitectura de Software Português


Welcome to GASP Sign in | Join | Help

Assembly Versioning

  •  09-18-2007, 16:09

    Assembly Versioning

    Camaradas:

    Gostava de colocar à discussão este tema.

    Num projecto em que tenho trabalhado, até ao momento, optamos (por simplificação) por definir as versões das nossas assemblies estaticamente 1.0.0.0.0. Se me recordo correctamente, o VS 2005 sugere isto por defeito por oposição às versões anteriores que sugeriam um versionamento do tipo 1.0.*.*.

    A questão que se coloca agora é que temos tido algumas dificuldades porque na realidade acabamos por ter várias builds diferentes em que as assemblies têm versões iguais.

    Analisando esta questão, surgem-me várias dúvidas sobre as quais gostaria de ouvir as vossas opiniões/experiências:

    • Assumindo um esquema incremental de versionamento, o que preferem? Versões incrementais (tipo 1.0.0.1, 1.0.0.2, etc.) ou versões baseadas na data da build (1.0.70101.1, 1.0.70101.2, 1.0.70102.1, etc.)?
    • Como tratar esta questão no processo de builds do TSF (msbuild)?
    • Automatizando o versionamento nas builds, como tratar a questão do source control?
    • E as dependências entre projectos (quer a nível de referências como a nível de ficheiros de configuração que referem assemblies directamente com o número da versão)? Isto vai ligar de certo com um esquema de binding redirect mais ou menos complexo.

    Um dos aspectos cruciais é que a equipa de desenvolvimento não deveria ter nenhuma intervenção no processo (daí a automatização no processo de build) mas também não deve ter que pagar nenhum custo por este processo existir (exemplo: ter cuidados adicionais para ir buscar as versões correctas de determinados projectos ou ficheiros).

    Pessoalmente, pensei até agora que poderiamos viver bem com uma versão estática. E também não fui capaz de encontrar documentação de referência sobre este assunto que vá para além de explicar o versionamento do .NET ou custom tasks para o msbuild (que só resolvem parte do problema).

    Será que estou a ver esta questão da maneira errada ou deveria existir já trabalho de referência público sobre esta matéria?

    Agradeço os vossos comentários.
     

     


    ---
    Hugo Ribeiro
View Complete Thread
Powered by Community Server (Personal Edition), by Telligent Systems