Demonstrações de versionamento
Exemplos de maneiras de versionar projetos do .NET Core com e sem implantação contínua (CD)
Se você clonar este site e executá-lo localmente nos modos Debug e Release, verá resultados diferentes. Você pode visitar uma versão ao vivo em https://versioningdemos.azurewebsites.net/ que passou pelo meu Git e VSTS para gerar as informações da versão.
Você notará que a Microsoft tem diferentes estratégias de controle de versão dentro de suas próprias bibliotecas .Net, provavelmente não das mesmas equipes.
Existem 3 versões geralmente referenciadas em um assembly do .NET Core
- Versão do arquivo - é usado para ver qual DLL é posterior.
- Possui o padrão xybr geralmente considerado Major.Minor.Build.Revision
- Versão do produto - também conhecida como InformationalVersion na montagem. Esta é uma versão de texto de formato livre usada para fins descritivos.
- Atualmente o formato disto tende a seguir o padrão de Versionamento Semântico (apresentado pelo GitHub)
- xyp-buildinfo Major.Minor.Patch[-metadados]
- Você pode ler mais em semver.org
- Versão da montagem - a versão da montagem
O método normal que você vê para recuperar informações de versão funciona apenas para alguns casos de uso e desmorona quando colocado em uma biblioteca.
Projetos de amostra de versão
Todos esses projetos usam os arquivos .vbproj (também podem ser .csproj) em vez das técnicas anteriores que usavam AssemblyInfo.cs ou project.json
Nada definido – Padrão
Definir um valor - Manual
Usando a UI do Visual Studio (Propriedades/Pacote do Projeto)
- Mesmo se você não usar isso para definir as informações, os valores calculados serão exibidos
- Tenha cuidado para não substituir acidentalmente valores calculados em outro lugar
- Editando
.csproj
Configurando todos os valores - Manual.AllDifferent
- Usando a interface do Visual Studio
- Editando
.csproj
Basta usar VersionPrefix - VersionPrefix
Sufixo de versão - Sufixo de versão
BuildRevision - BuildRevision
- replicar curingas de construção e revisão implementando a lógica de padrão de versão de roslyn
- Usa cálculos no arquivo csproj
BuildDateTime - BuildDateTime
- usou x.YYYY.MDD.HHMM para criar valores automatizados
Compilação do Visual Studio Team Services – VSTS
- Adicionar BUILDNUMBER configurado do VSTS ao VersionSuffix
Visual Studio Team Services compilado com ramificação Git - VSTS.WithGit
- Adicione o branch Git ao sufixo da versão também
Ajudantes de tags
Ao usar Taghelpers, existem várias dicas.
- As páginas acabam sendo colocadas em montagens diferentes do que você imagina
- Executar em Debug ou Release pode fornecer valores diferentes e assemblies criados
- Colocar um TagHelper em uma biblioteca externa altera o resultado da montagem em execução atual