Executes the MSBuild.exe tool against the specified Visual Studio solution or project file.
Minimum PowerShell version
(c) 2016 Dan.Schroeder. All rights reserved.
This module has no dependencies.
- Added new Use32BitMsBuild parameter to allow users to force the 32-bit version of MsBuild.exe to be used instead of the 64-bit version when both are available.
Invoke-MsBuild v2 has the following breaking changes from v1:
- A hash table with several properties is returned instead of a simple $true/$false/$null value.
- The GetLogPath switch is gone and replaced with the WhatIf switch.
New features in v2 include:
- A build log file containing only build errors is created alongside the regular build log file.
- The errors build log file can be auto-launched on build failure.
- New switch has been added to show the build output in the calling scripts console window (does not work with some 3rd party consoles due to Start-Process cmdlet bug).
- A hash table containing the following properties is now returned:
+ BuildSucceeded = $true if the build passed, $false if the build failed, and $null if we are not sure.
+ BuildLogFilePath = The path to the builds log file.
+ BuildErrorsLogFilePath = The path to the builds error log file.
+ ItemToBuildFilePath = The item that MsBuild is ran against.
+ CommandUsedToBuild = The full command that is used to invoke MsBuild. This can be useful for inspecting what parameters are passed to MsBuild.exe.
+ Message = A message describing any problems that were encoutered by Invoke-MsBuild. This is typically an empty string unless something went wrong.
+ MsBuildProcess = The process that was used to execute MsBuild.exe.
Changes to make when updating from v1 to v2:
- To capture/display the build success result, you must change:
- To get the path where the log file will be created, you must change:
Invoke-MsBuild ... -GetLogPath
(Invoke-MsBuild ... -WhatIf).BuildLogFilePath
|2.1.0 (current version)||340||6/24/2016|