Corporate · onsite · online training worldwide
contact@DevOpsSchool.com· +91 99057 40781·
> Build Automation · DevOpsSchool Trainer

MSBuild Trainer

Private corporate batches, live online cohorts and 1-on-1 mentoring in the .NET build engine in depth — properties, items, targets, batching, incremental builds and binlog-driven diagnostics — taught by a practitioner who runs it in production.

20 years across DevOps, SRE and Security · 10,000+ engineers trained · Trained teams at JPMorgan Chase, Verizon, Nokia and the World Bank

DeliveryOnline · Onsite · Hybrid
FormatsCorporate · 1-on-1 · Cohort
AgendaCustomisable
Batch size8–30 engineers
Engineers we've trained work at
JPMorgan ChaseBank of AmericaWells FargoVerizonNokiaWorld BankGE HealthcareVMwareOracleQualcommMercedes-BenzAirbusDatadogSplunkDeloitteInfosysWiproCapgemini
# who teaches it

Your MSBuild trainer

Rajesh Kumar

Principal DevOps Engineer & Architect

Build & release engineeringPipeline designMulti-org CI estates20 years in productionPrincipal / architect roles10,000+ engineers trainedM.Tech BITS Pilani25+ certifications

Rajesh teaches MSBuild as a language rather than a configuration file — the evaluation and execution phases that explain most surprising behaviour, properties and items with metadata, targets with inputs and outputs that make incremental builds correct, and item batching, which is where most engineers stop and most build bugs begin. Sessions are driven by binary logs rather than trial and error: reading a real slow build in the structured log viewer, finding the target that never skips, diagnosing evaluation-order and import problems, writing custom and inline tasks, packaging build logic for reuse, and converting legacy project files to SDK-style projects that build on a Linux agent.

Twenty years across DevOps, SRE and Security, in principal and architect roles at PayPay, SoftwareAG, ServiceNow, JDA Software, Intuit, Adobe and others. He has trained engineers at JPMorgan Chase, Verizon, Nokia, the World Bank, VMware, Oracle, Mercedes-Benz and Airbus — more than 10,000 people personally. He teaches what he runs, not what he reads.

One practitioner, not a bench

You are booked with a named engineer, and that is who turns up. Marketplaces and larger providers rotate whoever is free, so the person who sold you the agenda is rarely the person teaching it.

The same trainer is available for the next engagement, which matters when a team builds on what it learned last time.

18,000+certified learners
500+corporate batches delivered
50+countries served
100+certification programmes
# faculty

Who delivers MSBuild engagements

Your batch is assigned a named trainer before it starts, and that is who teaches it. See the full faculty.

How your MSBuild trainer is chosen

Engagements are matched on the tool, not the calendar. For MSBuild that means a trainer who has run it in production — the .NET build engine in depth — properties, items, targets, batching, incremental builds and binlog-driven diagnostics — rather than whoever is free that week. You are told who is teaching before you commit, and that person is on the discovery call that shapes the agenda.

Where a batch is large enough to need a second trainer, the pairing is declared up front. The lead trainer stays accountable for the syllabus and the assessment either way.

Rajesh Kumar

Principal DevOps Engineer & Architect

India20 yrsLead trainer

Twenty years across DevOps, SRE and Security in principal and architect roles at PayPay, SoftwareAG, ServiceNow, JDA Software, Intuit, Adobe, IBM/Emptoris, Ness, MindTree and Accenture. He has trained more than 10,000 engineers personally, at organisations including JPMorgan Chase, Verizon, Nokia, the World Bank, VMware, Oracle, Mercedes-Benz and Airbus. He teaches what he runs, not what he reads.

Rohit Ghatol

IndiaInstructorCoach

Amit Agarwal

IndiaInstructorCoach

Anil Kumar

IndiaInstructorCoach

Balachandran Anbalagan

IndiaInstructorCoach

Durga Prasad

IndiaInstructorCoach

Gaurav Aggarwal

IndiaInstructorCoach

