Shop the new tech.book(store)
New! Introducing the tech.book(store), a hub for Software Developers and Architects, Networking Administrators, TPMs, and other technology professionals to find highly-rated and highly-relevant career resources. Shop books on programming and big data, or read this week's blog posts by authors and thought-leaders in the tech industry.
> Shop now
As software complexity increases, proper build practices become ever more important. This essential reference drills inside MSBuild—and shows how to maximize your control over the build and deployment process. Learn how to customize and extend build processes with MSBuild—and scale them to the team, product, or enterprise level with Team Foundation Build.
Discover how to:
Create and modify MSBuild files—outside the Visual Studio IDE
Use XML-based syntax to declare dynamic properties and items
Apply built-in tasks or write your own
Customize the build process—adding code generation, unit testing, or code analysis
Use batching and incremental builds to reduce build times
Invoke external tools in scripts and create reusable files
Start and stop services
Set assembly versions and extend the clean process
Configure, customize, and extend Team Build—and automate build from end to end
{"itemData":[{"priceBreaksMAP":null,"buyingPrice":31.84,"ASIN":"0735626286","isPreorder":0},{"priceBreaksMAP":null,"buyingPrice":35.75,"ASIN":"1590596528","isPreorder":0},{"priceBreaksMAP":null,"buyingPrice":38.44,"ASIN":"0321197690","isPreorder":0}],"shippingId":"0735626286::XgOdHs31awcnjMX%2FHEbrHHoP2L6q8zRHXCp36g1ca90kRPfBdP0skYtw5uo%2Beczmx2LA4fwxLHkpi9RK17O1QIGYr5tgsNoQSrqJx4xAIpM%3D,1590596528::04v%2FYzDfDTHdtlrkydd%2B9nyJuE1xWQV%2FLwe6HFdMpjPKggDy2tlyuRtaoOh4juQv4bL5vD%2Fvp46FUYmy%2BEgkeUMFUs%2FwReHOMELxB%2B%2F5tj3zsV%2F9LwCU6g%3D%3D,0321197690::OrjyYpMohuqUzB%2F3OEoNlL1sRbe9nSsFtG89C9rH5Kr13OHzJ5o1wfFUI1h6LqOm4SgLpiALdUVsWzEx9WeJ%2FbYxKsZsY8kfIi9C97A2xeU%3D","sprites":{"addToWishlist":["wl_one","wl_two","wl_three"],"addToCart":["s_addToCart","s_addBothToCart","s_add3ToCart"],"preorder":["s_preorderThis","s_preorderBoth","s_preorderAll3"]},"currenyCode":"USD","shippingDetails":{"xz":"same","yz":"same","xy":"same","xyz":"same"},"tags":["x","y","z"],"strings":{"addToWishlist":["add to wishlist","Add both to Wish List","Add all three to Wish List"],"addToCart":["Add to Cart","Add both to Cart","Add all three to Cart"],"showDetailsDefault":"Show availability and shipping details","shippingError":"An error occurred, please try again","hideDetailsDefault":"Hide availability and shipping details","priceLabel":["Price:","Price for both:","Price for all three:"],"preorder":["Pre-order this item","Pre-order both items","Pre-order all three items"]}}
Sayed Ibrahim Hashimi is a consultant, trainer, and senior software developer who has designed large-scale, distributed applications using a variety of programming languages and platforms, including Microsoft .NET, C++, and Java. This is his third book on MSBuild.
William Bartholomew is a software development engineer at Microsoft Corporation in Redmond, WA. He is a member of the Developer Division Engineering Systems group, which includes the build lab responsible for building and shipping Microsoft Visual Studio®.
Product Details
Paperback: 368 pages
Publisher: Microsoft Press; 1 edition (January 7, 2009)
I've been working with MSBuild now for about a year and have learnt it solely from other people feeding me strips of information here and there. Recently I have been working on an enterprise project that requires the utmost attention concerning automated builds.
I searched for anything on MSBuild and came across this gem. Even though I have decent experience in MSBuild I read this book from front to back twice over and was exceptionally impressed with how this book was put together. The examples were very straight forward and understandable even to a few of my friends who have no idea about MSBuild. I feel that so long as the reader has an understanding of XML, then they can understand the examples in this book. The chapter 1 quick starts are greating for getting straight into the basics and getting a great feel for the direction the books takes you in.
There is some fantastic advice and guidance for customizing MSBuilds, batch building and incremental building and there are 3 chapters dedicated to Team Foundation Build which were highly educational for me in not only a gathering a better understanding of the build process in Team Foundation but also a stronger understanding of how to utilize Build Agents, retention policies, triggers, and unit testing within Team Foundation Build.
This book quite simply in my humble opinion, is a "must have" for anybody that is serious in learning the art of build mastering and is a "must have" for build masters as an A+ reference.
Kudos to Sayed and William for writing this much needed gem. Well done.
I'm a developer on MSBuild; Sayed wrote this book with our encouragement, and we reviewed it for accuracy and completeness, so I can recommend it. The documentation for MSBuild in 2.0 and 3.5 was not great; I consider this something like the missing manual. Unfortunately there aren't many other MSBuild books; fortunately Sayed did a good job on this one.
We're fixing a lot of what's "missing" in MSBuild in the upcoming version 4.0 -- I hope Sayed can do a 2nd edition when that comes out. Plus, our docs should be better then :-)
This book is outstanding. A literal step-by-step walk through of MSBuild and Team Build. I have been working with these products for almost a year and learned them on my own, via various websites, blogs, msdn walk-throughs, etc. There are a myriad of sources with bits and pieces of the information you need, and I feel this book pulls them all together in one very well written book.
This is the best source to get going from beginner to intermediate level with MSBuild and Team Build. Obviously you need to dive into the products and get your feet wet intensely to gain expert knowledge of the two. However, this book takes you leaps and bounds into an advanced level of knowledge. The msdn topics have everything else you need as a reference beyond this book.
I highly recommend this book to anyone who is both new or experienced with MSBuild or Team Build. Great work!
When the Microsoft Developer Division sat down to consider the future of .NET development from v2.0 onwards, they recognised the build process in Visual Studio .NET was primitive in its facilities. It had to be re-architected to provide a much more flexible and extensible mechanism. Thus the re-engineering endeavour that brought us MSBuild. Although it was modeled after NAnt and featured some intriguing concepts, widespread adoption was not achieved. As in, conscious manipulation and customisation.
Sure, most developers simply think Ctrl-Shift-B when "build" is mentioned; it remains an invisible compile tool in Visual Studio in their eyes. But for those who did knew the advent of MSBuild, the woefully inadequate documentation prevented many from properly understanding the arcane concepts it brings to the table. Lack of understanding directly affects utilisation. I was one such individual who struggled last year to find relevant material to explain what I needed to know and do to achieve what I thought were pretty common build steps. Suffice to state I was disillusioned and disappointed.
Which brings me to this executive summary: I wished Inside the Microsoft Build Engine: Using MSBuild and Team Foundation Build was published last year when I needed it.
This book is what the stock documentation should have been. Sayed Ibrahim Hashimi and William Bartholomew must have realised that - developers were not getting much out of those materials - and wrote the first three chapters of Part 1 to slowly and meticulously explain the concepts and important elements one works with in MSBuild. When necessary, line-by-line details are elaborated, and the MSBuild samples are always accompanied by sample prints of the console screen output as well to illustrate the point.... While this is no excuse for relieving folks from trying things out themselves, it runs the extra mile to help me understand the theory since I tend to read while commuting. Being able to finally grasp those elusive concepts was a joyous event.
The book also covers extensibility avenues, teaching the underlying framework and showing how to develop custom tasks and loggers, even how to refactor the MSBuild project elements into smaller files; they give a clearer picture how all these pieces combine together to form the entire build workflow and possible extensibility points for one to inject custom targets and tasks. But this book is not just about the official stock product either; the authors recognise weak points in the current implementation and devote a significant portion of the book to suggest a variety of alternative solutions from third-party add-ons from CodePlex or Tigris to overcome problems that may be commonly encountered by build teams. Differences between MSBuild 2.0 and 3.5 are also noted to provide readers with heightened awareness of what they can or cannot do with a particular version. The last Part that details working with Team Foundation Build is also an extremely helpful segment that I have been dying to know how builds are implemented and managed in Team Foundation Server.
As much as I love this book for filling critical gaps in my MSBuild knowledge, one thing that I did find lacking was a full-fledge demonstration of how to define an end-to-end build project that does different things all based on conditions from the previous steps. Like, invoking code analysis only if unit tests all pass, building and deployment release configuration only if debug configuration passes tests, emailing to the team the statistics or status of deployment, etc. Many of the demonstrations are isolated in their demonstration. While the content has done a fine job explaining the individual concepts, MSBuild as an XML-based semantic still remains highly arcane; more unified samples would have helped many. There is no mention of [..] either, which probably means it is not as popular as I was led to think.
Any build engineer or developing tinkering with project builds, absolutely needs to read this book. It will fill many of the blanks the standard documentation never provided, and widen your search for better ideas to improve your build.
Overall rating: 9/10 Good: Must-have supplement to SDK docs; meticulous explanations; liberal alternative recommendations Bad: could have demonstrated more unified, sophisticated build sequences with conditional paths; no [...]Read more ›
This is a well written book on the MSBuild system. I was working on an open source project that will generate the MSBuild scripts and wanted to understand it well enough to take maximum advantage of it.
This book is all that I was waiting for, it is worth the price. The explanations are simply and very clear - easy to understand language. There are few mistakes, but you can easily tell. After reading the Quick Start (Chapter 1), you know you are in very good hands.
The book can be used by any user of the Visual Studio or .NET Framework 2.x or later, and unlike many out there, it does not attempt to teach you how to install VS.NET or how to use it.
My only wish is that the complete definition of each tag is presented the first time it is introduced, so that you know at least all its attributes, without having to refer to the Appendix or other resources.