Pergunta

Nós mantemos um meio de aplicação de janelas porte desenvolvido em vb / c # .net no trabalho. Ainda agora o processo de construir e implantar para este aplicativo é manual. Estou determinado a fazer este processo automatizado usando MSBuild em que eu não tenho conhecimento ainda agora.

Nosso aplicativo tem uma estrutura de construção simples, um conjunto de projectos já agrupados em quatro soluções (.sln) e só precisa construir as quatro SLNs em uma ordem. E, em seguida, publicar um projeto (que faz parte da última sln a ser construído) para um diretório. É isso. Um processo simples que já está consumindo 30 minutos de tempo de compilação manual e eu tenho certeza de que isso pode ser feito sem interferência manual usando msbuild em pelo menos 1/4 th do tempo.

Todos os meus objetivos definir bom, eu comecei a olhar ao redor da web para recursos MSBuild para realizar o meu processo, mas pode estar à procura em torno de muitas coisas me confundiu. Precisa de um ponteiro ou uma boa explicação sobre como começar e por onde começar para o meu cenário simples. Ajuda é muito apreciado.

Foi útil?

Solução

Isso soa como um script muito fácil de escrever. Mesmo um arquivo de lote faria:

msbuild \path\to\first.sln /p:Configuration=Release
msbuild \path\to\second.sln /p:Configuration=Release
msbuild \path\to\third.sln /p:Configuration=Release
msbuild \path\to\fourth.sln /p:Configuration=Release
call deploy

É claro, muito melhor seria ter um servidor em execução, dizem CruiseControl.NET , que dá uma interface web para o status de construção e história.

Em MS Build, existem dois principais pontos de controle para o chamador: O alvo e suas propriedades. O alvo é o de compilar, recursos, compilação, implantação, etc. O controle de propriedades como esse alvo é construído.

Você pode controlar a configuração utilizando o Configuração alojamento (veja acima). Se você abrir seu *. * Arquivos de proj, você vai notar elementos PropertyGroup. Estes são configurável através da linha de comando usando o arg /p.

Aqui estão as especificações para os dois argumentos:

/target:<targets>  Build these targets in this project. Use a semicolon or a
                 comma to separate multiple targets, or specify each
                 target separately. (Short form: /t)
                 Example:
                   /target:Resources;Compile

/property:<n>=<v>  Set or override these project-level properties. <n> is
                 the property name, and <v> is the property value. Use a
                 semicolon or a comma to separate multiple properties, or
                 specify each property separately. (Short form: /p)
                 Example:
                   /property:WarningLevel=2;OutDir=bin\Debug\

Outras dicas

Aqui está uma boa guia que tem um monte de grande informação sobre MSBuild, Integração contínua e CuriseControl.NET. Definitivamente um bom lugar para começar.

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