Harsh Mehta

IndiaInstructorCoach

Kapil Gupta

IndiaInstructorCoach

Kunal Jain

IndiaInstructorCoach

Nikhil Gupta

IndiaInstructorCoach

Pranab Kumar

IndiaInstructorCoach

# how to engage

Four ways to work with this trainer

Private corporate batch

Teams of 8–30

Custom agenda, your timezone, onsite or online, NDA-friendly.

Request a quote

1-on-1 mentoring

Individual engineers

A private instructor and a curriculum built around your goal.

₹99,999

Live & Interactive cohort

Individuals who want peers

Scheduled batch, max 8 to 10 hours of live instruction.

₹34,999

Self-paced video

Self-starters

Full LMS access — 20+ courses and 50+ tools included.

₹833/mo
# private batches

Private MSBuild training for your team

A private batch starts with a discovery call. We look at the stack you actually run — the CI system, the cloud, the constraints — and map the agenda onto it, so examples use your topology rather than a generic one.

Delivery is onsite at your premises, live online, or hybrid, scheduled around your release calendar rather than ours. Batches run 8 to 30 engineers.

Every attendee leaves with recordings, slides, lab repositories and a completion certificate. You receive an attendance and assessment report. Invoicing supports PO and GST.

Talk to us about a private MSBuild batch

What you provide vs what we bring

  • You: the room or the call, and the engineers
  • Us: trainer, agenda, labs, assessment, certificates
  • Labs: we guide your team through provisioning their own free-tier cloud environment — the skill goes with them
# the technology

What is MSBuild?

MSBuild is the build engine behind .NET. Every .csproj, .vbproj and .fsproj file is an MSBuild project, and every build started from an IDE, from dotnet build or from a CI agent ultimately runs the same engine over the same XML. Most .NET developers have edited a project file without ever learning the language it is written in, which is why build problems in .NET estates tend to be diagnosed by trial and error rather than by reading.

MSBuild has four concepts and they are worth learning precisely. Properties are scalar values. Items are lists whose entries carry metadata. Targets are named, ordered units of work that can declare inputs and outputs so the engine can skip them when nothing has changed. Tasks are the executable units inside a target — Copy, Exec, Csc, MSBuild itself, or a class you wrote. On top of those sit conditions, item transforms and batching, which is the feature that lets one target run once per distinct metadata value and is simultaneously the most powerful and least understood part of the language.

A build also has two distinct phases that explain most confusing behaviour: evaluation, where the engine reads properties and items in order and imports .props and .targets files, and execution, where targets actually run. Directory.Build.props and Directory.Build.targets let you set policy for an entire repository without editing every project. The binary log — msbuild /bl — records the whole of both phases and turns build debugging from guesswork into reading a structured trace, which for most teams is the single highest-value thing in this syllabus.

Why this skill matters now

.NET estates are large, long-lived and, for the most part, undocumented at the build layer. The people who wrote the original project files have moved on, builds have accumulated targets nobody dares delete, and a full build takes fifteen minutes where it should take three. Somebody has to own that, and the skill is genuinely scarce because MSBuild is treated as an implementation detail rather than something to learn.

Migration is the other driver, and it is the reason most teams book this training. Legacy project files to SDK-style projects, packages.config to PackageReference, .NET Framework to modern .NET, and Windows-only builds to something that runs on a Linux CI agent. All four require reading and rewriting MSBuild, and doing it without a working knowledge of evaluation order, imports and conditions is how a migration turns into a quarter of unexplained build failures.

The third is cost. Build time is paid for in CI minutes and in developer waiting. Real reductions come from correct incremental targets, restoring properly, avoiding redundant project references, and understanding where time is actually going — which requires a binary log and someone who can read it. Teams that guess at build performance usually make it worse.

MSBuild training
# outcomes

What your team can do afterwards

