Download præsentationen
Præsentation er lastning. Vent venligst
Offentliggjort afBertha Laugesen Redigeret for ca. et år siden
1
MSBuild & Team Build i C#/C++ solutions VSTS ERFA d. 25 November
2
Indholdet i disse slides er baseret på egne erfaringer og egne konklusioner. 2
3
Intro Hvad er MSBuild Hvad er Team Build Problemstillinger ”komplekse” solutions Tools og ressourcer Tips 3 Agenda
4
Intro Hvem er jeg Hvem er Oticon Hvem er Team Fitting System Hvad er Genie 4
5
Erik Malmqvist, 31år Udvikler hos Oticon A/S IT ingeniør & elektronikmekaniker Har arbejdet med udvikling af software/hardware i ca. 10år http://blog.malmen.dk Hvem er jeg 5
6
Vi udvikler og producerer høreapparater ~600 på Kongebakken (~4500 i verden) Blandt de største Hvem er Oticon 6 Kongebakken
7
~50 i teamet (audiologer, testere, udviklere, management) 33 udviklere (7 i Polen) C#/.Net & C++ Scrum Hvem er Team Fitting System 7
8
Hvad er Genie Fitting software Forretnings-kritisk Oplag ~25.000 stk 8 Overstat til 21 sprog ~600.000 liniers kode 34 projekter (27 C# og 7 C++)
9
MSBuild generelt Hvor kender vi MSBuild fra ? MSBuild kort Solution & projekt filer.targets filer Afhænigheder 9
10
10
11
MSBuild kort Microsofts build platform Del af.NET frameworket XML syntax Første gang set i VS2005 og.NET 2.0 11
12
Solution & projekt filer MSBuild bliver brugt her ? Projekt filer C# Projekt filer C++ Solution filer C# Solution filer C++ Team Build projekt filer Build scripts Build Definitions Build Agents 12
13
MSBuild bliver brugt her ? Projekt filer C# (.csproj) Projekt filer C++ (.vcproj) Solution filer C# (.sln) Solution filer C++ (.sln) Team Build projekt filer (TFSBuild.proj) Build scripts (.xml) Build Definitions (TFSBuild.proj) Build Agents (service) Solution & projekt filer 13
14
.targets filer Kommer med MSBuild MSBuild scripts Definerer forskellige operationer f.eks. Build, clean Er ofte afhængige af hinanden. Microsoft.Common.Targets Microsoft.CSharp.Targets 14
15
Afhængigheder Typer Interne referencer Eksterne referencer Skjulte referencer Symptomer Optimering forsvinder Domino effekt Ustabil build 15
16
Team Build generelt Overblik Team Build & MSBuild vs. Visual Studio Build log 16
17
Team Build overblik 17
18
Team Build & MSBuild vs. Visual Studio 18
19
Build log – Team Build Demo solution 19
20
Build log – Team Build 20 Normal log (i forhold til tid) Reduceret log (i forhold til tid) Tool log (i forhold til relation )
21
Problemstillinger ”komplekse” solutions Konfigurationer & output foldere Generede afhængigheder Skjulte afhængigheder Ikke MSBuild Blandede solutions Konklusion 21
22
Konfigurationer & output foldere 22
23
Konfigurationer & output foldere 23
24
Konfigurationer & output foldere 24
25
Genererede afhængigheder Mange relative stier Kompleks build script Komplekse afhængigheder 25
26
Skjulte afhængigheder Pre/post build events 26
27
Ikke MSBuild C++ projekter Tools Exec Custom tasks 27
28
Blandede solutions (C#, C++) 28 Genererede afhængigheder Genererede afhængigheder Ikke MSBuild Konfigurationer Output foldere Skjulte afhængigheder Skjulte afhængigheder
29
Start med en stabil solution/build Brug build scripts til komplekse builds Nemmere at debugge Mere kontrol over afviklingen Kan køres uden for Team Build Vær kritisk overfor loggen Konklusion (egne erfaringer) 29
30
Aaron Hallberg http://blogs.msdn.com/aaronhallberg MSDN MSBuild reference http://msdn.microsoft.com/en-us/library/0k6kkbsd.aspx Microsoft Build Sidekick v2 http://www.attrice.info/msbuild/ Tools og resourcer 30
31
Tools og resourcer Disclaimer: Dette tool har ikke noget at gøre med Oticon. Det er stadigt under udvikling, og skal benyttes på eget ansvar. 31 http://install.malmen.dk/EMBuild/publish.htm
32
Tips MSBuild command line options – TFSBuild.rsp /fileLoggerParameters:verbosity=normal Work item creation – TFSBuild.proj Brug macroer til at ”binde” relative stier 32
Lignende præsentationer
© 2024 SlidePlayer.dk Inc.
All rights reserved.