Resolve-MSBuild
- allow some spaces in versions #148
Support MSBuild 16.0 of VS 2019, #146.
Support remove -Verbose
, #147.
Amend help about Write-Build
, #144.
Fix wrong task info in warning records, #142.
Save checkpoints after each task and before the first, #140.
Tools
Tiny internal tweak for Show-BuildGraph.ps1, #137
Show-BuildGraph.ps1, see #136:
Add help for Set-BuildHeader
, Set-BuildFooter
.
Set-BuildFooter
in addition to Set-BuildHeader
, #125Tasks/Header
, use custom footers, too.remove
for more useful error location info.Add the robust helper remove
, the alternative to Remove-Item
, see #123
Tools
Latest
of Resolve-MSBuild
, #122Tools
viz.js
in Show-BuildGraph.ps1Show-TaskHelp
- switches are shown after other parameters.Show-TaskHelp
from Invoke-Build
.New internal tool, #117
Invoke-Build ... -WhatIf
uses the new Show-TaskHelp
.New external tool, #116
Tidy up some check failure errors, #115
Convert FormatTaskName
by Convert-psake
, #114
Allow empty lines between synopsis comments and tasks, #111.
Remove actions on dot-sourcing, #112.
Retire obsolete features:
(job TaskName -Safe)
- instead, use ?TaskName
, see #105.use VisualStudio
- not used much, not designed for VS 2017Preserve attributes of build script parameters, #109.
Amend exit codes on -Safe
in cmd: 1 on argument errors, 0 otherwise.
Add ability to use MSBuild from Visual Studio Preview, #107.
Avoid trailing \r
in task synopses extracted from block comments.
Amend the role of Done
in custom tasks. It is always called and works as finally
for a task. Handlers check for $Task.Error
if it matters.
Improve Result
on invalid arguments
Result
's variable or hashtable Value
entry is always created.Result
is not a string or hashtable.Error
.Amend Build-Parallel
Tidy up help.
?TaskName
instead of deprecated (job TaskName -Safe)
.?TaskName
in the parameter -Task
of Invoke-Build
.If
, add it to the list of invoked tasks.Build-Checkpoint
should fail if not supported WhatIf
is specified.
use VisualStudio
.New command Build-Checkpoint
replaces Invoke-Build -Checkpoint
. If you use persistent builds then change the command and parameters, see #101.
New command Build-Parallel
replaces Invoke-Builds
(mind "s"). If you use parallel builds then simply rename the command, see #100.
Normalize, test, and make $BuildRoot
constant after loading tasks (#95).
Invoke-Builds (parallel builds)
FailHard
, it tells to abort builds if any build fails.Package the module files together with scripts. As a result, the script package may be used as the module, too. This change does not affect the module package.
Retire Get-BuildVersion
. Use (Get-Module InvokeBuild).Version
instead. In theory, this change is breaking but it seems the function was not used. The standard module version is used from now on.
Fix resuming of persistent builds after failures in task -If
(#90).
Support version suffix x86 in use
and Resolve-MSBuild
(#85).
Resolve MSBuild 15 to ../amd64/MSBuild.exe on x64 (#84).
Warn about always skipped double references (#82).
Task
in the collected errors.Support script block as File
(#78).
Improved product selection logic in Resolve-MSBuild
(#77). If you use the module VSSetup
make sure it is not too old. It should support -Product *
.
property
limitations (#75).&
in exec
, it looks safer.Set-BuildHeader
for writing custom task headers.Get-BuildSynopsis
, e.g. for Set-BuildHeader
.See repo/Tasks/Header for examples of Set-BuildHeader
and Get-BuildSynopsis
.
New command requires
, the alias of Test-BuildAsset
(#73).
Rework engine variables to reduce noise on debugging (#72).
Fix incremental tasks on Mono (#69).
Improve errors on tasks check failures (#67).
Retire obsolete events defined as functions, see #66.
Use less cryptic names for internal functions (#63).
Adjust property
behaviour to PowerShell and MSBuild (#60):
Resolve-MSBuild
supports the BuildTools installation (#57).
Improve info on typical mistakes:
Improve errors on invalid script syntax (#56).
New Resolve-MSBuild.ps1 for finding MSBuild 2.0-15.0, specified or the latest. It may be used directly. Build scripts use it via the alias Resolve-MSBuild
. NuGet and PSGallery packages include this script.
The old way use <version> MSBuild
is supported and works with all versions. But the new script is used internally, Invoke-Build.ps1 alone is not enough.
Fix #54, exec
should use $global:LastExitCode
.
Use exit /B
in ib.cmd (#52).
Module help tweaks.
use
: The conventional path VisualStudio\<version>
is resolved via the registry to the Visual Studio tools directory (devenv
, mstest
, tf
).
Event blocks instead of functions, see #36.
Use exit 0
on success (#34).
Invoke-Build is cross-platform with PowerShell v6.0.0-alpha.
Build script parameters are specified as Invoke-Build dynamic parameters. The parameter Parameters
was removed. This change is breaking in some cases, see #29.
Avoided cryptic errors on invoking scripts with invalid syntax and on resuming builds with an invalid checkpoint file.
Previous release notes: V2 Release Notes