Read any project file confidently — properties, items, metadata, targets, tasks and imports
Explain the difference between evaluation and execution, and use it to diagnose ordering problems
Write targets with correct Inputs and Outputs so incremental builds skip work safely
Use conditions, item transforms and batching deliberately instead of avoiding them
Diagnose a slow or misbehaving build from a binary log rather than by guesswork
Configure logging properly — verbosity levels, console, file and custom loggers
Extend MSBuild with custom tasks, inline tasks and reusable .props and .targets packages
Modernise legacy projects to SDK-style and make a Windows-only build run on a Linux CI agent
# curriculum

9 modules. Live demos in a real lab, not slides.

01The MSBuild execution modelLive & Interactive5 hrs · 2 assignments · 1 capstone

The mental model that everything else depends on. What happens between invoking a build and code being compiled: evaluation order, imports, the SDK implicit imports, target graph construction and execution. This module alone resolves most long-standing confusion in a .NET build.

Topics: Understanding the MSBuild execution model · Evaluation phase versus execution phase · Import order and implicit SDK imports · Directory.Build.props and Directory.Build.targets · Reserved and well-known properties · How the target graph is built · msbuild, dotnet build and the IDE compared · Where the engine reads configuration from

  • Assignments: (1) Trace the full evaluation order of a real project file; (2) Set a repository-wide property using Directory.Build.props and prove where it applies
  • Capstone: Produce an annotated walkthrough of one real project's build from invocation to output
02Properties, items and metadataLive & Interactive5 hrs · 2 assignments · 1 capstone

The data model. Scalar properties and their precedence, item lists and the metadata every item carries, well-known metadata, property and item functions, and the difference between defining items during evaluation and inside a target.

Topics: PropertyGroup and property precedence · Command-line properties and response files · Environment variables as properties · ItemGroup, Include, Exclude and Remove · Well-known metadata: Identity, Filename, Extension, RecursiveDir · Custom item metadata · Property functions and item functions · Items inside targets versus at evaluation time

  • Assignments: (1) Build an item list with custom metadata and consume it in a target; (2) Debug a property whose value is not what you expect and explain why
  • Capstone: Deliver a project file where every value is intentional and traceable to its source
03Targets and tasksLive & Interactive5 hrs · 2 assignments · 1 capstone

The unit of work. Target ordering with DependsOnTargets, BeforeTargets and AfterTargets; the built-in task library that covers most needs; returning values from targets; and calling other projects with the MSBuild task.

Topics: Target definition, Name and Condition · DependsOnTargets, BeforeTargets and AfterTargets · Built-in tasks: Copy, Exec, MakeDir, Delete, WriteLinesToFile · ReadLinesFromFile, XmlPeek and XmlPoke · The MSBuild task and building other projects · CallTarget and why it is usually the wrong answer · Target Returns and Outputs · Extending the standard build with hook targets

  • Assignments: (1) Add a target that runs after build without editing the build target; (2) Replace a chain of CallTarget calls with proper dependencies
  • Capstone: Deliver a custom build step wired into the standard build in a way that survives an SDK upgrade
04Conditions, transforms and batchingLive & Interactive5 hrs · 2 assignments · 1 capstone

The part where most engineers stop, and where the most valuable capability lives. Condition syntax and evaluation, item transforms with separators, and task and target batching — running the same work once per distinct metadata value.

Topics: Condition syntax, operators and string comparison · Conditions during evaluation versus execution · Item transforms and custom separators · Task batching with %(Metadata) · Target batching and its differences · Batching pitfalls and empty batches · Combining batching with conditions · Reading someone else's batched target

  • Assignments: (1) Convert a copy-pasted set of targets into one batched target; (2) Fix a batched target that silently produces no output
  • Capstone: Deliver a batched target that processes a variable set of inputs with no duplication
05Incremental builds and build performanceLive & Interactive5 hrs · 2 assignments · 1 capstone

Making builds fast and keeping them correct. Inputs and Outputs on targets, up-to-date checks, why a target never skips, the cost of assembly reference resolution and restore, parallel builds, and node reuse behaviour on a CI agent.

