Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
SPECIAL OFFER: Upgrade this ebook with O’Reilly
Praise for: Inside the Microsoft Build Engine: Using MSBuild and Team Foundation Build, Second Edition
Foreword
Introduction
Who This Book Is For
Assumptions
Organization of This Book
System Requirements
Code Samples
Acknowledgements
Sayed Ibrahim Hashimi
William Bartholomew
Pavan Adharapurapu
Jason Ward
Errata and Book Support
We Want to Hear from You
Stay in Touch
I. Overview
1. MSBuild Quick Start
Project File Details
Properties and Targets
Items
Item Metadata
Simple Conditions
Default/Initial Targets
MSBuild.exe Command-Line Usage
Extending the Build Process
2. MSBuild Deep Dive, Part 1
Properties
Environment Variables
Reserved Properties
Command-Line Properties
Dynamic Properties
Items
Copy Task
Well-Known Item Metadata
Custom Metadata
Item Transformations
3. MSBuild Deep Dive, Part 2
Dynamic Properties and Items
Dynamic Properties and Items: MSBuild 3.5
Property and Item Evaluation
Importing Files
Extending the Build Process
Property Functions and Item Functions
Property Functions
String Property Functions
Static Property Functions
MSBuild Property Functions
Item Functions
II. Customizing MSBuild
4. Custom Tasks
Custom Task Requirements
Creating Your First Task
Task Input/Output
Supported Task Input and Output Types
Using Arrays with Task Inputs and Outputs
Inline Tasks
TaskFactory
Extending ToolTask
ToolTask Methods
ToolTask Properties
Debugging Tasks
5. Custom Loggers
Overview
Console Logger
File Logger
ILogger Interface
Creating Custom Loggers
Extending the Logger Abstract Class
Extending Existing Loggers
FileLoggerBase and XmlLogger
Debugging Loggers
III. Advanced MSBuild Topics
6. Batching and Incremental Builds
Batching Overview
Task Batching
Target Batching
Combining Task and Target Batching
Multi-batching
Using Batching to Build Multiple Configurations
Batching Using Multiple Expressions
Batching Using Shared Metadata
Incremental Building
Partially Building Targets
7. External Tools
Exec Task
MSBuild Task
MSBuild and Visual Studio Known Error Message Formats
Creating Reusable Build Elements
NUnit
FxCop
IV. MSBuild Cookbook
8. Practical Applications, Part 1
Setting the Assembly Version
Building Multiple Projects
Attaching Multiple File Loggers
Creating a Logger Macro
Custom Before/After Build Steps in the Build Lab
Handling Errors
Replacing Values in Config Files
Extending the Clean
9. Practical Applications, Part 2
Starting and Stopping Services
Web Deployment Project Overview
Zipping Output Files, Then Uploading to an FTP Site
Compressing JavaScript Files
Encrypting web.config
Building Dependent Projects
Deployment Using Web Deployment Projects
V. MSBuild in Visual C++ 2010
10. MSBuild in Visual C++ 2010, Part 1
The New .vcxproj Project File
Anatomy of the Visual C++ Build Process
Diagnostic Output
Build Parallelism
Configuring Project- and File-Level Build Parallelism
File Tracker–Based Incremental Build
Incremental Build
File Tracker
Trust Visual C++ Incremental Build
Troubleshooting
Property Sheets
System Property Sheets and User Property Sheets
Visual C++ Directories
11. MSBuild in Visual C++ 2010, Part 2
Property Pages
Reading and Writing Property Values
Build Customizations
Platforms and Platform Toolsets
Native and Managed Multi-targeting
Native Multi-targeting
How Does Native Multi-targeting Work?
Managed Multi-targeting
Default Visual C++ Tasks and Targets
Default Visual C++ Tasks
Default Visual C++ Targets
ImportBefore, ImportAfter, ForceImportBeforeCppTargets, and ForceImportAfterCppTargets
Default Visual C++ Property Sheets
Migrating from Visual C++ 2008 and Earlier to Visual C++ 2010
IDE Conversion
Command-Line Conversion
Summary
12. Extending Visual C++ 2010
Build Events, Custom Build Steps, and the Custom Build Tool
Build Events
Custom Build Step
Custom Build Tool
Adding a Custom Target to the Build
Creating a New Property Page
Troubleshooting
Creating a Build Customization
Adding a New Platform and Platform Toolset
Deploying Your Extensions
VI. Team Foundation Build
13. Team Build Quick Start
Introduction to Team Build
Team Build Features
High-Level Architecture
Preparing for Team Build
Team Build Deployment Topologies
What Makes a Good Build Machine?
Installing Team Build on the Team Foundation Server
Setting Up a Build Controller
Setting Up a Build Agent
Drop Folders
Creating a Build Definition
General
Trigger
Workspace
Build Defaults
Process
Retention Policy
Working with Build Queues and History
Visual Studio
Working with Builds from the Command Line
Team Build Security
Service Accounts
Permissions
14. Team Build Deep Dive
Process Templates
Default Template
Logging
Build Number
Agent Reservation
Clean
Sync
Label
Compile and Test
Source Indexing and Symbol Publishing
Associate Changesets and Work Items
Copy Files to the Drop Location
Revert Files and Check in Gated Changes
Create Work Items for Build Failure
Configuring the Team Build Service
Changing Communications Ports
Requiring SSL
Running Interactively
Running Multiple Build Agents
Build Controller Concurrency
Team Build API
Creating a Project
Connecting to Team Project Collection
Connecting to Team Build
Working with Build Service Hosts
Working with Build Definitions
Working with Builds
15. Workflow Foundation Quick Start
Introduction to Workflow Foundation
Types of Workflows
Building a Simple Workflow Application
Workflow Design
Built-in Activities
Working with Data
Exception Handling
Custom Activities
Workflow Extensions
Persistence
Tracking
Putting It All Together—Workflow Foundation Image Resizer Sample Application
Overview
Building the Application
Running the Application
Debugging the Application
Summary
16. Process Template Customization
Getting Started
Creating a Process Template Library
Creating a Custom Activity Library
Process Parameters
Defining
Metadata
User Interface
Supported Reasons
Backward and Forward Compatibility
Team Build Activities
AgentScope
CheckInGatedChanges
ConvertWorkspaceItem/ConvertWorkspaceItems
ExpandEnvironmentVariables
FindMatchingFiles
GetBuildAgent
GetBuildDetail
GetBuildDirectory
GetBuildEnvironment
GetTeamProjectCollection
InvokeForReason
InvokeProcess
MSBuild
SetBuildProperties
SharedResourceScope
UpdateBuildNumber
Custom Activities
BuildActivity Attribute
Extensions
Logging
Logging Verbosity
Logging Activities
Logging Programmatically
Adding Hyperlinks
Tracking Attributes
Exceptions
Deploying
Process Templates
Custom Assemblies
Downloading and Loading Dependent Assemblies
VII. Web Development Tool
17. Web Deployment Tool, Part 1
Web Deployment Tool Overview
Working with Web Packages
Package Creation
Installing Packages
msdeploy.exe Usage Options
MSDeploy Providers
MSDeploy Rules
MSDeploy Parameters
–declareParam
–setParam
MSDeploy Manifest Provider
18. Web Deployment Tool, Part 2
Web Publishing Pipeline Overview
XML Document Transformations
Web Publishing Pipeline Phases
Excluding Files
Including Additional Files
Database
19. Web Deployment Tool Practical Applications
Publishing Using MSBuild
Parameterizing Packages
Using MSBuild to Parameterize the Created Package
Using Parameters.xml to Parameterize the Create Package
Using –setParamFile
Using the MSDeploy Temp Agent
Deploying Your Site from Team Build
Deploying to Multiple Destinations Using Team Build
Excluding ACLs from the Package
Synchronizing an Application to Another Server
A. New Features in MSBuild 4.0
Support for Visual C++
New Command-Line Switches
New Reserved Properties
BeforeTargets and AfterTargets
ImportGroup
Import Wildcard
Solution Import Files
Property Functions
Item Functions
Inline Tasks
Cancellable Builds
YieldDuringToolExecution
New Object Model
Debugger
B. Building Large Source Trees
C. Upgrading from Team Foundation Build 2008
Upgrade Process
Upgrade Template
D. About the Author
E. Best Practices for Software Engineering
Also See
F. Collaborative Technologies—Resources for Developers
G. For C# Developers
H. For Visual Basic Developers
Index
SPECIAL OFFER: Upgrade this ebook with O’Reilly
← Prev
Back
Next →
← Prev
Back
Next →