Your SlideShare is downloading. ×
Whats New in MSBuild 3.5 and Team Build 2008
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Whats New in MSBuild 3.5 and Team Build 2008

4,379

Published on

Published in: Business, Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
4,379
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
96
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. William Bartholomew Developer Productivity Specialist Technology One
  • 2.
    • Multi-Targeting
    • Multi-Processor
    • Registry Access
    • New Loggers
  • 3.
    • Visual Studio version no longer “strongly bound” to the .NET Framework version.
    • Upgrading Visual Studio is now less risky.
    • Allows selecting between:
      • .NET Framework 2.0
      • .NET Framework 3.0
      • .NET Framework 3.5 (“Orcas”)
    • Available from Visual Studio and MSBuild.
    • Use new MSBuild features without changing build outputs.
  • 4.
    • Toolset
      • Choose between 2.0 or 3.5
      • Set via the ToolsVersion attribute of the Project element
      • Overridable via the MSBuild command-line
    • Target Framework
      • Choose between 2.0, 3.0, or 3.5
      • Set via the TargetFrameworkVersion property
      • Overridable via the MSBuild command-line
  • 5. http://blogs.msdn.com/msbuild/archive/2006/11/03/msbuild-orcas-and-multi-targeting.aspx
  • 6.
    • Initially set from the New Project dialog.
      • Limits the set of project types available.
    • Change from the Project Properties dialog.
    • Limits items available from the Add->New Item dialog.
    • Limits available references.
    • Changing could result in warnings or errors.
    • DEMO
  • 7.
    • By default MSBuild will use what is specified in the project file.
    • You can override the Toolset (2.0 or 3.5) with:
      • /toolsversion:X.Y
      • /tv:X.Y
    • You can override the Target Framework (2.0, 3.0 or 3.5) with:
      • /p:TargetFrameworkVersion=X.Y
  • 8.
    • Need I say more?
    • MSBuild command-line:
      • Disabled by default.
      • Enabled with the /maxcpucount:X argument.
      • Shortcut is /m:X.
    • Visual Studio:
      • Enabled by default (2 processors).
      • Configurable via Tools->Options->Projects and Solutions->Build and Run.
      • DEMO
  • 9.
    • Won’t necessarily improve build performance:
      • Test with it enabled and disabled.
      • Experiment with different numbers of CPUs on machines with > 2 CPUs.
    • Optimised for performing multiple builds:
      • MSBuild processes are kept for 60 seconds to perform subsequent builds.
      • If only performing a single build disable with /nr:false.
    • MSBuild task builds sequentially by default.
      • BuildInParallel attribute (Boolean) overrides this.
  • 10.
    • Provides a way to retrieve the value of a registry key without calling a task:
      • $(Registry:<key name>[@<value name>])
      • $(Registry:HKEY_LOCAL_MACHINESOFTWAREMicrosoft.NETFramework@InstallRoot)
  • 11.
    • Logs to “msbuild.log” in the current directory.
    • /fileLogger (or /fl)
    • /fileLoggerParameters: (or /flp:)
      • LogFile=<Filename>
      • Append
      • Verbosity=<Verbosity>
      • Encoding=<Encoding>
    • /fileLoggerParameters:LogFile=MyLog.txt;Append;Verbosity=diagnostic;Encoding=UTF-8
  • 12.
    • Similar to File Logger but creates a log file per “node” (processor).
    • Uses /fileLoggerParameters to configure.
    • LogFile is used as a template to which the node id is appended.
  • 13.
    • Creating a New Build Definition
      • Workspace Mapping
      • User Definable Location
      • Retention Policies
      • Editing Experience
    • Executing Builds
      • Queuing
      • Scheduling
      • Continuous Integration
    • Command-Line
    • Notification
  • 14.
    • No longer requires WorkspaceMapping.xml file.
    • Can be specified using GUI.
    • Can copy an existing workspace.
    • Probably one of the most important settings to configure for a “large” repository.
  • 15.
    • Build definitions can now be stored anywhere in source control instead of under $/TeamBuildTypes/<BuildTypeName>.
    • Why do this?
      • Store build types directly along the projects they build.
      • Improve build reproducibility.
      • Simplify branching.
  • 16.
    • Specify how many builds should be kept by status:
      • Succeeded
      • Partially Succeeded
      • Failed
      • Stopped
    • Individual builds can be retained indefinitely.
    • Can only specify number of builds, not days.
    • Can’t be based on build quality.
  • 17.
    • Build definitions can be edited via GUI rather than via TFSBuild.proj.
    • Most settings now stored in database and placeholders put in TFSBuild.proj for backwards compatibility.
    • Can be disabled.
  • 18.
    • DEMO
  • 19.
    • Builds submitted to a busy build agent are now queued rather than failing.
    • List of build agents are defined so machine names don’t need to be entered.
    • Build agents can be disabled.
    • Can override drop folder when queuing a build.
    • Can specify priority.
    • MSBuild properties can be passed through.
  • 20.
    • DEMO
  • 21.
    • Build definitions can be scheduled to execute at a specific time on selected days.
    • Build will only execute if there are changes in the workspace.
      • In Beta 2 you can force it to always build even if there are no changes.
  • 22.
    • Automatically execute a build definition whenever a check-in occurs within its workspace.
      • Each check-in queues a new build.
    • Or, accumulate check-ins.
      • Check-ins are accumulated to reduce the number of builds.
      • User specifiable time threshold.
  • 23.
    • DEMO
  • 24.
    • Supports bulk deletion of builds.
    • Choose between starting or queuing a build (synchronous vs asynchronous).
    • Supports building specific versions of source-code rather than only the latest.
    • Can override drop location, user the build is requested by, and MSBuild properties.
    • Builds can now be stopped from within Visual Studio.
  • 25.
    • Notification tray icon to queue, monitor, and manage builds.
    • Similar to CCTray but much more powerful.
    • Will be released post-Orcas.
    • Specification available at http://www.slideshare.net/jimlamb/build-notification-applet .
  • 26.
    • “ DEMO”
    • build-notification-applet-24800.pdf

×