Topics: Target Inputs and Outputs · Up-to-date checks and target skipping · Diagnosing a target that always runs · Incremental correctness versus incremental speed · Parallel builds with /m and project-level parallelism · Node reuse and why CI should disable it · ResolveAssemblyReference cost · Restore cost and when to skip it · Static graph and isolated builds

  • Assignments: (1) Find and fix the target that prevents an incremental build from skipping; (2) Measure and reduce the wall-clock time of a real solution build
  • Capstone: Cut a solution's incremental build time substantially with before-and-after measurements
06Logging and diagnosticsLive & Interactive5 hrs · 2 assignments · 1 capstone

The module that changes how attendees work. Verbosity levels and what each exposes, the console and file loggers, the binary log and the structured log viewer, writing a custom logger, and the systematic method for troubleshooting a slow or misbehaving build.

Topics: Logging and verbosity levels · Console logger and its parameters · File logger and multiple log files · The binary log and structured log viewer · Reading evaluation and execution from a binlog · Custom loggers and the ILogger interface · Distributed loggers in parallel builds · Troubleshooting a slow build methodically · Filtering and interpreting build events

  • Assignments: (1) Capture a binary log of a failing build and find the root cause without editing the project; (2) Write a custom logger that emits build timings in a machine-readable format
  • Capstone: Diagnose a build nobody on the team understands, using only logs, and document the cause
07Error handling and build reliabilityLive & Interactive5 hrs · 2 assignments · 1 capstone

Making builds fail correctly and only when they should. The error and warning model, warnings as errors and selective suppression, ContinueOnError and its risks, Exec exit codes, and the flaky-build patterns that waste the most engineering time.

Topics: Handling errors: the Error and Warning tasks · MSBuild error and warning codes · TreatWarningsAsErrors and selective suppression · WarningsAsErrors and WarningsNotAsErrors · ContinueOnError modes and when each is legitimate · Exec exit codes and IgnoreExitCode · Validating inputs early with conditions · Diagnosing intermittent build failures · Failing fast in CI versus locally

  • Assignments: (1) Make a silently-passing build fail correctly on a real error; (2) Introduce warnings-as-errors to a legacy project without stopping all work
  • Capstone: Deliver a build whose exit status is trustworthy enough to gate a release
08Extending MSBuildLive & Interactive5 hrs · 2 assignments · 1 capstone

Writing your own build logic properly. Custom tasks in C#, ToolTask for wrapping executables, inline tasks for small jobs, and packaging shared build logic as .props and .targets inside a NuGet package so every repository consumes the same rules.

Topics: Writing a custom task with the Task base class · ToolTask for wrapping command-line tools · Task inputs, outputs and Required parameters · Inline tasks with UsingTask and RoslynCodeTaskFactory · Targeting both .NET Framework and .NET runtimes · Packaging .props and .targets in a NuGet package · Build/buildTransitive package conventions · Versioning and rolling out shared build logic · Testing build logic

  • Assignments: (1) Write and consume a custom task that fails the build on a policy violation; (2) Package shared build logic and consume it from two repositories
  • Capstone: Deliver an internal build-logic package that standardises rules across an estate
09CI integration, multi-targeting and modernising legacy projectsLive & Interactive5 hrs · 2 assignments · 1 capstone

MSBuild where the money is. Multi-targeting and inner and outer builds, deterministic and reproducible builds, publishing, and the migration work most teams actually need — legacy project files to SDK-style, packages.config to PackageReference, and Windows-only builds onto Linux agents.

Topics: TargetFrameworks, inner and outer builds · Restore, build and publish in CI · Deterministic builds and SourceLink · Publishing profiles and output layouts · Central Package Management with Directory.Packages.props · packages.config to PackageReference migration · Legacy project files to SDK-style projects · Making a Windows-only build run on Linux · Versioning artifacts from the build

  • Assignments: (1) Convert a legacy project file to SDK-style and prove output equivalence; (2) Make a Windows-only project restore and build on a Linux agent
  • Capstone: Deliver a migrated, multi-targeted project building deterministically on a CI agent

Need this mapped to your stack?

We rebuild the agenda around the tools you actually run.

Request a custom agenda
# hands-on

Labs and capstones your engineers actually build

LAB · MODEL

Trace a real build

Take a project nobody fully understands and trace evaluation, imports and target execution end to end until every value and every target has a known origin.

evaluationimportstargets
LAB · BATCHING

One target instead of twelve

Replace a block of copy-pasted near-identical targets with a single batched target, then fix the empty-batch case that silently produces nothing.

batchingmetadatatransforms
LAB · PERFORMANCE

Find the target that never skips

Profile a slow solution from a binary log, identify the target that breaks incrementality, fix its Inputs and Outputs and measure the difference.

incrementalbinlogperformance
LAB · DIAGNOSTICS

Debug it from the log alone

Given a failing build and no ability to edit the project, capture a binary log and identify the root cause purely by reading it.

binlogverbosityloggers
LAB · EXTENSION

Ship build logic as a package

Write a custom task that enforces a build policy, package it with .props and .targets in a NuGet package, and consume it from two separate repositories.

custom tasknugettargets
CAPSTONE · MIGRATION

Legacy project onto a Linux agent

Convert a legacy project file to SDK-style, migrate packages.config to PackageReference, and get it restoring and building deterministically on a Linux CI agent.

sdk-stylepackagereferenceci
# ecosystem

The tools MSBuild sits next to

NuGet
.NET SDK
Visual Studio
Roslyn
Jenkins
TeamCity
Artifactory
Git
PowerShell
SonarQube
xUnit
Octopus Deploy

Who this is for

  • Build engineers who own a .NET build and its CI pipeline
  • Developers whose project files have grown beyond what anyone understands
  • Teams migrating legacy project files to SDK-style or .NET Framework to modern .NET
  • Platform engineers standardising build rules across many repositories
  • DevOps engineers moving Windows-only builds onto Linux CI agents
  • Engineering leads trying to reduce build time and CI cost

Pre-requisites

  • Working knowledge of C# or another .NET language
  • Comfortable reading and editing XML
  • Familiarity with the command line on Windows or Linux
  • Experience with Git and with at least one CI system
  • A .NET solution of your own, ideally one with a build problem worth solving
# pricing

Straightforward pricing

Every plan includes 1 year of full LMS access — not just this course, the entire DevOpsSchool LMS: 20+ courses, 50+ tools, videos, quizzes, assignments and projects.

Self-paced video

₹833/mo

Billed yearly at ₹9,996

Enroll now

1-on-1 mentorship

₹99,999

Full program, private instructor

Enroll 1-on-1

Corporate / private batch

8–30 engineers · custom agenda · onsite or online · PO and GST invoicing

Get a custom quote

Refunds. If we cancel or postpone a cohort, you get a full refund within 15 days. There is no money-back guarantee otherwise.

Terms. Course material remains licensed to the attendee. Read the terms.

Your data. We don't share it with third parties. Privacy policy.

Every attendee gets a verifiable certificate

  • Issued per attendee on completion
  • Verifiable at devopsschool.com/certificates
  • Hard copy available on request
  • Corporate batches receive an attendance and assessment report
DevOpsSchool

MSBuild Training

Certificate of completion

# feedback

What engineers say

4.4 / 5 from 26 reviews on Trustpilot.

★★★★★
The trainer (Rajesh) provided very good sessions on SRE profession. Not only hands-on learning on the tools but also SRE mindset.
Peter Wang · Trustpilot
★★★★★
Very good training session. Well explained from the basics to the complex concepts. Also tried to cover practicals and demos within the 3 hour sessions. The learning content and videos are of a great deal of help.
Sreekanth Kannoth · Trustpilot
★★★★★
Basics explanation was exemplary from Rajesh where he dealt with complicated topics to be simple. Great learning stuff personally for me.
Krishna Mohan Yelleti · Trustpilot
★★★★★
Very detailed explanation and has lots of patience in attending the questionnaire. Thanks again for your wonderful sessions.
Uttam Samudrala · Trustpilot
★★★★★
Good discussion, helped us to understand different tools in SRE.
Prashant Saxena · Trustpilot
★★★★★
Got good lab sessions which kept the new DevOps tool learnings to the point and it helped a lot in my career.
robin son · Trustpilot
# comparison

Why a named practitioner beats a marketplace listing

What mattersYouTube + blogsGeneric online courseFreelance marketplaceDevOpsSchool
Named practitionerNoRarelyVaries per bookingYes — same trainer each time
Production experienceUnknownUnknownUnverified20 years, named employers
Custom agendaNoNoSometimesBuilt from your stack
Onsite deliveryNoNoSometimesYes
Lab environmentNoneSandbox that expiresVariesYour own cloud — skill goes with you
AssessmentNoneQuizRarelyAssignments + capstone per module
Per-attendee certificatesNoSometimesRarelyYes
Corporate invoicingNoLimitedVariesPO and GST
Post-training supportNoneForum, time-limitedNoneLifetime forum access
# questions

Frequently asked

Our build takes fifteen minutes. Can you actually make it faster?
Usually yes, and the method is module 5 plus module 6: capture a binary log, find the targets that never skip, fix Inputs and Outputs, remove redundant project references and restore work, then measure. We do this on your solution during the batch.
We are migrating legacy project files to SDK-style. Is that covered?
Yes, module 9, and it is a common reason teams book. Legacy to SDK-style, packages.config to PackageReference, Central Package Management, and proving output equivalence before and after.
Do you cover the binary log and the structured log viewer?
Extensively — module 6 is built around it. It is the single most useful build debugging tool in .NET and most teams have never used it. We diagnose real failures using only a binlog.
Can you cover writing custom MSBuild tasks?
Yes, module 8. Custom tasks with the Task base class, ToolTask for wrapping executables, inline tasks, and packaging .props and .targets in a NuGet package so shared build logic is versioned rather than copy-pasted.
We need our Windows-only build to run on Linux agents. Is that realistic?
Often yes, and module 9 covers exactly what blocks it — Windows-only tasks, path assumptions, targets tied to the desktop SDK and framework targeting. The capstone lab does this conversion.
Is MSBuild still worth learning given newer build tooling?
For .NET, yes. Every .NET build still runs through MSBuild whatever invokes it, and the alternative is diagnosing build problems by trial and error. We are candid in module 1 about what MSBuild is not good at.
How long does a private MSBuild batch take?
Two to three days. Two covers the execution model, project file language, batching, incremental builds and diagnostics; the third adds extension, packaging build logic and migration work on your own solution.
Can the agenda be customised for our stack?
Yes — the normal case for a private batch. We start with a discovery call, look at your actual solutions and CI setup, and rebuild the agenda around the build problems you have.
What lab environment is needed?
A machine with the .NET SDK installed — Windows, Linux or macOS — and ideally one of your own solutions. Attendees provision their own environment with guidance.
Do you deliver onsite?
Yes. Private batches run onsite at your premises, live online, or hybrid, scheduled around your release calendar.
What size are batches?
Private corporate batches run 8 to 30 engineers. Public Live & Interactive cohorts are capped at 10 so everyone gets time with the trainer.
What is your refund position?
If we cancel or postpone a cohort, you receive a full refund within 15 days. There is no general money-back guarantee, and GST and gateway fees are not refunded.

Still deciding?

Tell us the team, the stack and the timeline. You'll get a straight answer, not a sales sequence.

Talk to an advisor
# ready when you are

Book a MSBuild trainer — or ask a question first.

  • No spam, no drip sequence
  • Syllabus in 60 seconds
  • A human reply within one business day

Prefer to call or email?

More ways to reach us on the contact page.

Talk to an advisorRequest a quote