diff --git a/.appveyor.yml b/.appveyor.yml new file mode 100644 index 0000000..2dde0f9 --- /dev/null +++ b/.appveyor.yml @@ -0,0 +1,31 @@ +#---------------------------------# +# Build Image # +#---------------------------------# +image: Visual Studio 2017 + +#---------------------------------# +# Build Script # +#---------------------------------# +build_script: + - ps: .\build.ps1 -Target AppVeyor + +# Tests +test: off + +#---------------------------------# +# Branches to build # +#---------------------------------# +branches: + # Whitelist + only: + - develop + - master + - /release/.*/ + - /hotfix/.*/ + +#---------------------------------# +# Build Cache # +#---------------------------------# +cache: +- src\packages -> src\**\packages.config +- tools -> setup.cake diff --git a/README.md b/README.md new file mode 100644 index 0000000..ddd1f10 --- /dev/null +++ b/README.md @@ -0,0 +1,42 @@ +# Cake.ResourceHacker + +A Cake AddIn that extends Cake with [ResourceHacker](http://angusj.com/resourcehacker/) command tools. + +[![cakebuild.net](https://img.shields.io/badge/WWW-cakebuild.net-blue.svg)](http://cakebuild.net/) +[![NuGet](https://img.shields.io/nuget/v/Cake.ResourceHacker.svg)](https://www.nuget.org/packages/Cake.ResourceHacker) +[![Build status](https://ci.appveyor.com/api/projects/status/vi07dth3d1gek7ak?svg=true)](https://ci.appveyor.com/project/cakecontrib/cake-resourcehacker) + +## Important + +Supports Cake 0.30 and .NET Standard 2.0. + +## Including addin +Including addin in cake script is easy. +``` +#addin "Cake.ResourceHacker" +``` +## Usage + +Resource Hacker has to be installed and it's ResourceHacker.exe in path. + +To use the addin just add it to Cake call the aliases and configure any settings you want. + +```csharp +#addin "Cake.ResourceHacker" + +... + +// How to login using a token +Task("Add") + .Does(() => { + // or more containers at once + ResourceHackerAdd(new ResourceHackerSettings{ Open = "file path" }); + )}; +``` +Other commands follow same convention. + +This version is built against ResourceHacker 5.1.6. + +## Credits + +Brought to you by [Miha Markic](https://github.com/MihaMarkic) ([@MihaMarkic](https://twitter.com/MihaMarkic/)) and contributors. \ No newline at end of file diff --git a/build.ps1 b/build.ps1 new file mode 100644 index 0000000..bdfb32b --- /dev/null +++ b/build.ps1 @@ -0,0 +1,184 @@ +########################################################################## +# This is the Cake bootstrapper script for PowerShell. +# This file was downloaded from https://github.com/cake-build/resources +# Feel free to change this file to fit your needs. +########################################################################## + +<# +.SYNOPSIS +This is a Powershell script to bootstrap a Cake build. +.DESCRIPTION +This Powershell script will download NuGet if missing, restore NuGet tools (including Cake) +and execute your Cake build script with the parameters you provide. +.PARAMETER Script +The build script to execute. +.PARAMETER Target +The build script target to run. +.PARAMETER Configuration +The build configuration to use. +.PARAMETER Verbosity +Specifies the amount of information to be displayed. +.PARAMETER Experimental +Tells Cake to use the latest Roslyn release. +.PARAMETER WhatIf +Performs a dry run of the build script. +No tasks will be executed. +.PARAMETER Mono +Tells Cake to use the Mono scripting engine. +.PARAMETER SkipToolPackageRestore +Skips restoring of packages. +.PARAMETER ScriptArgs +Remaining arguments are added here. +.LINK +http://cakebuild.net +#> + +[CmdletBinding()] +Param( + [string]$Script = "setup.cake", + [string]$Target = "Default", + [ValidateSet("Release", "Debug")] + [string]$Configuration = "Release", + [ValidateSet("Quiet", "Minimal", "Normal", "Verbose", "Diagnostic")] + [string]$Verbosity = "Verbose", + [switch]$Experimental, + [Alias("DryRun","Noop")] + [switch]$WhatIf, + [switch]$Mono, + [switch]$SkipToolPackageRestore, + [Parameter(Position=0,Mandatory=$false,ValueFromRemainingArguments=$true)] + [string[]]$ScriptArgs +) + +[Reflection.Assembly]::LoadWithPartialName("System.Security") | Out-Null +function MD5HashFile([string] $filePath) +{ + if ([string]::IsNullOrEmpty($filePath) -or !(Test-Path $filePath -PathType Leaf)) + { + return $null + } + + [System.IO.Stream] $file = $null; + [System.Security.Cryptography.MD5] $md5 = $null; + try + { + $md5 = [System.Security.Cryptography.MD5]::Create() + $file = [System.IO.File]::OpenRead($filePath) + return [System.BitConverter]::ToString($md5.ComputeHash($file)) + } + finally + { + if ($file -ne $null) + { + $file.Dispose() + } + } +} + +Write-Host "Preparing to run build script..." + +if(!$PSScriptRoot){ + $PSScriptRoot = Split-Path $MyInvocation.MyCommand.Path -Parent +} + +$TOOLS_DIR = Join-Path $PSScriptRoot "tools" +$NUGET_EXE = Join-Path $TOOLS_DIR "nuget.exe" +$CAKE_EXE = Join-Path $TOOLS_DIR "Cake/Cake.exe" +$NUGET_URL = "https://dist.nuget.org/win-x86-commandline/latest/nuget.exe" +$PACKAGES_CONFIG = Join-Path $TOOLS_DIR "packages.config" +$PACKAGES_CONFIG_MD5 = Join-Path $TOOLS_DIR "packages.config.md5sum" + +# Should we use mono? +$UseMono = ""; +if($Mono.IsPresent) { + Write-Verbose -Message "Using the Mono based scripting engine." + $UseMono = "-mono" +} + +# Should we use the new Roslyn? +$UseExperimental = ""; +if($Experimental.IsPresent -and !($Mono.IsPresent)) { + Write-Verbose -Message "Using experimental version of Roslyn." + $UseExperimental = "-experimental" +} + +# Is this a dry run? +$UseDryRun = ""; +if($WhatIf.IsPresent) { + $UseDryRun = "-dryrun" +} + +# Make sure tools folder exists +if ((Test-Path $PSScriptRoot) -and !(Test-Path $TOOLS_DIR)) { + Write-Verbose -Message "Creating tools directory..." + New-Item -Path $TOOLS_DIR -Type directory | out-null +} + +# Make sure that packages.config exist. +if (!(Test-Path $PACKAGES_CONFIG)) { + Write-Verbose -Message "Downloading packages.config..." + try { (New-Object System.Net.WebClient).DownloadFile("http://cakebuild.net/download/bootstrapper/packages", $PACKAGES_CONFIG) } catch { + Throw "Could not download packages.config." + } +} + +# Try find NuGet.exe in path if not exists +if (!(Test-Path $NUGET_EXE)) { + Write-Verbose -Message "Trying to find nuget.exe in PATH..." + $existingPaths = $Env:Path -Split ';' | Where-Object { (![string]::IsNullOrEmpty($_)) -and (Test-Path $_) } + $NUGET_EXE_IN_PATH = Get-ChildItem -Path $existingPaths -Filter "nuget.exe" | Select -First 1 + if ($NUGET_EXE_IN_PATH -ne $null -and (Test-Path $NUGET_EXE_IN_PATH.FullName)) { + Write-Verbose -Message "Found in PATH at $($NUGET_EXE_IN_PATH.FullName)." + $NUGET_EXE = $NUGET_EXE_IN_PATH.FullName + } +} + +# Try download NuGet.exe if not exists +if (!(Test-Path $NUGET_EXE)) { + Write-Verbose -Message "Downloading NuGet.exe..." + try { + (New-Object System.Net.WebClient).DownloadFile($NUGET_URL, $NUGET_EXE) + } catch { + Throw "Could not download NuGet.exe." + } +} + +# Save nuget.exe path to environment to be available to child processed +$ENV:NUGET_EXE = $NUGET_EXE + +# Restore tools from NuGet? +if(-Not $SkipToolPackageRestore.IsPresent) { + Push-Location + Set-Location $TOOLS_DIR + + # Check for changes in packages.config and remove installed tools if true. + [string] $md5Hash = MD5HashFile($PACKAGES_CONFIG) + if((!(Test-Path $PACKAGES_CONFIG_MD5)) -Or + ($md5Hash -ne (Get-Content $PACKAGES_CONFIG_MD5 ))) { + Write-Verbose -Message "Missing or changed package.config hash..." + Remove-Item * -Recurse -Exclude packages.config,nuget.exe + } + + Write-Verbose -Message "Restoring tools from NuGet..." + $NuGetOutput = Invoke-Expression "&`"$NUGET_EXE`" install -ExcludeVersion -PreRelease -OutputDirectory `"$TOOLS_DIR`" -Source https://www.myget.org/F/cake/api/v3/index.json" + + if ($LASTEXITCODE -ne 0) { + Throw "An error occured while restoring NuGet tools." + } + else + { + $md5Hash | Out-File $PACKAGES_CONFIG_MD5 -Encoding "ASCII" + } + Write-Verbose -Message ($NuGetOutput | out-string) + Pop-Location +} + +# Make sure that Cake has been installed. +if (!(Test-Path $CAKE_EXE)) { + Throw "Could not find Cake.exe at $CAKE_EXE" +} + +# Start Cake +Write-Host "Running build script..." +Invoke-Expression "& `"$CAKE_EXE`" `"$Script`" -target=`"$Target`" -configuration=`"$Configuration`" -verbosity=`"$Verbosity`" $UseMono $UseDryRun $UseExperimental $ScriptArgs" +exit $LASTEXITCODE \ No newline at end of file diff --git a/integration-test/appbuild.cake b/integration-test/appbuild.cake new file mode 100644 index 0000000..d43a3fb --- /dev/null +++ b/integration-test/appbuild.cake @@ -0,0 +1,10 @@ +#r "../src/Cake.ResourceHacker/bin/Debug/netstandard2.0/Cake.ResourceHacker.dll" + +var target = Argument("target", "Default"); + +Task("Add") + .Does(() => { + ResourceHackerAdd(new ResourceHackerSettings{ Open = "open.exe", Save = "save.exe", Resource = "resource.ico", Mask = new Mask { Type = MaskType.IconGroup } }); + }); + +RunTarget(target); \ No newline at end of file diff --git a/integration-test/build.ps1 b/integration-test/build.ps1 new file mode 100644 index 0000000..9afe27b --- /dev/null +++ b/integration-test/build.ps1 @@ -0,0 +1,235 @@ +########################################################################## +# This is the Cake bootstrapper script for PowerShell. +# This file was downloaded from https://github.com/cake-build/resources +# Feel free to change this file to fit your needs. +########################################################################## + +<# + +.SYNOPSIS +This is a Powershell script to bootstrap a Cake build. + +.DESCRIPTION +This Powershell script will download NuGet if missing, restore NuGet tools (including Cake) +and execute your Cake build script with the parameters you provide. + +.PARAMETER Script +The build script to execute. +.PARAMETER Target +The build script target to run. +.PARAMETER Configuration +The build configuration to use. +.PARAMETER Verbosity +Specifies the amount of information to be displayed. +.PARAMETER ShowDescription +Shows description about tasks. +.PARAMETER DryRun +Performs a dry run. +.PARAMETER Experimental +Uses the nightly builds of the Roslyn script engine. +.PARAMETER Mono +Uses the Mono Compiler rather than the Roslyn script engine. +.PARAMETER SkipToolPackageRestore +Skips restoring of packages. +.PARAMETER ScriptArgs +Remaining arguments are added here. + +.LINK +https://cakebuild.net + +#> + +[CmdletBinding()] +Param( + [string]$Script = "appbuild.cake", + [ValidateSet("Add")] + [string]$Target, + [string]$Configuration, + [ValidateSet("Quiet", "Minimal", "Normal", "Verbose", "Diagnostic")] + [string]$Verbosity, + [switch]$ShowDescription, + [Alias("WhatIf", "Noop")] + [switch]$DryRun, + [switch]$Experimental, + [switch]$Mono, + [switch]$SkipToolPackageRestore, + [Parameter(Position=0,Mandatory=$false,ValueFromRemainingArguments=$true)] + [string[]]$ScriptArgs +) + +[Reflection.Assembly]::LoadWithPartialName("System.Security") | Out-Null +function MD5HashFile([string] $filePath) +{ + if ([string]::IsNullOrEmpty($filePath) -or !(Test-Path $filePath -PathType Leaf)) + { + return $null + } + + [System.IO.Stream] $file = $null; + [System.Security.Cryptography.MD5] $md5 = $null; + try + { + $md5 = [System.Security.Cryptography.MD5]::Create() + $file = [System.IO.File]::OpenRead($filePath) + return [System.BitConverter]::ToString($md5.ComputeHash($file)) + } + finally + { + if ($file -ne $null) + { + $file.Dispose() + } + } +} + +function GetProxyEnabledWebClient +{ + $wc = New-Object System.Net.WebClient + $proxy = [System.Net.WebRequest]::GetSystemWebProxy() + $proxy.Credentials = [System.Net.CredentialCache]::DefaultCredentials + $wc.Proxy = $proxy + return $wc +} + +Write-Host "Preparing to run build script..." + +if(!$PSScriptRoot){ + $PSScriptRoot = Split-Path $MyInvocation.MyCommand.Path -Parent +} + +$TOOLS_DIR = Join-Path $PSScriptRoot "tools" +$ADDINS_DIR = Join-Path $TOOLS_DIR "Addins" +$MODULES_DIR = Join-Path $TOOLS_DIR "Modules" +$NUGET_EXE = Join-Path $TOOLS_DIR "nuget.exe" +$CAKE_EXE = Join-Path $TOOLS_DIR "Cake/Cake.exe" +$NUGET_URL = "https://dist.nuget.org/win-x86-commandline/latest/nuget.exe" +$PACKAGES_CONFIG = Join-Path $TOOLS_DIR "packages.config" +$PACKAGES_CONFIG_MD5 = Join-Path $TOOLS_DIR "packages.config.md5sum" +$ADDINS_PACKAGES_CONFIG = Join-Path $ADDINS_DIR "packages.config" +$MODULES_PACKAGES_CONFIG = Join-Path $MODULES_DIR "packages.config" + +# Make sure tools folder exists +if ((Test-Path $PSScriptRoot) -and !(Test-Path $TOOLS_DIR)) { + Write-Verbose -Message "Creating tools directory..." + New-Item -Path $TOOLS_DIR -Type directory | out-null +} + +# Make sure that packages.config exist. +if (!(Test-Path $PACKAGES_CONFIG)) { + Write-Verbose -Message "Downloading packages.config..." + try { + $wc = GetProxyEnabledWebClient + $wc.DownloadFile("https://cakebuild.net/download/bootstrapper/packages", $PACKAGES_CONFIG) } catch { + Throw "Could not download packages.config." + } +} + +# Try find NuGet.exe in path if not exists +if (!(Test-Path $NUGET_EXE)) { + Write-Verbose -Message "Trying to find nuget.exe in PATH..." + $existingPaths = $Env:Path -Split ';' | Where-Object { (![string]::IsNullOrEmpty($_)) -and (Test-Path $_ -PathType Container) } + $NUGET_EXE_IN_PATH = Get-ChildItem -Path $existingPaths -Filter "nuget.exe" | Select -First 1 + if ($NUGET_EXE_IN_PATH -ne $null -and (Test-Path $NUGET_EXE_IN_PATH.FullName)) { + Write-Verbose -Message "Found in PATH at $($NUGET_EXE_IN_PATH.FullName)." + $NUGET_EXE = $NUGET_EXE_IN_PATH.FullName + } +} + +# Try download NuGet.exe if not exists +if (!(Test-Path $NUGET_EXE)) { + Write-Verbose -Message "Downloading NuGet.exe..." + try { + $wc = GetProxyEnabledWebClient + $wc.DownloadFile($NUGET_URL, $NUGET_EXE) + } catch { + Throw "Could not download NuGet.exe." + } +} + +# Save nuget.exe path to environment to be available to child processed +$ENV:NUGET_EXE = $NUGET_EXE + +# Restore tools from NuGet? +if(-Not $SkipToolPackageRestore.IsPresent) { + Push-Location + Set-Location $TOOLS_DIR + + # Check for changes in packages.config and remove installed tools if true. + [string] $md5Hash = MD5HashFile($PACKAGES_CONFIG) + if((!(Test-Path $PACKAGES_CONFIG_MD5)) -Or + ($md5Hash -ne (Get-Content $PACKAGES_CONFIG_MD5 ))) { + Write-Verbose -Message "Missing or changed package.config hash..." + Remove-Item * -Recurse -Exclude packages.config,nuget.exe + } + + Write-Verbose -Message "Restoring tools from NuGet..." + $NuGetOutput = Invoke-Expression "&`"$NUGET_EXE`" install -ExcludeVersion -OutputDirectory `"$TOOLS_DIR`"" + + if ($LASTEXITCODE -ne 0) { + Throw "An error occured while restoring NuGet tools." + } + else + { + $md5Hash | Out-File $PACKAGES_CONFIG_MD5 -Encoding "ASCII" + } + Write-Verbose -Message ($NuGetOutput | out-string) + + Pop-Location +} + +# Restore addins from NuGet +if (Test-Path $ADDINS_PACKAGES_CONFIG) { + Push-Location + Set-Location $ADDINS_DIR + + Write-Verbose -Message "Restoring addins from NuGet..." + $NuGetOutput = Invoke-Expression "&`"$NUGET_EXE`" install -ExcludeVersion -OutputDirectory `"$ADDINS_DIR`"" + + if ($LASTEXITCODE -ne 0) { + Throw "An error occured while restoring NuGet addins." + } + + Write-Verbose -Message ($NuGetOutput | out-string) + + Pop-Location +} + +# Restore modules from NuGet +if (Test-Path $MODULES_PACKAGES_CONFIG) { + Push-Location + Set-Location $MODULES_DIR + + Write-Verbose -Message "Restoring modules from NuGet..." + $NuGetOutput = Invoke-Expression "&`"$NUGET_EXE`" install -ExcludeVersion -OutputDirectory `"$MODULES_DIR`"" + + if ($LASTEXITCODE -ne 0) { + Throw "An error occured while restoring NuGet modules." + } + + Write-Verbose -Message ($NuGetOutput | out-string) + + Pop-Location +} + +# Make sure that Cake has been installed. +if (!(Test-Path $CAKE_EXE)) { + Throw "Could not find Cake.exe at $CAKE_EXE" +} + + + +# Build Cake arguments +$cakeArguments = @("$Script"); +if ($Target) { $cakeArguments += "-target=$Target" } +if ($Configuration) { $cakeArguments += "-configuration=$Configuration" } +if ($Verbosity) { $cakeArguments += "-verbosity=$Verbosity" } +if ($ShowDescription) { $cakeArguments += "-showdescription" } +if ($DryRun) { $cakeArguments += "-dryrun" } +if ($Experimental) { $cakeArguments += "-experimental" } +if ($Mono) { $cakeArguments += "-mono" } +$cakeArguments += $ScriptArgs + +# Start Cake +Write-Host "Running build script..." +&$CAKE_EXE $cakeArguments +exit $LASTEXITCODE diff --git a/integration-test/tools/Cake.CoreCLR/.signature.p7s b/integration-test/tools/Cake.CoreCLR/.signature.p7s new file mode 100644 index 0000000..f1584c8 Binary files /dev/null and b/integration-test/tools/Cake.CoreCLR/.signature.p7s differ diff --git a/integration-test/tools/Cake.CoreCLR/Cake.Common.xml b/integration-test/tools/Cake.CoreCLR/Cake.Common.xml new file mode 100644 index 0000000..2142dd8 --- /dev/null +++ b/integration-test/tools/Cake.CoreCLR/Cake.Common.xml @@ -0,0 +1,29164 @@ + + + + Cake.Common + + + + + Contains functionality related to arguments. + + + + + Determines whether or not the specified argument exist. + + The context. + The argument name. + Whether or not the specified argument exist. + + This sample shows how to call the method. + + var argumentName = "myArgument"; + //Cake.exe .\hasargument.cake -myArgument="is specified" + if (HasArgument(argumentName)) + { + Information("{0} is specified", argumentName); + } + //Cake.exe .\hasargument.cake + else + { + Warning("{0} not specified", argumentName); + } + + + + + + Gets an argument and throws if the argument is missing. + + The argument type. + The context. + The argument name. + The value of the argument. + + + //Cake.exe .\argument.cake -myArgument="is valid" -loopCount = 5 + Information("Argument {0}", Argument<string>("myArgument")); + var loopCount = Argument<int>("loopCount"); + for(var index = 0;index<loopCount; index++) + { + Information("Index {0}", index); + } + + + Argument value is null. + is null. + + + + Gets an argument and returns the provided if the argument is missing. + + The argument type. + The context. + The argument name. + The value to return if the argument is missing. + The value of the argument if it exist; otherwise . + + + //Cake.exe .\argument.cake -myArgument="is valid" -loopCount = 5 + Information("Argument {0}", Argument<string>("myArgument", "is NOT valid")); + var loopCount = Argument<int>("loopCount", 10); + for(var index = 0;index<loopCount; index++) + { + Information("Index {0}", index); + } + + + + + + Base class used to provide information about the AppVeyor environment. + + + + + Initializes a new instance of the class. + + The environment. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + AppVeyor AddMessage categories + + + + + Informational message + + + + + Warning message + + + + + Error message + + + + + Responsible for communicating with AppVeyor. + + + + + Gets a value indicating whether the current build is running on AppVeyor. + + + true if the current build is running on AppVeyor.; otherwise, false. + + Via BuildSystem + + + if (BuildSystem.AppVeyor.IsRunningOnAppVeyor) + { + Information("Running on AppVeyor"); + } + else + { + Information("Not running on AppVeyor"); + } + + + Via AppVeyor + + + if (AppVeyor.IsRunningOnAppVeyor) + { + Information("Running on AppVeyor"); + } + else + { + Information("Not running on AppVeyor"); + } + + + + + + Gets the AppVeyor environment. + + + The AppVeyor environment. + + Via BuildSystem + + + if (BuildSystem.AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"Environment: + ApiUrl: {0} + Configuration: {1} + JobId: {2} + JobName: {3} + Platform: {4} + ScheduledBuild: {5}", + BuildSystem.AppVeyor.Environment.ApiUrl, + BuildSystem.AppVeyor.Environment.Configuration, + BuildSystem.AppVeyor.Environment.JobId, + BuildSystem.AppVeyor.Environment.JobName, + BuildSystem.AppVeyor.Environment.Platform, + BuildSystem.AppVeyor.Environment.ScheduledBuild + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + Via AppVeyor + + + if (AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"Environment: + ApiUrl: {0} + Configuration: {1} + JobId: {2} + JobName: {3} + Platform: {4} + ScheduledBuild: {5}", + AppVeyor.Environment.ApiUrl, + AppVeyor.Environment.Configuration, + AppVeyor.Environment.JobId, + AppVeyor.Environment.JobName, + AppVeyor.Environment.Platform, + AppVeyor.Environment.ScheduledBuild + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + + + + Initializes a new instance of the class. + + The environment. + The process runner. + The cake log. + + + + Uploads an AppVeyor artifact. + + The file path of the artifact to upload. + + + + Uploads an AppVeyor artifact. + + The file path of the artifact to upload. + The settings to apply when uploading an artifact + + + + Uploads an AppVeyor artifact. + + The file path of the artifact to upload. + The settings to apply when uploading an artifact + + + + Uploads test results XML file to AppVeyor. Results type can be one of the following: mstest, xunit, nunit, nunit3, junit. + + The file path of the test results XML to upload. + The results type. Can be mstest, xunit, nunit, nunit3 or junit. + + + + Updates the build version. + + The new build version. + Via BuildSystem + + + if (BuildSystem.AppVeyor.IsRunningOnAppVeyor) + { + BuildSystem.AppVeyor.UpdateBuildVersion("2.0.0.0"); + } + else + { + Information("Not running on AppVeyor"); + } + + + Via AppVeyor + + + if (AppVeyor.IsRunningOnAppVeyor) + { + AppVeyor.UpdateBuildVersion("2.0.0.0"); + } + else + { + Information("Not running on AppVeyor"); + } + + + + + + Adds a message to the AppVeyor build. Messages can be categorised as: Information, Warning or Error + + A short message to display + The category of the message + Additional message details + Via BuildSystem + + + if (BuildSystem.AppVeyor.IsRunningOnAppVeyor) + { + BuildSystem.AppVeyor.AddMessage( + "This is a error message.", + AppVeyorMessageCategoryType.Error, + "Error details." + ); + + BuildSystem.AppVeyor.AddMessage( + "This is a information message.", + AppVeyorMessageCategoryType.Information, + "Information details." + ); + + BuildSystem.AppVeyor.AddMessage( + "This is a warning message.", + AppVeyorMessageCategoryType.Warning, + "Warning details." + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + Via AppVeyor + + + if (AppVeyor.IsRunningOnAppVeyor) + { + AppVeyor.AddMessage( + "This is a error message.", + AppVeyorMessageCategoryType.Error, + "Error details." + ); + + AppVeyor.AddMessage( + "This is a information message.", + AppVeyorMessageCategoryType.Information, + "Information details." + ); + + AppVeyor.AddMessage( + "This is a warning message.", + AppVeyorMessageCategoryType.Warning, + "Warning details." + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + + + + AddMessage extension methods for the IAppVeyorProvider + + + + + Adds an informational message to the AppVeyor build log + + The AppVeyor provider + The message + The args + + + + Adds a warning message to the AppVeyor build log + + The AppVeyor provider + The message + The args + + + + Adds a warning message to the AppVeyor build log + + The AppVeyor provider + The message + The args + + + + Adds a warning message to the AppVeyor build log + + The AppVeyor provider + The message + The exception + + + + Provides the known values for the AppVeyor test results types. + + + + + MSTest test results. + + + + + XUnit test results. + + + + + NUnit test results. + + + + + NUnit v3 test results. + + + + + JUnit test results. + + + + + Appveyor upload artifacts settings + + + + + Gets or sets a value indicating the type of artifact being uploaded to AppVeyor. + + + + + Gets or sets a value indicating a deployment name to set for the uploaded artifact + + + + + Sets the type of artifact being uploaded to AppVeyor + + The type of artifact being uploaded + The settings + + + + Sets the deployment name + + The deployment name to attach to the artifact, required when using the AppVeyor deployment agent. should not have any spaces + The settings + + + + Provides the known artifact upload types for the AppVeyor + + + + + Automatically deploy artifact type + + + + + The artifact is a web deploy package (.zip) + + + + + The artifact is a NuGet package (.nupkg) + + + + + Provides AppVeyor build information for a current build. + + + + + Gets the path to the clone directory. + + + The path to the clone directory. + + + + + Gets the AppVeyor unique build ID. + + + The AppVeyor unique build ID. + + + + + Gets the build number. + + + The build number. + + + + + Gets the build version. + + + The build version. + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides AppVeyor commit information for a current build. + + + + + Gets commit ID (SHA). + + + The commit ID (SHA). + + + + + Gets the commit author's name. + + + The commit author's name. + + + + + Gets the commit author's email address. + + + The commit author's email address. + + + + + Gets the commit date/time. + + + The commit date/time. + + + + + Gets the commit message. + + + The commit message. + + + + + Gets the rest of commit message after line break (if exists). + + + The rest of commit message after line break (if exists). + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides AppVeyor environment information for a current build. + + + + + Gets the AppVeyor build agent API URL. + + + The AppVeyor build agent API URL. + + Via BuildSystem + + + if (BuildSystem.AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"API URL:{0}, + BuildSystem.AppVeyor.Environment.ApiUrl + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + Via AppVeyor + + + if (AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"API URL:{0}, + AppVeyor.Environment.ApiUrl + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + + + + Gets the AppVeyor unique job ID. + + + The AppVeyor unique job ID. + + Via BuildSystem + + + if (BuildSystem.AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"Job Id:{0}, + BuildSystem.AppVeyor.Environment.JobId + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + Via AppVeyor + + + if (AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"Job Id:{0}, + AppVeyor.Environment.JobId + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + + + + Gets the AppVeyor Job Name. + + + The AppVeyor Job Name. + + Via BuildSystem + + + if (BuildSystem.AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"Job Name:{0}, + BuildSystem.AppVeyor.Environment.JobName + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + Via AppVeyor + + + if (AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"Job Name:{0}, + AppVeyor.Environment.JobName + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + + + + Gets a value indicating whether the build runs by scheduler. + + + true if the build runs by scheduler; otherwise, false. + + Via BuildSystem + + + if (BuildSystem.AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"Scheduled Build:{0}, + BuildSystem.AppVeyor.Environment.ScheduledBuild + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + Via AppVeyor + + + if (AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"Scheduled Build:{0}, + AppVeyor.Environment.ScheduledBuild + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + + + + Gets the platform name set on build tab of project settings (or through platform parameter in appveyor.yml). + + + The platform name set on build tab of project settings (or through platform parameter in appveyor.yml). + + Via BuildSystem + + + if (BuildSystem.AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"Platform:{0}, + BuildSystem.AppVeyor.Environment.Platform + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + Via AppVeyor + + + if (AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"Platform:{0}, + AppVeyor.Environment.Platform + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + + + + Gets the configuration name set on build tab of project settings (or through configuration parameter in appveyor.yml). + + + The configuration name set on build tab of project settings (or through configuration parameter in appveyor.yml). + + Via BuildSystem + + + if (BuildSystem.AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"Configuration:{0}, + BuildSystem.AppVeyor.Environment.Configuration + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + Via AppVeyor + + + if (AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"Configuration:{0}, + AppVeyor.Environment.Configuration + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + + + + Gets AppVeyor project information. + + + The AppVeyor project information. + + Via BuildSystem + + + if (BuildSystem.AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"Project: + Id: {0} + Name: {1} + Slug: {2}", + BuildSystem.AppVeyor.Environment.Project.Id, + BuildSystem.AppVeyor.Environment.Project.Name, + BuildSystem.AppVeyor.Environment.Project.Slug + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + Via AppVeyor + + + // via appveyor + if (AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"Project: + Id: {0} + Name: {1} + Slug: {2}", + AppVeyor.Environment.Project.Id, + AppVeyor.Environment.Project.Name, + AppVeyor.Environment.Project.Slug + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + + + + Gets AppVeyor build information. + + + The AppVeyor build information. + + Via BuildSystem + + + if (BuildSystem.AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"Build: + Folder: {0} + Id: {1} + Number: {2} + Version: {3}", + BuildSystem.AppVeyor.Environment.Build.Folder, + BuildSystem.AppVeyor.Environment.Build.Id, + BuildSystem.AppVeyor.Environment.Build.Number, + BuildSystem.AppVeyor.Environment.Build.Version + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + Via AppVeyor + + + if (AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"Build: + Folder: {0} + Id: {1} + Number: {2} + Version: {3}", + AppVeyor.Environment.Build.Folder, + AppVeyor.Environment.Build.Id, + AppVeyor.Environment.Build.Number, + AppVeyor.Environment.Build.Version + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + + + + Gets AppVeyor pull request information. + + + The AppVeyor pull request information. + + Via BuildSystem + + + if (BuildSystem.AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"PullRequest: + IsPullRequest: {0} + Number: {1} + Title: {2}", + BuildSystem.AppVeyor.Environment.PullRequest.IsPullRequest, + BuildSystem.AppVeyor.Environment.PullRequest.Number, + BuildSystem.AppVeyor.Environment.PullRequest.Title + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + Via AppVeyor + + + if (AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"PullRequest: + IsPullRequest: {0} + Number: {1} + Title: {2}", + AppVeyor.Environment.PullRequest.IsPullRequest, + AppVeyor.Environment.PullRequest.Number, + AppVeyor.Environment.PullRequest.Title + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + + + + Gets AppVeyor repository information. + + + The AppVeyor repository information. + + Via BuildSystem + + + if (BuildSystem.AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"Repository: + Branch: {0} + Name: {1} + Provider: {2} + Scm: {3}", + BuildSystem.AppVeyor.Environment.Repository.Branch, + BuildSystem.AppVeyor.Environment.Repository.Name, + BuildSystem.AppVeyor.Environment.Repository.Provider, + BuildSystem.AppVeyor.Environment.Repository.Scm + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + Via AppVeyor + + + if (AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"Repository: + Branch: {0} + Name: {1} + Provider: {2} + Scm: {3}", + AppVeyor.Environment.Repository.Branch, + AppVeyor.Environment.Repository.Name, + AppVeyor.Environment.Repository.Provider, + AppVeyor.Environment.Repository.Scm + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides AppVeyor project information for a current build. + + + + + Gets the AppVeyor unique project ID. + + + The AppVeyor unique project ID. + + + + + Gets the project name. + + + The project name. + + + + + Gets the project slug (as seen in project details URL). + + + The project slug (as seen in project details URL). + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides AppVeyor pull request information for a current build. + + + + + Gets a value indicating whether the current build was started by a pull request. + + + true if the current build was started by a pull request; otherwise, false. + + + + + Gets the GitHub pull request number. + + + The GitHub pull request number. + + + + + Gets the GitHub pull request title. + + + The GitHub pull request title. + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides AppVeyor repository information for a current build. + + + + + Gets the repository provider. + + + github + + + bitbucket + + + kiln + + + vso + + + gitlab + + + + + The repository provider. + + + + + Gets the revision control system. + + + git + + + mercurial + + + + + The revision control system. + + + + + Gets the repository name in format owner-name/repo-name. + + + The repository name. + + + + + Gets the build branch. For pull request commits it is base branch PR is merging into. + + + The build branch. + + + + + Gets the tag information for the build. + + + The tag information for the build. + + Via BuildSystem + + + if (BuildSystem.AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"Repository: + IsTag: {0} + Name: {1}", + BuildSystem.AppVeyor.Environment.Repository.Tag.IsTag, + BuildSystem.AppVeyor.Environment.Repository.Tag.Name + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + Via AppVeyor + + + if (AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"Repository: + IsTag: {0} + Name: {1}", + AppVeyor.Environment.Repository.Tag.IsTag, + AppVeyor.Environment.Repository.Tag.Name + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + + + + Gets the commit information for the build. + + + The commit information for the build. + + Via BuildSystem + + + if (BuildSystem.AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"Repository: + Author: {0} + Email: {1} + ExtendedMessage: {2} + Id: {3} + Message: {4} + Timestamp: {5}", + BuildSystem.AppVeyor.Environment.Repository.Commit.Author, + BuildSystem.AppVeyor.Environment.Repository.Commit.Email, + BuildSystem.AppVeyor.Environment.Repository.Commit.ExtendedMessage, + BuildSystem.AppVeyor.Environment.Repository.Commit.Id, + BuildSystem.AppVeyor.Environment.Repository.Commit.Message, + BuildSystem.AppVeyor.Environment.Repository.Commit.Timestamp + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + Via AppVeyor + + + if (AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"Repository: + Author: {0} + Email: {1} + ExtendedMessage: {2} + Id: {3} + Message: {4} + Timestamp: {5}", + AppVeyor.Environment.Repository.Commit.Author, + AppVeyor.Environment.Repository.Commit.Email, + AppVeyor.Environment.Repository.Commit.ExtendedMessage, + AppVeyor.Environment.Repository.Commit.Id, + AppVeyor.Environment.Repository.Commit.Message, + AppVeyor.Environment.Repository.Commit.Timestamp + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides AppVeyor tag information for a current build. + + + + + Gets a value indicating whether build was started by pushed tag. + + + true if build was started by pushed tag; otherwise, false. + + + + + Gets the name for builds started by tag; otherwise this variable is undefined. + + + The name of the tag. + + + + + Initializes a new instance of the class. + + The environment. + + + + This namespace contain types + representing data used for interaction with AppVeyor. + + + + + Represents a service that communicates with AppVeyor. + + + + + Gets a value indicating whether the current build is running on AppVeyor. + + + true if the current build is running on AppVeyor.; otherwise, false. + + Via BuildSystem + + + if (BuildSystem.AppVeyor.IsRunningOnAppVeyor) + { + Information("Running on AppVeyor"); + } + else + { + Information("Not running on AppVeyor"); + } + + + Via AppVeyor + + + if (AppVeyor.IsRunningOnAppVeyor) + { + Information("Running on AppVeyor"); + } + else + { + Information("Not running on AppVeyor"); + } + + + + + + Gets the AppVeyor environment. + + + The AppVeyor environment. + + Via BuildSystem + + + if (BuildSystem.AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"Environment: + ApiUrl: {0} + Configuration: {1} + JobId: {2} + JobName: {3} + Platform: {4} + ScheduledBuild: {5}", + BuildSystem.AppVeyor.Environment.ApiUrl, + BuildSystem.AppVeyor.Environment.Configuration, + BuildSystem.AppVeyor.Environment.JobId, + BuildSystem.AppVeyor.Environment.JobName, + BuildSystem.AppVeyor.Environment.Platform, + BuildSystem.AppVeyor.Environment.ScheduledBuild + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + Via AppVeyor + + + if (AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"Environment: + ApiUrl: {0} + Configuration: {1} + JobId: {2} + JobName: {3} + Platform: {4} + ScheduledBuild: {5}", + AppVeyor.Environment.ApiUrl, + AppVeyor.Environment.Configuration, + AppVeyor.Environment.JobId, + AppVeyor.Environment.JobName, + AppVeyor.Environment.Platform, + AppVeyor.Environment.ScheduledBuild + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + + + + Uploads an AppVeyor artifact. + + The file path of the artifact to upload. + + + + Uploads an AppVeyor artifact. + + The file path of the artifact to upload. + The settings to apply when uploading an artifact + + + + Uploads an AppVeyor artifact. + + The file path of the artifact to upload. + The settings to apply when uploading an artifact + + + + Uploads test results XML file to AppVeyor. Results type can be one of the following: mstest, xunit, nunit, nunit3, junit. + + The file path of the test results XML to upload. + The results type. Can be mstest, xunit, nunit, nunit3 or junit. + + + + Updates the build version. + + The new build version. + + + + Adds a message to the AppVeyor build log. Messages can be categorised as: Information, Warning or Error + + A short message to display + The category of the message + Additional message details + Via BuildSystem + + + if (BuildSystem.AppVeyor.IsRunningOnAppVeyor) + { + BuildSystem.AppVeyor.AddMessage( + "This is a error message.", + AppVeyorMessageCategoryType.Error, + "Error details." + ); + + BuildSystem.AppVeyor.AddMessage( + "This is a information message.", + AppVeyorMessageCategoryType.Information, + "Information details." + ); + + BuildSystem.AppVeyor.AddMessage( + "This is a warning message.", + AppVeyorMessageCategoryType.Warning, + "Warning details." + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + Via AppVeyor + + + if (AppVeyor.IsRunningOnAppVeyor) + { + AppVeyor.AddMessage( + "This is a error message.", + AppVeyorMessageCategoryType.Error, + "Error details." + ); + + AppVeyor.AddMessage( + "This is a information message.", + AppVeyorMessageCategoryType.Information, + "Information details." + ); + + AppVeyor.AddMessage( + "This is a warning message.", + AppVeyorMessageCategoryType.Warning, + "Warning details." + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + + + + This namespace contain types used + to interact with AppVeyor. + + + + + Base class used to provide information about the Bamboo environment. + + + + + Initializes a new instance of the class. + + The environment. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Responsible for communicating with Bamboo. + + + + + Initializes a new instance of the class. + + The environment. + + + + Gets a value indicating whether the current build is running on Bamboo. + + + true if the current build is running on Bamboo.; otherwise, false. + + + + + Gets the Bamboo environment. + + + The Bamboo environment. + + + + + Provides Bamboo build information for a current build. + + + + + Gets the path to the clone directory. + + + The path to the clone directory. + + + + + Gets the build number. + + + The build number. + + + + + Gets the job key for the current job, in the form PROJECT-PLAN-JOB, e.g. BAM-MAIN-JOBX + + + The Bamboo Build Key. + + + + + Gets the Bamboo Build Result Key. + The result key when this job executes, in the form PROJECT-PLAN-JOB-BUILD e.g. BAM-BOO-JOB1-8, where '8' is the build number. + For deployment projects this variable will not have the JOB component e.g. PROJ-TP-6. + + + The Build Result Key. + + + + + Gets the URL of the result in Bamboo once the job has finished executing. + + + The Bamboo build result url. + + + + + Gets the time when build was started in ISO 8601 format e.g. 2010-01-01T01:00:00.000+01:00. + + + The Bamboo build timestamp. + + + + + Gets Bamboo custom build information. + + + The Bamboo custom build information. + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides Bamboo commit information for a current build. + + + + + Gets the revision use to build this release. Format depends on the VCS used. + + + The commit ID (SHA). + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides Bamboo tag information for a current build. + + + + + Gets a value indicating whether build was started by pushed tag. + + + true if build was started by pushed tag; otherwise, false. + + + + + Gets the name for builds started by tag; otherwise this variable is undefined. + + + The name of the tag. + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides Bamboo environment information for a current build. + + + + + Gets Bamboo plan information. + + + The Bamboo plan information. + + Via BuildSystem + + + if (BuildSystem.Bamboo.IsRunningOnBamboo) + { + Information( + @"Build: + Plan Name: {0} + Short Plan Name: {1} + Plan Key: {2} + Short Plan Key: {3} + Short Job Key: {4} + Short Job Name: {5}", + BuildSystem.Bamboo.Environment.Plan.PlanName, + BuildSystem.Bamboo.Environment.Plan.ShortPlanName, + BuildSystem.Bamboo.Environment.Plan.PlanKey, + BuildSystem.Bamboo.Environment.Plan.ShortPlanKey, + BuildSystem.Bamboo.Environment.Plan.ShortJobKey, + BuildSystem.Bamboo.Environment.Plan.ShortJobName + ); + } + else + { + Information("Not running on Bamboo"); + } + + + Via Bamboo + + + if (Bamboo.IsRunningOnBamboo) + { + Information( + @"Build: + Plan Name: {0} + Short Plan Name: {1} + Plan Key: {2} + Short Plan Key: {3} + Short Job Key: {4} + Short Job Name: {5}", + Bamboo.Environment.Plan.PlanName, + Bamboo.Environment.Plan.ShortPlanName, + Bamboo.Environment.Plan.PlanKey, + Bamboo.Environment.Plan.ShortPlanKey, + Bamboo.Environment.Plan.ShortJobKey, + Bamboo.Environment.Plan.ShortJobName + ); + } + else + { + Information("Not running on Bamboo"); + } + + + + + + Gets Bamboo build information. + + + The Bamboo build information. + + Via BuildSystem + + + if (BuildSystem.Bamboo.IsRunningOnBamboo) + { + Information( + @"Build: + Folder: {0} + Number: {1} + Build Key: {2} + Result Key: {3} + Results Url: {4} + Build Timestamp: {5} + Is Custom: {6} + Revision Name: {7}", + BuildSystem.Bamboo.Environment.Build.Folder, + BuildSystem.Bamboo.Environment.Build.Number, + BuildSystem.Bamboo.Environment.Build.BuildKey, + BuildSystem.Bamboo.Environment.Build.ResultKey, + BuildSystem.Bamboo.Environment.Build.ResultsUrl, + BuildSystem.Bamboo.Environment.Build.BuildTimestamp, + BuildSystem.Bamboo.Environment.Build.CustomBuild.IsCustomBuld, + BuildSystem.Bamboo.Environment.Build.CustomBuild.RevisionName + ); + } + else + { + Information("Not running on Bamboo"); + } + + + Via Bamboo + + + if (Bamboo.IsRunningOnBamboo) + { + Information( + @"Build: + Folder: {0} + Number: {1} + Build Key: {2} + Result Key: {3} + Results Url: {4} + Build Timestamp: {5} + Is Custom: {6} + Revision Name: {7}", + Bamboo.Environment.Build.Folder, + Bamboo.Environment.Build.Number, + Bamboo.Environment.Build.BuildKey, + Bamboo.Environment.Build.ResultKey, + Bamboo.Environment.Build.ResultsUrl, + Bamboo.Environment.Build.BuildTimestamp, + Bamboo.Environment.Build.CustomBuild.IsCustomBuld, + Bamboo.Environment.Build.CustomBuild.RevisionName + ); + } + else + { + Information("Not running on Bamboo"); + } + + + + + + Gets Bamboo repository information. + + + The Bamboo repository information. + + Via BuildSystem + + + if (BuildSystem.Bamboo.IsRunningOnBamboo) + { + Information( + @"Repository: + Branch: {0} + Name: {1} + Repository Revision: {2} + Scm: {3}", + BuildSystem.Bamboo.Environment.Repository.Branch, + BuildSystem.Bamboo.Environment.Repository.Name, + BuildSystem.Bamboo.Environment.Repository.Commit.RepositoryRevision, + BuildSystem.Bamboo.Environment.Repository.Scm + ); + } + else + { + Information("Not running on Bamboo"); + } + + + Via Bamboo + + + if (Bamboo.IsRunningOnBamboo) + { + Information( + @"Repository: + Branch: {0} + Name: {1} + Repository Revision: {2} + Scm: {3}", + Bamboo.Environment.Repository.Branch, + Bamboo.Environment.Repository.Name, + Bamboo.Environment.Repository.Commit.RepositoryRevision, + Bamboo.Environment.Repository.Scm + ); + } + else + { + Information("Not running on Bamboo"); + } + + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides Bamboo project information for a current build. + + + + + Gets the Bamboo Plan Name + + + The Bamboo Plan Name. + + + + + Gets the Bamboo short Plan Name + + + The Bamboo Plan Name in its short form. + + + + + Gets the key of the current plan, in the form PROJECT-PLAN, e.g. BAM-MAIN + + + The project name. + + + + + Gets the Bamboo short Plan Key. + + + The Bamboo Plan Key in its short form. + + + + + Gets the Bamboo short job key. + + + The Bamboo job key in its short form. + + + + + Gets the Bamboo short Job Name. + + + The Bamboo Job Name in its short form. + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides Bamboo repository information for a current build. + + + + + Gets the revision control system. + + + Subversion + + + CVS + + + Perforce + + + Git + + + Mercurial + + + + + The revision control system. + + + + + Gets the repository name as named in Bamboo + + + The bamboo repository name. + + + + + Gets the build branch. + + + The build branch. + + + + + Gets the commit information for the build. + + + The commit information for the build. + + + + + Initializes a new instance of the class. + + The environment. + + + + Represents a Bamboo provider. + + + + + Gets a value indicating whether the current build is running on Bamboo. + + + true if the current build is running on Bamboo; otherwise, false. + + + + + Gets the Bamboo environment. + + + The Bamboo environment. + + + + + Base class used to provide information about the Bitbucket Pipelines environment. + + + + + Initializes a new instance of the class. + + The environment. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Responsible for communicating with Pipelines. + + + + + Gets a value indicating whether the current build is running on Pipelines. + + + true if the current build is running on Pipelines; otherwise, false. + + + + + Gets the Pipelines environment. + + + The Pipelines environment. + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides Bitbucket Pipelines environment information for the current build. + + + + + Gets Bitbucket Pipelines repository information. + + + The repository. + + Via BuildSystem + + + if (BuildSystem.BitbucketPipelines.IsRunningOnBitbucketPipelines) + { + Information( + @"Repository: + Branch: {0} + Tag: {1} + Commit: {2} + Repo Owner: {3} + Repo Slug: {4}", + BuildSystem.BitbucketPipelines.Environment.Repository.Branch, + BuildSystem.BitbucketPipelines.Environment.Repository.Tag, + BuildSystem.BitbucketPipelines.Environment.Repository.Commit, + BuildSystem.BitbucketPipelines.Environment.Repository.RepoOwner, + BuildSystem.BitbucketPipelines.Environment.Repository.RepoSlug + ); + } + else + { + Information("Not running on BitbucketPipelines"); + } + + + Via BitbucketPipelines + + + if (BitbucketPipelines.IsRunningOnBitbucketPipelines) + { + Information( + @"Repository: + Branch: {0} + Tag: {1} + Commit: {2} + Repo Owner: {3} + Repo Slug: {4}", + BitbucketPipelines.Environment.Repository.Branch, + BitbucketPipelines.Environment.Repository.Tag, + BitbucketPipelines.Environment.Repository.Commit, + BitbucketPipelines.Environment.Repository.RepoOwner, + BitbucketPipelines.Environment.Repository.RepoSlug + ); + } + else + { + Information("Not running on BitbucketPipelines"); + } + + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides Bitbucket Pipelines repository information for the current build. + + + + + Gets the branch on which the build was kicked off. This value is only available on branches. + + Note: and are mutually exclusive. If you use both, only one will have a value. + + The SCM branch. + + + + + Gets the tag on which the build was kicked off. This value is only available when tagged. + + Note: and are mutually exclusive. If you use both, only one will have a value. + + The SCM tag. + + + + + Gets the commit hash of a commit that kicked off the build. + + + The SCM commit. + + + + + Gets the name of the account in which the repository lives. + + + The repository owner account. + + + + + Gets the URL-friendly version of a repository name. + + + The URL-friendly repository name. + + + + + Initializes a new instance of the class. + + The environment. + + + + Represents a Bitrise provider. + + + + + Gets a value indicating whether the current build is running on Bitbucket Pipelines. + + + true if the current build is running on Bitbucket Pipelines; otherwise, false. + + + + + Gets the Bitbucket Pipelines environment. + + + The Bitbucket Pipelines environment. + + + + + Base class used to provide information about the Bamboo environment. + + + + + Initializes a new instance of the class. + + The environment. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Responsible for communicating with Bitrise. + + + + + Gets a value indicating whether the current build is running on Bitrise. + + + true if the current build is running on Bitrise; otherwise, false. + + + + + Gets the Bitrise environment. + + + The Bamboo environment. + + + + + Initializes a new instance of the class. + + The environment. + The process runner. + + + + Sets and environment variable that can be used in next steps on Bitrise + + The variable. + The value. + + + + Provides Bitrise application information for the current build. + + + + + Gets the application title. + + + The application title. + + + + + Gets the application URL. + + + The application URL. + + + + + Gets the application slug. + + + The application slug. + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides Bitrise build information for the current build. + + + + + Gets the build number. + + + The build number. + + + + + Gets the build URL. + + + The build URL. + + + + + Gets the build slug. + + + The build slug. + + + + + Gets the build trigger timestamp. + + + The build trigger timestamp. + + + + + Gets a value indicating whether the build is passing. + + + true if [build status]; otherwise, false. + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides Bitrise directory information for the current build. + + + + + Gets the source directory. + + + The source directory. + + + + + Gets the deploy directory. + + + The deploy directory. + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides Bitrise environment information for the current build. + + + + + Gets Bitrise application information. + + + The application. + + Via BuildSystem + + + if (BuildSystem.Bitrise.IsRunningOnBitrise) + { + Information( + @"Application: + Title: {0} + Url: {1} + Slug: {2}", + BuildSystem.Bitrise.Environment.Application.ApplicationTitle, + BuildSystem.Bitrise.Environment.Application.ApplicationUrl, + BuildSystem.Bitrise.Environment.Application.AppSlug + ); + } + else + { + Information("Not running on Bitrise"); + } + + + Via Bitrise + + + if (Bitrise.IsRunningOnBitrise) + { + Information( + @"Application: + Title: {0} + Url: {1} + Slug: {2}", + Bitrise.Environment.Application.ApplicationTitle, + Bitrise.Environment.Application.ApplicationUrl, + Bitrise.Environment.Application.AppSlug + ); + } + else + { + Information("Not running on Bitrise"); + } + + + + + + Gets Bitrise build information. + + + The build. + + Via BuildSystem + + + if (BuildSystem.Bitrise.IsRunningOnBitrise) + { + Information( + @"Build: + Build Number: {0} + Build Url: {1} + Build Slug: {2} + Build Trigger Timestamp: {3} + Build Status: {4}", + BuildSystem.Bitrise.Environment.Build.BuildNumber, + BuildSystem.Bitrise.Environment.Build.BuildUrl, + BuildSystem.Bitrise.Environment.Build.BuildSlug, + BuildSystem.Bitrise.Environment.Build.BuildTriggerTimestamp, + BuildSystem.Bitrise.Environment.Build.BuildStatus + ); + } + else + { + Information("Not running on Bitrise"); + } + + + Via Bitrise + + + if (Bitrise.IsRunningOnBitrise) + { + Information( + @"Build: + Build Number: {0} + Build Url: {1} + Build Slug: {2} + Build Trigger Timestamp: {3} + Build Status: {4}", + Bitrise.Environment.Build.BuildNumber, + Bitrise.Environment.Build.BuildUrl, + Bitrise.Environment.Build.BuildSlug, + Bitrise.Environment.Build.BuildTriggerTimestamp, + Bitrise.Environment.Build.BuildStatus + ); + } + else + { + Information("Not running on Bitrise"); + } + + + + + + Gets Bitrise directory information. + + + The directory. + + Via BuildSystem + + + if (BuildSystem.Bitrise.IsRunningOnBitrise) + { + Information( + @"Directory: + Source Directory: {0} + Deploy Directory: {1}", + BuildSystem.Bitrise.Environment.Directory.SourceDirectory, + BuildSystem.Bitrise.Environment.Directory.DeployDirectory + ); + } + else + { + Information("Not running on Bitrise"); + } + + + Via Bitrise + + + if (Bitrise.IsRunningOnBitrise) + { + Information( + @"Directory: + Source Directory: {0} + Deploy Directory: {1}", + Bitrise.Environment.Directory.SourceDirectory, + Bitrise.Environment.Directory.DeployDirectory + ); + } + else + { + Information("Not running on Bitrise"); + } + + + + + + Gets Bitrise provisioning information. + + + The provisioning. + + Via BuildSystem + + + if (BuildSystem.Bitrise.IsRunningOnBitrise) + { + Information( + @"Provisioning: + Provision Url: {0} + Certificate Url: {1} + Certificate Passphrase: {2}", + BuildSystem.Bitrise.Environment.Provisioning.ProvisionUrl, + BuildSystem.Bitrise.Environment.Provisioning.CertificateUrl, + BuildSystem.Bitrise.Environment.Provisioning.CertificatePassphrase + ); + } + else + { + Information("Not running on Bitrise"); + } + + + Via Bitrise + + + if (Bitrise.IsRunningOnBitrise) + { + Information( + @"Provisioning: + Provision Url: {0} + Certificate Url: {1} + Certificate Passphrase: {2}", + Bitrise.Environment.Provisioning.ProvisionUrl, + Bitrise.Environment.Provisioning.CertificateUrl, + Bitrise.Environment.Provisioning.CertificatePassphrase + ); + } + else + { + Information("Not running on Bitrise"); + } + + + + + + Gets Bitrise repository information. + + + The repository. + + Via BuildSystem + + + if (BuildSystem.Bitrise.IsRunningOnBitrise) + { + Information( + @"Repository: + Git Repository Url: {0} + Git Branch: {1} + Git Tag: {2} + Git Commit: {3} + Pull Request: {4}", + BuildSystem.Bitrise.Environment.Repository.GitRepositoryUrl, + BuildSystem.Bitrise.Environment.Repository.GitBranch, + BuildSystem.Bitrise.Environment.Repository.GitTag, + BuildSystem.Bitrise.Environment.Repository.GitCommit, + BuildSystem.Bitrise.Environment.Repository.PullRequest + ); + } + else + { + Information("Not running on Bitrise"); + } + + + Via Bitrise + + + if (Bitrise.IsRunningOnBitrise) + { + Information( + @"Repository: + Git Repository Url: {0} + Git Branch: {1} + Git Tag: {2} + Git Commit: {3} + Pull Request: {4}", + Bitrise.Environment.Repository.GitRepositoryUrl, + Bitrise.Environment.Repository.GitBranch, + Bitrise.Environment.Repository.GitTag, + Bitrise.Environment.Repository.GitCommit, + Bitrise.Environment.Repository.PullRequest + ); + } + else + { + Information("Not running on Bitrise"); + } + + + + + + Gets Bitrise workflow information. + + + The workflow. + + Via BuildSystem + + + if (BuildSystem.Bitrise.IsRunningOnBitrise) + { + Information( + @"Workflow: + Workflow Id: {0} + Workflow Title: {1}", + BuildSystem.Bitrise.Environment.Workflow.WorkflowId, + BuildSystem.Bitrise.Environment.Workflow.WorkflowTitle + ); + } + else + { + Information("Not running on Bitrise"); + } + + + Via Bitrise + + + if (Bitrise.IsRunningOnBitrise) + { + Information( + @"Workflow: + Workflow Id: {0} + Workflow Title: {1}", + Bitrise.Environment.Workflow.WorkflowId, + Bitrise.Environment.Workflow.WorkflowTitle + ); + } + else + { + Information("Not running on Bitrise"); + } + + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides Bitrise provisioning information for the current build. + + + + + Gets the provision URL. + + + The provision URL. + + + + + Gets the certificate URL. + + + The certificate URL. + + + + + Gets the certificate passphrase. + + + The certificate passphrase. + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides Bitrise repository information for the current build. + + + + + Gets the git repository URL. + + + The git repository URL. + + + + + Gets the git branch. + + + The git branch. + + + + + Gets the git tag. + + + The git tag. + + + + + Gets the git commit. + + + The git commit. + + + + + Gets the pull request. + + + The pull request. + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides Bitrise workflow information for the current build. + + + + + Gets the workflow identifier. + + + The workflow identifier. + + + + + Gets the workflow title. + + + The workflow title. + + + + + Initializes a new instance of the class. + + The environment. + + + + Represents a Bitrise provider. + + + + + Gets a value indicating whether the current build is running on Bitrise. + + + true if the current build is running on Bitrise; otherwise, false. + + + + + Gets the Bitrise environment. + + + The Bitrise environment. + + + + + Sets and environment variable that can be used in next steps on Bitrise + + The variable. + The value. + + + + Provides functionality for interacting with + different build systems. + + + + + Initializes a new instance of the class. + + The AppVeyor Provider. + The TeamCity Provider. + The MyGet Provider. + The Bamboo Provider. + The Continua CI Provider. + The Jenkins Provider. + The Bitrise Provider. + The Travis CI provider. + The Bitbucket Pipelines provider. + The Go.CD provider. + The GitLab CI provider. + The TF Build provider. + + + + Gets a value indicating whether the current build is running on AppVeyor. + + + + if(BuildSystem.IsRunningOnAppVeyor) + { + // Upload artifact to AppVeyor. + AppVeyor.UploadArtifact("./build/release_x86.zip"); + } + + + + true if the build currently is running on AppVeyor; otherwise, false. + + + + + Gets the AppVeyor Provider. + + + + if(BuildSystem.IsRunningOnAppVeyor) + { + // Upload artifact to AppVeyor. + BuildSystem.AppVeyor.UploadArtifact("./build/release_x86.zip"); + } + + + + + + Gets a value indicating whether the current build is running on TeamCity. + + + + if(BuildSystem.IsRunningOnTeamCity) + { + TeamCity.ProgressMessage("Doing an action..."); + // Do action... + } + + + + true if the build currently is running on TeamCity; otherwise, false. + + + + + Gets the TeamCity Provider. + + + + if(BuildSystem.IsRunningOnTeamCiy) + { + // Set the build number. + BuildSystem.TeamCity.SetBuildNumber("1.2.3.4"); + } + + + + + + Gets a value indicating whether the current build is running on MyGet. + + + + if(BuildSystem.IsRunningOnMyGet) + { + MyGet.BuildProblem("Something went wrong..."); + // Do action... + } + + + + true if the build currently is running on MyGet; otherwise, false. + + + + + Gets the MyGet Provider. + + + + if(BuildSystem.IsRunningOnMyGet) + { + // Set the build number. + BuildSystem.MyGet.SetBuildNumber("1.2.3.4"); + } + + + + + + Gets a value indicating whether the current build is running on Bamboo. + + + + if(BuildSystem.IsRunningOnBamboo) + { + // Get the build number. + var buildNumber = BuildSystem.Bamboo.Number; + } + + + + true if the build currently is running on Bamboo; otherwise, false. + + + + + Gets the Bamboo Provider. + + + + if(BuildSystem.IsRunningOnBamboo) + { + //Get the Bamboo Plan Name + var planName = BuildSystem.Bamboo.Project.PlanName + } + + + + + + Gets a value indicating whether the current build is running on Continua CI. + + + + if(BuildSystem.IsRunningOnContinuaCI) + { + // Get the build version. + var buildVersion = BuildSystem.ContinuaCI.Environment.Build.Version; + } + + + + true if the build currently is running on Continua CI; otherwise, false. + + + + + Gets the Continua CI Provider. + + + + if(BuildSystem.IsRunningOnContinuaCI) + { + //Get the Continua CI Project Name + var projectName = BuildSystem.ContinuaCI.Environment.Project.Name; + } + + + + + + Gets a value indicating whether this instance is running on Jenkins. + + + + if(BuildSystem.IsRunningOnJenkins) + { + // Get the build number. + var buildNumber = BuildSystem.Jenkins.Environment.Build.BuildNumber; + } + + + + true if this instance is running on jenkins; otherwise, false. + + + + + Gets the Jenkins Provider. + + + The jenkins. + + + + if(BuildSystem.IsRunningOnJenkins) + { + // Get the job name. + var jobName = BuildSystem.Jenkins.Environment.Build.JobName; + } + + + + + + Gets a value indicating whether this instance is running on Bitrise. + + + + if(BuildSystem.IsRunningOnBitrise) + { + // Get the build number. + var buildNumber = BuildSystem.Bitrise.Environment.Build.BuildNumber; + } + + + + true if this instance is running on bitrise; otherwise, false. + + + + + Gets the Bitrise Provider. + + + + if(BuildSystem.IsRunningOnBitrise) + { + // Get the provision profile url. + var buildNumber = BuildSystem.Bitrise.Environment.Provisioning.ProvisionUrl; + } + + + + + + Gets a value indicating whether this instance is running on Travis CI. + + + + if(BuildSystem.IsRunningOnTravisCI) + { + // Get the build directory. + var buildDirectory = BuildSystem.TravisCI.Environment.Build.BuildDirectory; + } + + + + true if this instance is running on Travis CI; otherwise, false. + + + + + Gets the Travis CI provider. + + + + if(BuildSystem.IsRunningOnTravisCI) + { + // Get the operating system name. + var osName = BuildSystem.TravisCI.Environment.Job.OSName; + } + + + + The Travis CI. + + + + + Gets a value indicating whether this instance is running on Bitbucket Pipelines. + + + + if(BuildSystem.IsRunningOnBitbucketPipelines) + { + // Get the build commit hash. + var commitHash = BuildSystem.BitbucketPipelines.Environment.Repository.Commit; + } + + + + true if this instance is running on Bitbucket Pipelines; otherwise, false. + + + + + Gets the Bitbucket Pipelines Provider. + + + + if(BuildSystem.IsRunningOnBitbucketPipelines) + { + // Get the URL friendly repo name. + var repoSlug = BuildSystem.BitbucketPipelines.Environment.Repository.RepoSlug; + } + + + + + + Gets a value indicating whether the current build is running on Go.CD. + + + + if(BuildSystem.IsRunningOnGoCD) + { + // Get the build counter. + var counter = BuildSystem.GoCD.Environment.Pipeline.Counter; + } + + + + true if the build currently is running on Go.CD; otherwise, false. + + + + + Gets the Go.CD Provider. + + + + if(BuildSystem.IsRunningOnGoCD) + { + // Get the pipeline counter. + var counter = BuildSystem.GoCD.Environment.Environment.Pipeline.Counter; + } + + + + + + Gets the GitLab CI Provider. + + + + if(BuildSystem.IsRunningOnGitLabCI) + { + // Get the build commit hash. + var commitHash = BuildSystem.GitLabCI.Environment.Build.Reference; + } + + + + + + Gets a value indicating whether this instance is running on GitLab CI. + + + + if(BuildSystem.IsRunningOnGitLabCI) + { + // Get the build commit hash. + var commitHash = BuildSystem.GitLabCI.Environment.Build.Reference; + } + + + + true if this instance is running on GitLab CI; otherwise, false. + + + + + Gets a value indicating whether this instance is running on VSTS. + + + + if(BuildSystem.IsRunningOnVSTS) + { + // Get the build commit hash. + var commitHash = BuildSystem.TFBuild.Environment.Repository.SourceVersion; + } + + + + true if this instance is running on VSTS; otherwise, false. + + + + + Gets a value indicating whether this instance is running on TFS. + + + + if(BuildSystem.IsRunningOnTFS) + { + // Get the build commit hash. + var commitHash = BuildSystem.TFBuild.Environment.Repository.SourceVersion; + } + + + + true if this instance is running on TFS; otherwise, false. + + + + + Gets the TF Build Provider. + + + + if(BuildSystem.IsRunningOnVSTS) + { + // Get the build definition name. + var definitionName = BuildSystem.TFBuild.Environment.BuildDefinition.Name; + } + + + + + + Gets a value indicating whether the current build is local build. + + + + // Gets a flag telling us if this is a local build or not. + var isLocal = BuildSystem.IsLocalBuild; + + // Define a task that only runs locally. + Task("LocalOnly") + .WithCriteria(isLocal) + .Does(() => + { + }); + + + + true if the current build is local build; otherwise, false. + + + + + Contains functionality related to build systems. + + + + + Gets a instance that can + be used to query for information about the current build system. + + + + var isLocal = BuildSystem.IsLocalBuild; + + + The context. + A instance. + + + + Gets a instance that can + be used to manipulate the AppVeyor environment. + + + + var isAppVeyorBuild = AppVeyor.IsRunningOnAppVeyor; + + + The context. + A instance. + + + + Gets a instance that can + be used to manipulate the TeamCity environment. + + + + var isTeamCityBuild = TeamCity.IsRunningOnTeamCity; + + + The context. + A instance. + + + + Gets a instance that can + be used to manipulate the MyGet environment. + + + + var isMyGetBuild = MyGet.IsRunningOnMyGet; + + + The context. + A instance. + + + + Gets a instance that can + be used to manipulate the Bamboo environment. + + + + var isBambooBuild = Bamboo.IsRunningOnBamboo; + + + The context. + A instance. + + + + Gets a instance that can + be used to manipulate the Continua CI environment. + + + + var isContinuaCIBuild = ContinuaCI.IsRunningContinuaCI; + + + The context. + A instance. + + + + Gets a instance that can be used to + obtain information from the Jenkins environment. + + + + var isJenkinsBuild = Jenkins.IsRunningOnJenkins; + + + The context. + A instance. + + + + Gets a instance that can be used to + obtain information from the Bitrise environment. + + + + var isBitriseBuild = Bitrise.IsRunningOnBitrise; + + + The context. + A instance. + + + + Gets a instance that can be used to + obtain information from the Travis CI environment. + + + + var isTravisCIBuild = TravisCI.IsRunningOnTravisCI; + + + The context. + A instance. + + + + Gets a instance that can be used to + obtain information from the Bitbucket Pipelines environment. + + + + var isBitbucketPipelinesBuild = BitbucketPipelines.IsRunningOnBitbucketPipelines; + + + The context. + A instance. + + + + Gets a instance that can be used to + obtain information from the Go.CD environment. + + + + var isGoCDBuild = GoCD.IsRunningOnGoCD; + + + The context. + A instance. + + + + Gets a instance that can be used to + obtain information from the GitLab CI environment. + + + + var isGitLabCIBuild = GitLabCI.IsRunningOnGitLabCI; + + + The context. + A instance. + + + + Gets a instance that can be used to + obtain information from the Team Foundation Build environment. + + + + var isTFSBuild = TFBuild.IsRunningOnTFS; + + + The context. + A instance. + + + + Base class used to provide information about the Continua CI environment. + + + + + Initializes a new instance of the class. + + The environment. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Gets an environment variable as an array of . + + The environment variable name. + The environment variable value split by comma into an array of values. + + + + Gets matching list of environment variables as an dictionary of . + + The prefix for the environment variables name. + A dictionary of environment variables starting with variablePrefix + + + + Provides the known values for Continua CI Message Types + + + + + Debug Message + + + + + Success Message + + + + + Information Message + + + + + Warning Message + + + + + Error Message + + + + + Fatal Message + + + + + Responsible for communicating with Continua CI. + + + + + Initializes a new instance of the class. + + The cake environment. + + + + Gets a value indicating whether the current build is running on Continua CI. + + + true if the current build is running on Continua CI; otherwise, false. + + + + + Gets the Continua CI environment. + + + The Continua CI environment. + + + + + Write a status message to the Continua CI build log. + + Message contents. + Build status. + + + + Write the start of a message group to the Continua CI build log. + + Group name. + + + + Write the end of a message block to the Continua CI build log. + + Group name. + + + + Set a Continua CI build variable. + + Name of the variable to set. + Value to assign to the variable. + Set to 'true' to prevent the build failing if the variable has not been defined for the configuration.. + + + + Set a Continua CI build version. + + The new build version. + + + + Set a Continua CI build status message, which is shown on the build details page when a build is running. + + The new build status text. + + + + Provides Continua CI build information for a current build. + + + + + Initializes a new instance of the class. + + The environment. + The prefix for environment variables in this clas + + + + Gets the build id. + + + + + Gets the build version. + + + + + Gets the name of the user or trigger starting the build. + + + + + Gets a value indicating whether the build uses the feature branch. + + + + + Gets the build number. + + + + + Gets the build start date and time. + + + + + Gets a value indicating whether the build uses the default branch. + + + + + Gets a value indicating whether the build has new changes. + + + + + Gets build the number of changesets associated with this build + + + + + Gets build the number of issues associated with this build + + + + + Gets build elapsed time on queue as a time span. + + + + + Gets build time on queue in ticks. + + + + + Gets list of repository names + + + + + Gets list of repository branch names + + + + + Gets triggering branch name + + + + + Gets list of changeset revisions + + + + + Gets list of changeset user names + + + + + Gets list of changeset tag names + + + + + Gets the latest build changeset + + + + + Provides Continua CI changeset information for a current build. + + + + + Initializes a new instance of the class. + + The environment. + The environment variable key prefix. + + + + Gets the revision used to build this release. Format depends on the VCS used. + + + + + Gets the changeset branch name + + + + + Gets the changeset created date and time. + + + + + Gets the count of the number of files in the changeset. + + + + + Gets the changeset author user/committer name + + + + + Gets the count of the number of tags associated with the changeset. + + + + + Gets the count of the number of tags associated with the changeset. + + + + + Gets list of changeset tag names + + + + + Gets list of changeset issue names + + + + + Provides Continua CI configuration information for a current build. + + + + + Initializes a new instance of the class. + + The environment. + The environment variable key prefix. + + + + Gets the Continua CI Configuration Name + + + The Continua CI Configuration Name. + + + + + Provides Continua CI environment information for a current build. + + + + + Initializes a new instance of the class. + + The environment. + + + + Gets Continua CI configuration information. + + + The Continua CI configuration information. + + Via BuildSystem + + + if (BuildSystem.ContinuaCI.IsRunningOnContinuaCI) + { + Information( + @"Configuration: + Name: {0}", + BuildSystem.ContinuaCI.Environment.Configuration.Name + ); + } + else + { + Information("Not running on ContinuaCI"); + } + + + Via ContinuaCI + + + if (ContinuaCI.IsRunningOnContinuaCI) + { + Information( + @"Configuration: + Name: {0}", + ContinuaCI.Environment.Configuration.Name + ); + } + else + { + Information("Not running on ContinuaCI"); + } + + + + + + Gets Continua CI project information. + + + The Continua CI project information. + + Via BuildSystem + + + if (BuildSystem.ContinuaCI.IsRunningOnContinuaCI) + { + Information( + @"Project: + Name: {0}", + BuildSystem.ContinuaCI.Environment.Project.Name + ); + } + else + { + Information("Not running on ContinuaCI"); + } + + + Via ContinuaCI + + + if (ContinuaCI.IsRunningOnContinuaCI) + { + Information( + @"Project: + Name: {0}", + ContinuaCI.Environment.Project.Name + ); + } + else + { + Information("Not running on ContinuaCI"); + } + + + + + + Gets Continua CI build information. + + + The Continua CI build information. + + Via BuildSystem + + + if (BuildSystem.ContinuaCI.IsRunningOnContinuaCI) + { + Information( + @"Build: + Id: {0} + Version: {1} + Started By: {2} + Is Feature Branch Build: {3} + Build Number: {4} + Started: {5}", + BuildSystem.ContinuaCI.Environment.Build.Id, + BuildSystem.ContinuaCI.Environment.Build.Version, + BuildSystem.ContinuaCI.Environment.Build.StartedBy, + BuildSystem.ContinuaCI.Environment.Build.IsFeatureBranchBuild, + BuildSystem.ContinuaCI.Environment.Build.BuildNumber, + BuildSystem.ContinuaCI.Environment.Build.Started + ); + } + else + { + Information("Not running on ContinuaCI"); + } + + + Via ContinuaCI + + + if (ContinuaCI.IsRunningOnContinuaCI) + { + Information( + @"Build: + Id: {0} + Version: {1} + Started By: {2} + Is Feature Branch Build: {3} + Build Number: {4} + Started: {5}", + ContinuaCI.Environment.Build.Id, + ContinuaCI.Environment.Build.Version, + ContinuaCI.Environment.Build.StartedBy, + ContinuaCI.Environment.Build.IsFeatureBranchBuild, + ContinuaCI.Environment.Build.BuildNumber, + ContinuaCI.Environment.Build.Started + ); + } + else + { + Information("Not running on ContinuaCI"); + } + + + + + + Gets Continua CI build variables. + + + The Continua CI build variables. + + Via BuildSystem + + + if (BuildSystem.ContinuaCI.IsRunningOnContinuaCI) + { + Information( + @"Variables: + {0}", + BuildSystem.ContinuaCI.Environment.Variable.Aggregate( + new StringBuilder(),(builder, pair) => builder.AppendLine( + string.Format(":", pair.Key, pair.Value)), + builder => builder.ToString()) + ); + } + else + { + Information("Not running on ContinuaCI"); + } + + + Via ContinuaCI + + + if (ContinuaCI.IsRunningOnContinuaCI) + { + Information( + @"Variables: + {0}", + ContinuaCI.Environment.Variable.Aggregate( + new StringBuilder(),(builder, pair) => builder.AppendLine( + string.Format(":", pair.Key, pair.Value)), + builder => builder.ToString()) + ); + } + else + { + Information("Not running on ContinuaCI"); + } + + + + + + Gets Continua CI build agent properties + + + The Continua CI build agent properties. + + Via BuildSystem + + + if (BuildSystem.ContinuaCI.IsRunningOnContinuaCI) + { + Information( + @"Agent Property: + {0}", + BuildSystem.ContinuaCI.Environment.AgentProperty.Aggregate( + new StringBuilder(),(builder, pair) => builder.AppendLine( + string.Format(":", pair.Key, pair.Value)), + builder => builder.ToString()) + ); + } + else + { + Information("Not running on ContinuaCI"); + } + + + Via ContinuaCI + + + if (ContinuaCI.IsRunningOnContinuaCI) + { + Information( + @"Variables: + {0}", + ContinuaCI.Environment.AgentProperty.Aggregate( + new StringBuilder(),(builder, pair) => builder.AppendLine( + string.Format(":", pair.Key, pair.Value)), + builder => builder.ToString()) + ); + } + else + { + Information("Not running on ContinuaCI"); + } + + + + + + Gets Continua CI product version. + + + The Continua CI product version. + + Via BuildSystem + + + if (BuildSystem.ContinuaCI.IsRunningOnContinuaCI) + { + Information( + @"Version: {0}", + BuildSystem.ContinuaCI.Environment.Version + ); + } + else + { + Information("Not running on ContinuaCI"); + } + + + Via ContinuaCI + + + if (ContinuaCI.IsRunningOnContinuaCI) + { + Information( + @"Version: {0}", + ContinuaCI.Environment.Version + ); + } + else + { + Information("Not running on ContinuaCI"); + } + + + + + + Provides Continua CI project information for a current build. + + + + + Initializes a new instance of the class. + + The environment. + The environment variable key prefix. + + + + Gets the Continua CI Project Name + + + The Continua CI Project Name. + + + + + Represents a Continua CI provider. + + + + + Write a status message to the Continua CI build log. + + Message contents. + Build status. + + + + Write the start of a message group to the Continua CI build log. + + Group name. + + + + Write the end of a message block to the Continua CI build log. + + Group name. + + + + Set a Continua CI build variable. + + Name of the variable to set. + Value to assign to the variable. + Set to 'true' to prevent the build failing if the variable has not been defined for the configuration.. + + + + Set a Continua CI build version. + + The new build version. + + + + Set a Continua CI build status message, which is shown on the build details page when a build is running. + + The new build status text. + + + + Gets a value indicating whether the current build is running on Continua CI. + + + true if the current build is running on Continua CI; otherwise, false. + + + + + Gets the Continua CI environment. + + + The Continua CI environment. + + + + + Provide GitLab CI build information for a current build + + + + + Initializes a new instance of the class. + + The environment. + + + + Gets the unique id of the current build that GitLab CI uses internally. + + + The build ID. + + + + + Gets the commit revision for which project is built. + + + The commit revision hash. + + + + + Gets the commit tag name. Present only when building tags. + + + The build tag name. + + + + + Gets the name of the build as defined in .gitlab-ci.yml. + + + The name of the build. + + + + + Gets the name of the stage as defined in .gitlab-ci.yml. + + + The name of the current stage. + + + + + Gets the branch or tag name for which project is built. + + + The branch or tag for this build. + + + + + Gets the URL to clone the Git repository. + + + The repository URL. + + + + + Gets a value indicating whether the build was triggered. + + + True if the build was triggered, otherwise false. + + + + + Gets a value indicating whether the build was manually started. + + + True if the build was started manually, otherwise false. + + + + + Gets the token used for authenticating with the GitLab Container Registry. + + + The build authorisation token. + + + + + Gets the unique id of the current pipeline that GitLab CI uses internally. + + + The unique build ID. + + + + + Gets the id of the user who started the build. + + + The user ID. + + + + + Gets the email of the user who started the build. + + + The email address of the user. + + + + + Provides GitLab CI environment information for a current build. + + + + + Initializes a new instance of the class. + + The environment. + + + + Gets the GitLab CI runner information. + + + The GitLab CI runner information. + + Via BuildSystem + + + if (BuildSystem.GitLabCI.IsRunningOnGitLabCI) + { + Information( + @"Runner: + Id: {0} + Description: {1} + Tags: {2}", + BuildSystem.GitLabCI.Environment.Runner.Id, + BuildSystem.GitLabCI.Environment.Runner.Description, + BuildSystem.GitLabCI.Environment.Runner.Tags + ); + } + else + { + Information("Not running on GitLabCI"); + } + + + Via GitLabCI + + + if (GitLabCI.IsRunningOnGitLabCI) + { + Information( + @"Runner: + Id: {0} + Description: {1} + Tags: {2}", + GitLabCI.Environment.Runner.Id, + GitLabCI.Environment.Runner.Description, + GitLabCI.Environment.Runner.Tags + ); + } + else + { + Information("Not running on GitLabCI"); + } + + + + + + Gets the GitLab CI server information. + + + The GitLab CI server information. + + Via BuildSystem + + + if (BuildSystem.GitLabCI.IsRunningOnGitLabCI) + { + Information( + @"Server: + Name: {0} + Version: {1} + Revision: {2}", + BuildSystem.GitLabCI.Environment.Server.Name, + BuildSystem.GitLabCI.Environment.Server.Version, + BuildSystem.GitLabCI.Environment.Server.Revision + ); + } + else + { + Information("Not running on GitLabCI"); + } + + + Via GitLabCI + + + if (GitLabCI.IsRunningOnGitLabCI) + { + Information( + @"Server: + Name: {0} + Version: {1} + Revision: {2}", + GitLabCI.Environment.Server.Name, + GitLabCI.Environment.Server.Version, + GitLabCI.Environment.Server.Revision + ); + } + else + { + Information("Not running on GitLabCI"); + } + + + + + + Gets the GitLab CI build information. + + + The GitLab CI build information. + + Via BuildSystem + + + if (BuildSystem.GitLabCI.IsRunningOnGitLabCI) + { + Information( + @"Build: + Id: {0} + Reference: {1} + Tag: {2} + Name: {3} + Stage: {4}", + BuildSystem.GitLabCI.Environment.Build.Id, + BuildSystem.GitLabCI.Environment.Build.Reference, + BuildSystem.GitLabCI.Environment.Build.Tag, + BuildSystem.GitLabCI.Environment.Build.Tag, + BuildSystem.GitLabCI.Environment.Build.Stage + ); + } + else + { + Information("Not running on GitLabCI"); + } + + + Via GitLabCI + + + Information( + @"Build: + Id: {0} + Reference: {1} + Tag: {2} + Name: {3} + Stage: {4}", + GitLabCI.Environment.Build.Id, + GitLabCI.Environment.Build.Reference, + GitLabCI.Environment.Build.Tag, + GitLabCI.Environment.Build.Tag, + GitLabCI.Environment.Build.Stage + ); + + + + + + Gets the GitLab CI project information. + + + The GitLab CI project information. + + Via BuildSystem + + + if (BuildSystem.GitLabCI.IsRunningOnGitLabCI) + { + Information( + @"Project: + Id: {0} + Name: {1} + Namespace: {2} + Path: {3} + Url: {4} + Directory: {5}", + BuildSystem.GitLabCI.Environment.Project.Id, + BuildSystem.GitLabCI.Environment.Project.Name, + BuildSystem.GitLabCI.Environment.Project.Namespace, + BuildSystem.GitLabCI.Environment.Project.Path, + BuildSystem.GitLabCI.Environment.Project.Url, + BuildSystem.GitLabCI.Environment.Project.Directory + ); + } + else + { + Information("Not running on GitLabCI"); + } + + + Via GitLabCI + + + Information( + @"Project: + Id: {0} + Name: {1} + Namespace: {2} + Path: {3} + Url: {4} + Directory: {5}", + GitLabCI.Environment.Project.Id, + GitLabCI.Environment.Project.Name, + GitLabCI.Environment.Project.Namespace, + GitLabCI.Environment.Project.Path, + GitLabCI.Environment.Project.Url, + GitLabCI.Environment.Project.Directory + ); + + + + + + Provides GitLab CI project information for a current build + + + + + Initializes a new instance of the class. + + The environment. + + + + Gets the unique id of the current project that GitLab CI uses internally. + + + The project ID. + + + + + Gets the project name that is currently being built. + + + The project name. + + + + + Gets the project namespace (username or groupname) that is currently being built. + + + The project namespace. + + + + + Gets the namespace with project name. + + + The project namespace and project name. + + + + + Gets the HTTP address to access the project. + + + The HTTP address to access the project. + + + + + Gets the full path where the repository is cloned and where the build is run. + + + The full path where the repository is cloned and where the build is run. + + + + + Provides GitLab CI runner information for a current build. + + + + + Initializes a new instance of the class. + + The environment. + + + + Gets the unique id of runner being used. + + + The unique id of runner being used. + + + + + Gets the description of the runner as saved in GitLab. + + + The description of the runner as saved in GitLab. + + + + + Gets an array of the defined runner tags. + + + The defined runner tags. + + + + + Provides GitLab CI server information for a current build. + + + + + Initializes a new instance of the class. + + The environment. + + + + Gets the name of CI server that is used to coordinate builds. + + + The name of CI server that is used to coordinate builds. + + + + + Gets the GitLab version that is used to schedule builds. + + + The GitLab version that is used to schedule builds. + + + + + Gets the GitLab revision that is used to schedule builds. + + + The GitLab revision that is used to schedule builds. + + + + + Base class used to provide information about the Bitbucket Pipelines environment. + + + + + Initializes a new instance of the class. + + The environment. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Gets an environment variable as a . + + The primary environment variable name. + The secondary environment variable name. + The environment variable. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Gets an environment variable as a . + + The primary environment variable name. + The secondary environment variable name. + The environment variable. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Gets an environment variable as a . + + The primary environment variable name. + The secondary environment variable name. + The environment variable. + + + + Responsible for communicating with GitLab CI. + + + + + Initializes a new instance of the class. + + The environment. + + + + Gets the GitLab CI environment. + + + The GitLab CI environment. + + + + + Gets a value indicating whether the current build is running on GitLab CI. + + + true if the current build is running on GitLab CI; otherwise, false. + + + + + Represents a GitLab CI provider. + + + + + Gets a value indicating whether the current build is running on GitLab CI. + + + true if the current build is running on GitLab CI; otherwise, false. + + + + + Gets the GitLab CI environment. + + + The GitLab CI environment. + + + + + The Go.CD build cause. + + + + + Gets or sets the approver. + + + The approver. + + + + + Gets or sets the material revisions. + + + The material revisions. + + + + + Gets or sets a value indicating whether the trigger was forced. + + + true if the trigger was forced; otherwise, false. + + + + + Gets or sets the trigger message. + + + The trigger message. + + + + + Provides Go.CD environment information for a current build. + + + + + Gets GoCD pipeline information. + + + The GoCD pipeline information. + + Via BuildSystem + + + if (BuildSystem.GoCD.IsRunningOnGoCD) + { + Information( + @"Pipeline: + Name: {0} + Counter: {1} + Label: {2}", + BuildSystem.GoCD.Environment.Pipeline.Name, + BuildSystem.GoCD.Environment.Pipeline.Counter, + BuildSystem.GoCD.Environment.Pipeline.Label + ); + } + else + { + Information("Not running on GoCD"); + } + + + Via GoCD + + + if (GoCD.IsRunningOnGoCD) + { + Information( + @"Pipeline: + Name: {0} + Counter: {1} + Label: {2}", + GoCD.Environment.Pipeline.Name, + GoCD.Environment.Pipeline.Counter, + GoCD.Environment.Pipeline.Label + ); + } + else + { + Information("Not running on GoCD"); + } + + + + + + Gets GoCD stage information. + + + The GoCD stage information. + + Via BuildSystem + + + if (BuildSystem.GoCD.IsRunningOnGoCD) + { + Information( + @"Stage: + Name: {0} + Counter: {1}", + BuildSystem.GoCD.Environment.Stage.Name, + BuildSystem.GoCD.Environment.Stage.Counter + ); + } + else + { + Information("Not running on GoCD"); + } + + + Via GoCD + + + if (GoCD.IsRunningOnGoCD) + { + Information( + @"Stage: + Name: {0} + Counter: {1}", + GoCD.Environment.Stage.Name, + GoCD.Environment.Stage.Counter + ); + } + else + { + Information("Not running on GoCD"); + } + + + + + + Gets GoCD repository information. + + + The GoCD repository information. + + Via BuildSystem + + + if (BuildSystem.GoCD.IsRunningOnGoCD) + { + Information( + @"Repository: + Revision: {0} + ToRevision: {1} + FromRevision: {2}", + BuildSystem.GoCD.Environment.Repository.Revision, + BuildSystem.GoCD.Environment.Repository.ToRevision, + BuildSystem.GoCD.Environment.Repository.FromRevision + ); + } + else + { + Information("Not running on GoCD"); + } + + + Via GoCD + + + if (GoCD.IsRunningOnGoCD) + { + Information( + @"Repository: + Revision: {0} + ToRevision: {1} + FromRevision: {2}", + GoCD.Environment.Repository.Revision, + GoCD.Environment.Repository.ToRevision, + GoCD.Environment.Repository.FromRevision + ); + } + else + { + Information("Not running on GoCD"); + } + + + + + + Gets the Go.CD URL. + + + The Go.CD URL. + + Via BuildSystem + + + if (BuildSystem.GoCD.IsRunningOnGoCD) + { + Information( + @"GoCDUrl: {0}", + BuildSystem.GoCD.Environment.GoCDUrl + ); + } + else + { + Information("Not running on GoCD"); + } + + + Via GoCD + + + if (GoCD.IsRunningOnGoCD) + { + Information( + @"GoCDUrl: {0}", + GoCD.Environment.GoCDUrl + ); + } + else + { + Information("Not running on GoCD"); + } + + + + + + Gets the environment name. This is only set if the environment is specified. Otherwise the variable is not set. + + + The environment name. + + Via BuildSystem + + + if (BuildSystem.GoCD.IsRunningOnGoCD) + { + Information( + @"EnvironmentName: {0}", + BuildSystem.GoCD.Environment.EnvironmentName + ); + } + else + { + Information("Not running on GoCD"); + } + + + Via GoCD + + + if (GoCD.IsRunningOnGoCD) + { + Information( + @"EnvironmentName: {0}", + GoCD.Environment.EnvironmentName + ); + } + else + { + Information("Not running on GoCD"); + } + + + + + + Gets the name of the current job being run. + + + The job name. + + Via BuildSystem + + + if (BuildSystem.GoCD.IsRunningOnGoCD) + { + Information( + @"JobName: {0}", + BuildSystem.GoCD.Environment.JobName + ); + } + else + { + Information("Not running on GoCD"); + } + + + Via GoCD + + + if (GoCD.IsRunningOnGoCD) + { + Information( + @"JobName: {0}", + GoCD.Environment.JobName + ); + } + else + { + Information("Not running on GoCD"); + } + + + + + + Gets the username of the user that triggered the build. This will have one of three possible values: + anonymous - if there is no security. + username of the user, who triggered the build. + changes, if SCM changes auto-triggered the build. + timer, if the pipeline is triggered at a scheduled time. + + + The username of the user that triggered the build. + + Via BuildSystem + + + if (BuildSystem.GoCD.IsRunningOnGoCD) + { + Information( + @"User: {0}", + BuildSystem.GoCD.Environment.User + ); + } + else + { + Information("Not running on GoCD"); + } + + + Via GoCD + + + if (GoCD.IsRunningOnGoCD) + { + Information( + @"User: {0}", + GoCD.Environment.User + ); + } + else + { + Information("Not running on GoCD"); + } + + + + + + Initializes a new instance of the class. + + The environment. + + + + The Go.CD history. + + + + + Gets or sets the pipelines. + + + The pipelines. + + + + + The Go.CD material revision information. + + + + + Gets or sets a value indicating whether a change was made. + + + true if changed; otherwise, false. + + + + + Gets or sets the modifications. + + + The modifications. + + + + + A change made in the repository since the last time the Go.CD pipeline was run. + + + + + Gets or sets the email address. + + + The email address. + + + + + Gets or sets the identifier. + + + The identifier. + + + + + Gets or sets the modified time in milliseconds from the Unix epoch. + + + The modified time in milliseconds from the Unix epoch. + + + + + Gets or sets the modified time. + + + The modified time. + + + + + Gets or sets the username. + + + The username. + + + + + Gets or sets the comment. + + + The comment. + + + + + Gets or sets the revision. + + + The revision. + + + + + The Go.CD pipeline history. + + + + + Gets or sets the build cause. + + + The build cause. + + + + + Gets or sets the comment. + + + The comment. + + + + + Gets or sets the name. + + + The name. + + + + + Gets or sets the natural order. + + + The natural order. + + + + + Provides GoCD pipeline information for a current build. + + + + + Gets the name of the pipeline. + + + The name of the pipeline. + + + + + Gets the pipeline counter, showing how many times the current pipeline has been run. + + + The pipeline counter. + + + + + Gets the pipeline label. By default, this is set to the pipeline count. + + + The pipeline label. + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides Go.CD repository information for a current build. + + + + + Gets the source control revision. + + + The the source control revision. + + + + + Gets the last revision the build was triggered by if there were multiple revisions. + + + The last revision the build was triggered by if there were multiple revisions. + + + + + Gets the first revision the build was triggered by if there were multiple revisions. + + + The first revision the build was triggered by if there were multiple revisions. + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides Go.CD commit information for a current build. + + + + + Gets the name of the current stage being run. + + + The stage name. + + + + + Gets the count of the number of times the current stage has been run. + + + The stage counter. + + + + + Initializes a new instance of the class. + + The environment. + + + + Base class used to provide information about the Go.CD environment. + + + + + Initializes a new instance of the class. + + The environment. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Responsible for communicating with GoCD. + + + + + Initializes a new instance of the class. + + The environment. + The cake log. + + + + Gets a value indicating whether the current build is running on Go.CD. + + + true if the current build is running on Go.CD.; otherwise, false. + + + + + Gets the Go.CD environment. + + + The Go.CD environment. + + + + + Gets the Go.CD build history, including the repository modifications that caused the pipeline to start. + + The Go.CD username. + The Go.CD password. + The Go.CD build history. + + + + Gets the Go.CD build history, including the repository modifications that caused the pipeline to start. + + The Go.CD username. + The Go.CD password. + The Go.CD server URL. + The Go.CD build history. + + + + Represents a Go.CD provider. + + + + + Gets a value indicating whether the current build is running on Go.CD. + + + true if the current build is running on Go.CD; otherwise, false. + + + + + Gets the Go.CD environment. + + + The Go.CD environment. + + + + + Gets the Go.CD build history, including the repository modifications that caused the pipeline to start. + + The Go.CD username. + The Go.CD password. + The Go.CD build history. + + + + Gets the Go.CD build history, including the repository modifications that caused the pipeline to start. + + The Go.CD username. + The Go.CD password. + The Go.CD server URL. + The Go.CD build history. + + + + Provides Jenkins build information for the current build. + + + + + Gets the build number. + + + The build number. + + + + + Gets the build identifier which is identical to starting from Jenkins 1.597 and a YYYY-MM-DD_hh-mm-ss timestamp for older builds. + + + The build identifier. + + + + + Gets the display name of the build. + + + The display name of the build. + + + + + Gets the build tag which is a string of "jenkins-${JOB_NAME}-${BUILD_NUMBER}". All forward slashes (/) in the JOB_NAME are replaced with dashes (-). + + + The build tag. + + + + + Gets the build URL. + + + The build URL. + + + + + Gets the executor number. + + + The executor number. + + + + + Gets the absolute path of the workspace directory assigned to the build. + + + The workspace directory path. + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides Jenkins change information for the current build in multibranch projects. + + + + + Gets the change id. + + + The change id. + + + + + Gets the change URL. + + + The change URL. + + + + + Gets change title. + + + The change title. + + + + + Gets change author. + + + The change author. + + + + + Gets the human name of the change author. + + + The human name of the change author. + + + + + Gets the email address of the change author. + + + The email address of the change author. + + + + + Gets the target of the change. + + + The target of the change. + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides Jenkins environment information for the current build. + + + + + Gets Jenkins build information. + + + The build. + + Via BuildSystem + + + if (BuildSystem.Jenkins.IsRunningOnJenkins) + { + Information( + @"Build: + BuildNumber: {0} + BuildId: {1} + BuildDisplayName: {2}", + BuildSystem.Jenkins.Environment.Build.BuildNumber, + BuildSystem.Jenkins.Environment.Build.BuildId, + BuildSystem.Jenkins.Environment.Build.BuildDisplayName + ); + } + else + { + Information("Not running on Jenkins"); + } + + + Via Jenkins + + + if (Jenkins.IsRunningOnJenkins) + { + Information( + @"Build: + BuildNumber: {0} + BuildId: {1} + BuildDisplayName: {2}", + Jenkins.Environment.Build.BuildNumber, + Jenkins.Environment.Build.BuildId, + Jenkins.Environment.Build.BuildDisplayName + ); + } + else + { + Information("Not running on Jenkins"); + } + + + + + + Gets Jenkins repository information. + + + The repository. + + Via BuildSystem + + + if (BuildSystem.Jenkins.IsRunningOnJenkins) + { + Information( + @"Repository: + BranchName: {0} + GitCommitSha: {1} + GitBranch: {2}", + BuildSystem.Jenkins.Environment.Repository.BranchName, + BuildSystem.Jenkins.Environment.Repository.GitCommitSha, + BuildSystem.Jenkins.Environment.Repository.GitBranch + ); + } + else + { + Information("Not running on Jenkins"); + } + + + Via Jenkins + + + if (Jenkins.IsRunningOnJenkins) + { + Information( + @"Repository: + BranchName: {0} + GitCommitSha: {1} + GitBranch: {2}", + Jenkins.Environment.Repository.BranchName, + Jenkins.Environment.Repository.GitCommitSha, + Jenkins.Environment.Repository.GitBranch + ); + } + else + { + Information("Not running on Jenkins"); + } + + + + + + Gets Jenkins job information. + + + The job. + + Via BuildSystem + + + if (BuildSystem.Jenkins.IsRunningOnJenkins) + { + Information( + @"Job: + JobName: {0} + JobBaseName: {1} + JobUrl: {2}", + BuildSystem.Jenkins.Environment.Job.JobName, + BuildSystem.Jenkins.Environment.Job.JobBaseName, + BuildSystem.Jenkins.Environment.Job.JobUrl + ); + } + else + { + Information("Not running on Jenkins"); + } + + + Via Jenkins + + + if (Jenkins.IsRunningOnJenkins) + { + Information( + @"Job: + JobName: {0} + JobBaseName: {1} + JobUrl: {2}", + Jenkins.Environment.Job.JobName, + Jenkins.Environment.Job.JobBaseName, + Jenkins.Environment.Job.JobUrl + ); + } + else + { + Information("Not running on Jenkins"); + } + + + + + + Gets the node. + + + The node. + + Via BuildSystem + + + if (BuildSystem.Jenkins.IsRunningOnJenkins) + { + Information( + @"Node: + NodeName: {0} + NodeLabels: {1}", + BuildSystem.Jenkins.Environment.Node.NodeName, + BuildSystem.Jenkins.Environment.Node.NodeLabels + ); + } + else + { + Information("Not running on Jenkins"); + } + + + Via Jenkins + + + if (Jenkins.IsRunningOnJenkins) + { + Information( + @"Node: + NodeName: {0} + NodeLabels: {1}", + Jenkins.Environment.Node.NodeName, + Jenkins.Environment.Node.NodeLabels + ); + } + else + { + Information("Not running on Jenkins"); + } + + + + + + Gets the change. + + + The change. + + Via BuildSystem + + + if (BuildSystem.Jenkins.IsRunningOnJenkins) + { + Information( + @"Change: + Id: {0} + Url: {1} + Title: {2}", + BuildSystem.Jenkins.Environment.Change.Id, + BuildSystem.Jenkins.Environment.Change.Url, + BuildSystem.Jenkins.Environment.Change.Title + ); + } + else + { + Information("Not running on Jenkins"); + } + + + Via Jenkins + + + if (Jenkins.IsRunningOnJenkins) + { + Information( + @"Change: + Id: {0} + Url: {1} + Title: {2}", + Jenkins.Environment.Change.Id, + Jenkins.Environment.Change.Url, + Jenkins.Environment.Change.Title + ); + } + else + { + Information("Not running on Jenkins"); + } + + + + + + Gets the absolute path of the directory assigned on the master node for Jenkins to store data. + + + The absolute path of the directory assigned on the master node for Jenkins to store data. + + Via BuildSystem + + + if (BuildSystem.Jenkins.IsRunningOnJenkins) + { + Information( + @"JenkinsHome: {0}", + BuildSystem.Jenkins.Environment.JenkinsHome + ); + } + else + { + Information("Not running on Jenkins"); + } + + + Via Jenkins + + + if (Jenkins.IsRunningOnJenkins) + { + Information( + @"JenkinsHome: {0}", + Jenkins.Environment.JenkinsHome + ); + } + else + { + Information("Not running on Jenkins"); + } + + + + + + Gets the full URL of Jenkins (note: only available if Jenkins URL is set in system configuration). + + + The full URL of Jenkins. + + Via BuildSystem + + + if (BuildSystem.Jenkins.IsRunningOnJenkins) + { + Information( + @"JenkinsUrl: {0}", + BuildSystem.Jenkins.Environment.JenkinsUrl + ); + } + else + { + Information("Not running on Jenkins"); + } + + + Via Jenkins + + + if (Jenkins.IsRunningOnJenkins) + { + Information( + @"JenkinsUrl: {0}", + Jenkins.Environment.JenkinsUrl + ); + } + else + { + Information("Not running on Jenkins"); + } + + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides Jenkins job information for a current build. + + + + + Gets the name of the job. + + + The name of the job. + + + + + Gets the short name of the project of this build stripping off folder paths, such as "foo" for "bar/foo". + + + The base name of the job. + + + + + Gets the URL of the job. + + + The URL of the job. + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides Jenkins node information for a current build. + + + + + Gets the name of the node. + + + The name of the node. + + + + + Gets the node labels. + + + The node labels. + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides Jenkins repository information for the current build. + + + + + Gets the branch name which will be build in a multibranch project. + + + The branch name. + + + + + Gets the git commit sha. + + + The git commit sha. + + + + + Gets the git branch. + + + The git branch. + + + + + Gets the SVN revision. + + + The SVN revision. + + + + + Gets the CVS branch. + + + The CVS branch. + + + + + Gets the SVN URL. + + + The SVN URL. + + + + + Initializes a new instance of the class. + + The environment. + + + + Represnts a Jenkins Provider + + + + + Gets a value indicating whether this instance is running on jenkins. + + + true if this instance is running on jenkins; otherwise, false. + + + + + Gets the Jenkins environment. + + + The Jenkins environment. + + + + + Base class used to provide information about the Jenkins environment. + + + + + Initializes a new instance of the class. + + The environment. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Responsible for communicating with Jenkins. + + + + + Initializes a new instance of the class. + + The environment. + + + + Gets a value indicating whether this instance is running on jenkins. + + + true if this instance is running on jenkins; otherwise, false. + + + + + Gets the Jenkins environment. + + + The Jenkins environment. + + + + + Represents a MyGet provider. + + + + + Gets a value indicating whether the current build is running on MyGet. + + + true if the current build is running on MyGet; otherwise, false. + + + + + Report a build problem to MyGet. + + Description of build problem. + + + + Allows setting an environment variable that can be used by a future process. + + Name of the parameter to set. + Value to assign to the parameter. + + + + Write a status message to the MyGet build log. + + Message contents. + Build status. + Error details if status is error. + + + + Tells MyGet to change the current build number. + + The required build number. + + + + Provides the known values for MyGet Build Status + + + + + Failure Status + + + + + Error Status + + + + + Warning Status + + + + + Normal Status + + + + + Responsible for communicating with MyGet. + + + + + Initializes a new instance of the class. + + The cake environment. + + + + Gets a value indicating whether the current build is running on MyGet. + + + true if the current build is running on MyGet; otherwise, false. + + + + + Report a build problem to MyGet. + + Description of build problem. + + + + Allows setting an environment variable that can be used by a future process. + + Name of the parameter to set. + Value to assign to the parameter. + + + + Write a status message to the MyGet build log. + + Message contents. + Build status. + Error details if status is error. + + + + Tells MyGet to change the current build number. + + The required build number. + + + + Provides TeamCity build information for a current build. + + + + + Gets the build configuration name. + + + The build configuration name. + + + + + Gets the build number. + + + The build number. + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides TeamCity environment information for current build + + + + + Gets TeamCity project information. + + + The TeamCity project information. + + Via BuildSystem + + + if (BuildSystem.TeamCity.IsRunningOnTeamCity) + { + Information( + @"Project: + Name: {0}", + BuildSystem.TeamCity.Environment.Project.Name + ); + } + else + { + Information("Not running on TeamCity"); + } + + + Via TeamCity + + + if (TeamCity.IsRunningOnTeamCity) + { + Information( + @"Project: + Name: {0}", + TeamCity.Environment.Project.Name + ); + } + else + { + Information("Not running on TeamCity"); + } + + + + + + Gets TeamCity build information. + + + The TeamCity build information. + + Via BuildSystem + + + if (BuildSystem.TeamCity.IsRunningOnTeamCity) + { + Information( + @"Build: + BuildConfName: {0} + Number: {1}", + BuildSystem.TeamCity.Environment.Build.BuildConfName, + BuildSystem.TeamCity.Environment.Build.Number + ); + } + else + { + Information("Not running on TeamCity"); + } + + + Via TeamCity + + + if (TeamCity.IsRunningOnTeamCity) + { + Information( + @"Build: + BuildConfName: {0} + Number: {1}", + TeamCity.Environment.Build.BuildConfName, + TeamCity.Environment.Build.Number + ); + } + else + { + Information("Not running on TeamCity"); + } + + + + + + Gets TeamCity pull-request information. + + + The TeamCity pull-request information. + + Via BuildSystem + + + if (BuildSystem.TeamCity.IsRunningOnTeamCity) + { + Information( + @"PullRequest: + IsPullRequest: {0} + Number: {1}", + BuildSystem.TeamCity.Environment.PullRequest.IsPullRequest, + BuildSystem.TeamCity.Environment.PullRequest.Number + ); + } + else + { + Information("Not running on TeamCity"); + } + + + Via TeamCity + + + if (TeamCity.IsRunningOnTeamCity) + { + Information( + @"PullRequest: + IsPullRequest: {0} + Number: {1}", + TeamCity.Environment.PullRequest.IsPullRequest, + TeamCity.Environment.PullRequest.Number + ); + } + else + { + Information("Not running on TeamCity"); + } + + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides TeamCity project information for current build + + + + + Gets the TeamCity project name + + + The TeamCity project name + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides TeamCity pull request information for current build + + + + + Gets a value indicating whether the current build was started by a pull request. + + + true if the current build was started by a pull request; otherwise, false. + + + env.Git_Branch is a required parameter in TeamCity for this to work + + + + + Gets the pull request number + + + The pull request number + + + env.Git_Branch is a required parameter in TeamCity for this to work + + + + + Initializes a new instance of the class. + + The environment. + + + + Represents a TeamCity provider. + + + + + Gets the TeamCity environment. + + + The TeamCity environment. + + Via BuildSystem + + + if (BuildSystem.TeamCity.IsRunningOnTeamCity) + { + Information( + @"Environment: + PullRequest: {0} + Build Configuration Name: {1} + TeamCity Project Name: {2}", + BuildSystem.TeamCity.Environment.PullRequest.IsPullRequest, + BuildSystem.TeamCity.Environment.Build.BuildConfName, + BuildSystem.TeamCity.Environment.Project.Name + ); + } + else + { + Information("Not running on TeamCity"); + } + + + Via TeamCity + + + if (TeamCity.IsRunningOnTeamCity) + { + Information( + @"Environment: + PullRequest: {0} + Build Configuration Name: {1} + TeamCity Project Name: {2}", + BuildSystem.TeamCity.Environment.PullRequest.IsPullRequest, + BuildSystem.TeamCity.Environment.Build.BuildConfName, + BuildSystem.TeamCity.Environment.Project.Name + ); + } + else + { + Information("Not running on TeamCity"); + } + + + + + + Report a build problem to TeamCity. + + Description of build problem. + Build identity. + + + + Tell TeamCity to import data of a given type. + + Date type. + Data file path. + + + + Tell TeamCity to import coverage from dotCover snapshot file. + + Snapshot file path. + The full path to the dotCover home folder to override the bundled dotCover. + + + + Gets a value indicating whether the current build is running on TeamCity. + + + true if the current build is running on TeamCity; otherwise, false. + + + + + Tells TeamCity to publish artifacts in the given directory. + + Path to artifacts. + + + + Tells TeamCity to change the current build number. + + The required build number. + + + + Tells TeamCity to set a named parameter with a given value + + The name of the parameter to set. + The value to set for the named parameter. + + + + Write the end of a message block to the TeamCity build log. + + Block name. + + + + Write the end of a build block to the TeamCity build log. + + Build compiler name. + + + + Write a progressFinish message to the TeamCity build log. + + Build log message. + + + + Write a progress message to the TeamCity build log. + + Build log message. + + + + Write the start of a message block to the TeamCity build log. + + Block name. + + + + Write the start of a build block to the TeamCity build log. + + Build compiler name. + + + + Write a progressStart message to the TeamCity build log. + + Build log message. + + + + Write a status message to the TeamCity build log. + + Message contents. + Build status. + Error details if status is error. + + + + A set of extensions for allowing "using" with TeamCity "blocks". + + + + + Writes the start of a TeamCity message block, then returns a disposable that write the end on Dispose. + + TeamCity provider. + The name of the report block. + A disposable wrapper the writes the report block end. + + + + Writes the start of a TeamCity build block, then returns a disposable that write the end on Dispose. + + TeamCity provider. + The name of the build block. + A disposable wrapper the writes the build block end. + + + + Disposable helper for writing TeamCity message blocks. + + + + + Initializes a new instance of the class. + + TeamCity provider. + The action to do on Dispose. + + + + Writes the end block for this message block. + + + + + Base class used to provide information about the TeamCity environment. + + + + + Initializes a new instance of the class. + + The environment. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Responsible for communicating with TeamCity. + + + + + Gets the TeamCity environment. + + + The TeamCity environment. + + Via BuildSystem + + + if (BuildSystem.TeamCity.IsRunningOnTeamCity) + { + Information( + @"Environment: + PullRequest: {0} + Build Configuration Name: {1} + TeamCity Project Name: {2}", + BuildSystem.TeamCity.Environment.PullRequest.IsPullRequest, + BuildSystem.TeamCity.Environment.Build.BuildConfName, + BuildSystem.TeamCity.Environment.Project.Name + ); + } + else + { + Information("Not running on TeamCity"); + } + + + Via TeamCity + + + if (TeamCity.IsRunningOnTeamCity) + { + Information( + @"Environment: + PullRequest: {0} + Build Configuration Name: {1} + TeamCity Project Name: {2}", + BuildSystem.TeamCity.Environment.PullRequest.IsPullRequest, + BuildSystem.TeamCity.Environment.Build.BuildConfName, + BuildSystem.TeamCity.Environment.Project.Name + ); + } + else + { + Information("Not running on TeamCity"); + } + + + + + + Initializes a new instance of the class. + + The cake environment. + The cake log. + + + + Gets a value indicating whether the current build is running on TeamCity. + + + true if the current build is running on TeamCity; otherwise, false. + + + + + Write a progress message to the TeamCity build log. + + Build log message. + + + + Write a progressStart message to the TeamCity build log. + + Build log message. + + + + Write a progressFinish message to the TeamCity build log. + + Build log message. + + + + Write the start of a message block to the TeamCity build log. + + Block name. + + + + Write the end of a message block to the TeamCity build log. + + Block name. + + + + Write the start of a build block to the TeamCity build log. + + Build compiler name. + + + + Write the end of a build block to the TeamCity build log. + + Build compiler name. + + + + Write a status message to the TeamCity build log. + + Message contents. + Build status. + Error details if status is error. + + + + Tell TeamCity to import data of a given type. + + Date type. + Data file path. + + + + Tell TeamCity to import coverage from dotCover snapshot file. + + Snapshot file path. + The full path to the dotCover home folder to override the bundled dotCover. + + + + Report a build problem to TeamCity. + + Description of build problem. + Build identity. + + + + Tells TeamCity to publish artifacts in the given directory. + + Path to artifacts. + + + + Tells TeamCity to change the current build number. + + The required build number. + + + + Tells TeamCity to set a named parameter with a given value + + The name of the parameter to set. + The value to set for the named parameter. + + + + This namespace contain types used + to interact with TeamCity. + + + + + Provides TF Build agent info for the current build and build agent + + + + + Initializes a new instance of the class. + + The environment. + + + + Gets the local path on the agent where all folders for a given build definition are created. + + + The local path on the agent where all folders for a given build definition are created. + + c:\agent\_work\1 + + + + Gets the directory the agent is installed into. This contains the agent software. + + If you are using an on-premises agent, this directory is specified by you. + + The directory the agent is installed into. + + c:\agent\ + + + + Gets the working directory for this agent. + + + The working directory for this agent. + + + + + Gets the ID of the agent. + + + The ID of the agent. + + + + + Gets the name of the agent that is registered with the pool. + + If you are using an on-premises agent, this is specified by you. + + The name of the agent that is registered with the pool. + + + + + Gets the name of the machine on which the agent is installed. + + + The name of the machine on which the agent is installed. + + + + + Gets a value indicating whether the current agent is a hosted agent. + + + true if the current agent is a hosted agent; otherwise, false. + + + + + Provides the type of a TF Build artifact. + + + + + The container type. + + + + + The file path type. + + + + + The version control path type. + + + + + The git reference type. + + + + + The TFVC label type. + + + + + Provides TF Build Definition information for the current build + + + + + Initializes a new instance of the class. + + The environment. + + + + Gets the build definition ID. + + + The build definition ID. + + + + + Gets the build definition name. + + + The build definition name. + + + + + Gets the build definition version. + + + The build definition version. + + + + + Provides TF Build Environment information for the current build. + + + + + Initializes a new instance of the class. + + The environment. + + + + Gets TF Build repository information + + + The TF Build repository information. + + Via BuildSystem + + + if (BuildSystem.TFBuild.IsRunningOnTFBuild) + { + Information( + @"Repository: + Branch: {0} + SourceVersion: {1} + Shelveset: {2}", + BuildSystem.TFBuild.Environment.Repository.Branch, + BuildSystem.TFBuild.Environment.Repository.SourceVersion, + BuildSystem.TFBuild.Environment.Repository.Shelveset + ); + } + else + { + Information("Not running on TFBuild"); + } + + + Via TFBuild + + + if (TFBuild.IsRunningOnTFBuild) + { + Information( + @"Repository: + Branch: {0} + SourceVersion: {1} + Shelveset: {2}", + TFBuild.Environment.Repository.Branch, + TFBuild.Environment.Repository.SourceVersion, + TFBuild.Environment.Repository.Shelveset + ); + } + else + { + Information("Not running on TFBuild"); + } + + + + + + Gets TF Build Definition information. + + + The TF Build Definition. + + Via BuildSystem + + + if (BuildSystem.TFBuild.IsRunningOnTFBuild) + { + Information( + @"BuildDefinition: + Id: {0} + Name: {1} + Version: {2}", + BuildSystem.TFBuild.Environment.BuildDefinition.Id, + BuildSystem.TFBuild.Environment.BuildDefinition.Name, + BuildSystem.TFBuild.Environment.BuildDefinition.Version + ); + } + else + { + Information("Not running on TFBuild"); + } + + + Via TFBuild + + + if (TFBuild.IsRunningOnTFBuild) + { + Information( + @"BuildDefinition: + Id: {0} + Name: {1} + Version: {2}", + TFBuild.Environment.BuildDefinition.Id, + TFBuild.Environment.BuildDefinition.Name, + TFBuild.Environment.BuildDefinition.Version + ); + } + else + { + Information("Not running on TFBuild"); + } + + + + + + Gets TF Build information. + + + The TF Build. + + Via BuildSystem + + + if (BuildSystem.TFBuild.IsRunningOnTFBuild) + { + Information( + @"Build: + Id: {0} + Number: {1} + QueuedBy: {2}", + BuildSystem.TFBuild.Environment.Build.Id, + BuildSystem.TFBuild.Environment.Build.Number, + BuildSystem.TFBuild.Environment.Build.QueuedBy + ); + } + else + { + Information("Not running on TFBuild"); + } + + + Via TFBuild + + + if (TFBuild.IsRunningOnTFBuild) + { + Information( + @"Build: + Id: {0} + Number: {1} + QueuedBy: {2}", + TFBuild.Environment.Build.Id, + TFBuild.Environment.Build.Number, + TFBuild.Environment.Build.QueuedBy + ); + } + else + { + Information("Not running on TFBuild"); + } + + + + + + Gets TF Team Project information. + + + The TF Team Project. + + Via BuildSystem + + + if (BuildSystem.TFBuild.IsRunningOnTFBuild) + { + Information( + @"TeamProject: + Id: {0} + Name: {1}", + BuildSystem.TFBuild.Environment.TeamProject.Id, + BuildSystem.TFBuild.Environment.TeamProject.Name + ); + } + else + { + Information("Not running on TFBuild"); + } + + + Via TFBuild + + + if (TFBuild.IsRunningOnTFBuild) + { + Information( + @"TeamProject: + Id: {0} + Name: {1}", + TFBuild.Environment.TeamProject.Id, + TFBuild.Environment.TeamProject.Name + ); + } + else + { + Information("Not running on TFBuild"); + } + + + + + + Gets TF Build agent information. + + + The TF Build agent. + + Via BuildSystem + + + if (BuildSystem.TFBuild.IsRunningOnTFBuild) + { + Information( + @"Agent: + Id: {0} + Name: {1}", + BuildSystem.TFBuild.Environment.Agent.Id, + BuildSystem.TFBuild.Environment.Agent.Name + ); + } + else + { + Information("Not running on TFBuild"); + } + + + Via TFBuild + + + if (TFBuild.IsRunningOnTFBuild) + { + Information( + @"Agent: + Id: {0} + Name: {1}", + TFBuild.Environment.Agent.Id, + TFBuild.Environment.Agent.Name + ); + } + else + { + Information("Not running on TFBuild"); + } + + + + + + Provides TF Build info for the current build. + + + + + Initializes a new instance of the class. + + The environment. + + + + Gets the ID of the record for the completed build. + + + The ID of the record for the completed build. + + + + + Gets the name of the completed build. + + You can specify the build number format that generates this value in the build definition. + + The name of the completed build. + + + + + Gets the URI for the build. + + vstfs:///Build/Build/1430 + + The URI for the build. + + + + + Gets the user who queued the build. + + + The user who queued the build. + + + + + Gets the user the build was requested for. + + + The user the build was requested for. + + + + + Gets the email of the user the build was requested for. + + + The email of the user the build was requested for. + + + + + Provides optional data associated with a TF Build logging message. + + + + + Gets or sets the source file path the message should originate from. + + + The path of the originating file. + + + + + Gets or sets the line number the message relates to. + + + The line number. + + + + + Gets or sets the column number the message relates to. + + + The column number. + + + + + Gets or sets the error code of the warning or error message. + + + The error code of the warning or error. + + + + + Providers TF Build agent for publishing code coverage results + + + + + Gets or Sets the tool from which code coverage results are generated. + + + + + Gets or Sets the path ath of the summary file containing code coverage statistics, such as line, method, and class coverage. + + + + + Gets or Sets the Path of the code coverage HTML report directory. The report directory is published for later viewing as an artifact of the build. + + + + + Gets or Sets the file paths for any additional code coverage files to be published as artifacts of the build. + + + + + Provides TF Build agent info for publishing test results + + + + + Gets or Sets the type test runner the results are formated in + + + + + Gets or sets the list of Test Result files to publish. + + + + + Gets or Sets whether to merge all Test Result Files into one run + + + + + Gets or Sets the Platform for which the tests were run on + + + + + Gets or Sets the configuration for which the tests were run on + + + + + Gets or Sets a name for the Test Run. + + + + + Gets or Sets whether to opt in/out of publishing test run level attachments + + + + + Provides optional data associated with a TF Build timeline record. + + + + + Gets or sets the parent record of a new or existing timeline record. + + + The ID of the parent record. + + + + + Gets or sets the start time of this record. + + + The start time of this record. + + + + + Gets or sets the finish time of this record. + + + The finish time of this record. + + + + + Gets or sets the current progress of this record. + + + The current progress of this record. + + + + + Gets or sets the current status of this record. + + + The current status of this record. + + + + + Gets or sets the result of this record. + + + The result of this record. + + + + + Provides TF Build Repository information for the current build + + + + + Initializes a new instance of the class. + + The environment. + + + + Gets name of the branch the build was queued for. + + + The SCM branch + + + + + Gets the latest version control change that is included in this build. + + Note: for Git this is the commit ID. For TFVC this is the changeset. + + The SCM source version + + + + + Gets the name of the shelveset you are building, if you are running a gated build or a shelveset build. + + Defined only if your repository is Team Foundation Version Control. + + The shelveset name + + + + + Gets the name of the repository + + + The name of the repository + + + + + Gets the type of the current repository. + + + The type of the current repository. + + + + + Provides the result of a TF Build task record. + + + + + Succeeded status. + + + + + Succeeded with issues status. + + + + + Failed status. + + + + + Cancelled status. + + + + + Skipped status. + + + + + Provides the status of a TF Build task record. + + + + + Unknown status. + + + + + Initialized status. + + + + + In progress status. + + + + + Completed status. + + + + + Provides Team Foundation Team Project information for the current build + + + + + Initializes a new instance of the class. + + The environment. + + + + Gets the name of the team project that contains this build. + + + The name of the team project that contains this build. + + + + + Gets the ID of the team project that contains this build. + + + The ID of the team project that contains this build. + + + + + Gets the URI of the team foundation collection. + + + The URI of the team foundation collection. + + + + + Provides the known values for the Code Coverage tool formats + + + + + JaCoCo code coverage format + + + + + Cobertura code coverage format + + + + + Provides the known values for the TF Build Repository types. + + + + + TFS Git repository. + + + + + Team Foundation Version Control repository. + + + + + Git repository hosted on an external server. + + + + + GitHub repository. + + + + + Subversion repository. + + + + + Providers known values for the TF Test Runner types + + + + + JUnit Test Result Format + + + + + NUnit (v2) Test Result Format + + + + + Visual Studio (MSTest) Test Result Format + + + + + XUnit Test Result Format + + + + + Represents a TF Build command provider. + + + + + Log a warning issue to timeline record of current task. + + The warning message. + + + + Log a warning issue with detailed data to timeline record of current task. + + The warning message. + The message data. + + + + Log an error to timeline record of current task. + + The error message. + + + + Log an error with detailed data to timeline record of current task. + + The error message. + The message data. + + + + Set progress and current operation for current task. + + Current progress as percentage. + The current operation. + + + + Finish timeline record for current task and set task result to succeeded. + + + + + Finish timeline record for current task and set task result. + + The task result status. + + + + Create detail timeline record. + + Name of the new timeline record. + Type of the new timeline record. + Order of the timeline record. + The timeline record ID. + + + + Create detail timeline record. + + Name of the new timeline record. + Type of the new timeline record. + Order of the timeline record. + Additional data for the new timeline record. + The timeilne record ID. + + + + Update an existing detail timeline record. + + The ID of the existing timeline record. + Additional data for the timeline record. + + + + Sets a variable in the variable service of the task context. + + + The variable is exposed to following tasks as an environment variable. + + The variable name. + The variable value. + + + + Sets a secret variable in the variable service of the task context. + + + The variable is not exposed to following tasks as an environment variable, and must be passed as inputs. + + The variable name. + The variable value. + + + + Upload and attach summary markdown to current timeline record. + + + This summary is added to the build/release summary and is not available for download with logs. + + Path to the summary markdown file. + + + + Upload file as additional log information to the current timeline record. + + + + The file shall be available for download along with task logs. + + + Requires agent version 1.101. + + + Path to the additional log file. + + + + Create an artifact link, such as a file or folder path or a version control path. + + The artifact name.. + The artifact type. + The link path or value. + + + + Upload local file into a file container folder. + + Folder that the file will upload to. + Path to the local file. + + + + Upload local file into a file container folder, and create an artifact. + + Folder that the file will upload to. + Path to the local file. + The artifact name. + + + + Upload additional log to build container's logs/tool folder. + + The log file. + + + + Update build number for current build. + + + Requires agent version 1.88. + + The build number. + + + + Add a tag for current build. + + + Requires agent version 1.95 + + The tag. + + + + Publishes and uploads tests results + + The publish test results data + + + + Publishes and uploads code coverage results + + The code coverage data + + + + Represents a TF Build provider. + + + + + Gets a value indicating whether the current build is running on VSTS. + + + true if the current build is running on VSTS; otherwise, false. + + + + + Gets a value indicating whether the current build is running on TFS. + + + true if the current build is running on TFS; otherwise, false. + + + + + Gets the TF Build environment. + + + The TF Build environment. + + + + + Gets the TF Build Commands provider. + + + The TF Build commands provider. + + + + + Responsible for issuing TF Build agent commands (see ). + + + + + Initializes a new instance of the class. + + The environment. + The log. + + + + Log a warning issue to timeline record of current task. + + The warning message. + + + + Log a warning issue with detailed data to timeline record of current task. + + The warning message. + The message data. + + + + Log an error to timeline record of current task. + + The error message. + + + + Log an error with detailed data to timeline record of current task. + + The error message. + The message data. + + + + Set progress and current operation for current task. + + Current progress as percentage. + The current operation. + + + + Finish timeline record for current task and set task result to succeeded. + + + + + Finish timeline record for current task and set task result. + + The task result status. + + + + Create detail timeline record. + + Name of the new timeline record. + Type of the new timeline record. + Order of the timeline record. + The timeline record ID. + + + + Create detail timeline record. + + Name of the new timeline record. + Type of the new timeline record. + Order of the timeline record. + Additional data for the new timeline record. + The timeilne record ID. + + + + Update an existing detail timeline record. + + The ID of the existing timeline record. + Additional data for the timeline record. + + + + Sets a variable in the variable service of the task context. + + + The variable is exposed to following tasks as an environment variable. + + The variable name. + The variable value. + + + + Sets a secret variable in the variable service of the task context. + + + The variable is not exposed to following tasks as an environment variable, and must be passed as inputs. + + The variable name. + The variable value. + + + + Upload and attach summary markdown to current timeline record. + + + This summary is added to the build/release summary and is not available for download with logs. + + Path to the summary markdown file. + + + + Upload file as additional log information to the current timeline record. + + + + The file shall be available for download along with task logs. + + + Requires agent version 1.101. + + + Path to the additional log file. + + + + Create an artifact link, such as a file or folder path or a version control path. + + The artifact name.. + The artifact type. + The link path or value. + + + + Upload local file into a file container folder. + + Folder that the file will upload to. + Path to the local file. + + + + Upload local file into a file container folder, and create an artifact. + + Folder that the file will upload to. + Path to the local file. + The artifact name. + + + + Upload additional log to build container's logs/tool folder. + + The log file. + + + + Update build number for current build. + + + Requires agent version 1.88. + + The build number. + + + + Add a tag for current build. + + + Requires agent version 1.95 + + The tag. + + + + Publishes and uploads tests results + + The publish test results data + + + + Publishes and uploads code coverage results + + The code coverage data + + + + Responsible for communicating with Team Foundation Build (VSTS or TFS). + + + + + Initializes a new instance of the class. + + The environment. + The log. + + + + Gets a value indicating whether the current build is running on VSTS. + + + true if the current build is running on VSTS; otherwise, false. + + + + + Gets a value indicating whether the current build is running on TFS. + + + true if the current build is running on TFS; otherwise, false. + + + + + Gets the TF Build environment. + + + The TF Build environment. + + + + + Gets the TF Build Commands provider. + + + The TF Build commands provider. + + + + + Gets a value indicating whether the current build is running on a hosted build agent. + + + true if the current build is running on a hosted agent; otherwise, false. + + + + + Base class used to provide information about the TF Build environment. + + + + + Initializes a new instance of the class. + + The environment. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Gets the current repository type as a from an environment variable. + + The environment variable name. + The current repository type. + + + + Provides Travis CI build information for the current build. + + + + + Gets the branch for the current build. + + + The branch. + + + + + Gets the build directory for the current build. + + + The build directory. + + + + + Gets the build identifier for the current build. + + + The build identifier. + + + + + Gets the build number for the current build. + + + The build number. + + + + + Gets the test result indicating if the current build is successful or broken. + + + The test result. + + + + + Gets the tag name for the current build. + + + The tag. + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides Travis CI environment information for the current build. + + + + + Gets Travis CI build information for the current build. + + + The build. + + Via BuildSystem + + + if (BuildSystem.TravisCI.IsRunningOnTravisCI) + { + Information( + @"Build: + Branch: {0} + BuildDirectory: {1} + BuildId: {2}", + BuildSystem.TravisCI.Environment.Build.Branch, + BuildSystem.TravisCI.Environment.Build.BuildDirectory, + BuildSystem.TravisCI.Environment.Build.BuildId + ); + } + else + { + Information("Not running on TravisCI"); + } + + + Via TravisCI + + + if (TravisCI.IsRunningOnTravisCI) + { + Information( + @"Build: + Branch: {0} + BuildDirectory: {1} + BuildId: {2}", + TravisCI.Environment.Build.Branch, + TravisCI.Environment.Build.BuildDirectory, + TravisCI.Environment.Build.BuildId + ); + } + else + { + Information("Not running on TravisCI"); + } + + + + + + Gets Travis CI job information for the current build. + + + The job. + + Via BuildSystem + + + if (BuildSystem.TravisCI.IsRunningOnTravisCI) + { + Information( + @"Job: + JobId: {0} + JobNumber: {1} + OSName: {2}", + BuildSystem.TravisCI.Environment.Job.JobId, + BuildSystem.TravisCI.Environment.Job.JobNumber, + BuildSystem.TravisCI.Environment.Job.OSName + ); + } + else + { + Information("Not running on TravisCI"); + } + + + Via TravisCI + + + if (TravisCI.IsRunningOnTravisCI) + { + Information( + @"Job: + JobId: {0} + JobNumber: {1} + OSName: {2}", + TravisCI.Environment.Job.JobId, + TravisCI.Environment.Job.JobNumber, + TravisCI.Environment.Job.OSName + ); + } + else + { + Information("Not running on TravisCI"); + } + + + + + + Gets Travis CI repository information for the current build. + + + The repository. + + Via BuildSystem + + + if (BuildSystem.TravisCI.IsRunningOnTravisCI) + { + Information( + @"Repository: + Commit: {0} + CommitRange: {1} + PullRequest: {2}", + BuildSystem.TravisCI.Environment.Repository.Commit, + BuildSystem.TravisCI.Environment.Repository.CommitRange, + BuildSystem.TravisCI.Environment.Repository.PullRequest + ); + } + else + { + Information("Not running on TravisCI"); + } + + + Via TravisCI + + + if (TravisCI.IsRunningOnTravisCI) + { + Information( + @"Repository: + Commit: {0} + CommitRange: {1} + PullRequest: {2}", + TravisCI.Environment.Repository.Commit, + TravisCI.Environment.Repository.CommitRange, + TravisCI.Environment.Repository.PullRequest + ); + } + else + { + Information("Not running on TravisCI"); + } + + + + + + Gets a value indicating whether the current build is continuous integration. + + + true if ci; otherwise, false. + + Via BuildSystem + + + if (BuildSystem.TravisCI.IsRunningOnTravisCI) + { + Information( + @"CI: {0}", + BuildSystem.TravisCI.Environment.CI + ); + } + else + { + Information("Not running on TravisCI"); + } + + + Via TravisCI + + + if (TravisCI.IsRunningOnTravisCI) + { + Information( + @"CI: {0}", + TravisCI.Environment.CI + ); + } + else + { + Information("Not running on TravisCI"); + } + + + + + + Gets the Travis CI home directory. + + + The home. + + Via BuildSystem + + + if (BuildSystem.TravisCI.IsRunningOnTravisCI) + { + Information( + @"Home: {0}", + BuildSystem.TravisCI.Environment.Home + ); + } + else + { + Information("Not running on TravisCI"); + } + + + Via TravisCI + + + if (TravisCI.IsRunningOnTravisCI) + { + Information( + @"Home: {0}", + TravisCI.Environment.Home + ); + } + else + { + Information("Not running on TravisCI"); + } + + + + + + Gets a value indicating whether the environment is Travis. + + + true if Travis; otherwise, false. + + Via BuildSystem + + + if (BuildSystem.TravisCI.IsRunningOnTravisCI) + { + Information( + @"Travis: {0}", + BuildSystem.TravisCI.Environment.Travis + ); + } + else + { + Information("Not running on TravisCI"); + } + + + Via TravisCI + + + if (TravisCI.IsRunningOnTravisCI) + { + Information( + @"Travis: {0}", + TravisCI.Environment.Travis + ); + } + else + { + Information("Not running on TravisCI"); + } + + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides Travis CI job information for the current build. + + + + + Gets the job identifier for the current job.. + + + The job identifier. + + + + + Gets the job number for the current job. + + + The job number. + + + + + Gets the name of the operating system for the current job. + + + The name of the os. + + + + + Gets a value indicating whether encrypted environment variables are being used for the current job. + + + true if [secure environment variables are in use]; otherwise, false. + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides Travis CI repository information for the current build. + + + + + Gets the commit that the current build is testing. + + + The commit. + + + + + Gets the commit range for the current pull request. + + + The commit range. + + + + + Gets the pull request. + + + The pull request. + + + + + Gets the slug of the respository currently being built. + + + The slug. + + + + + Initializes a new instance of the class. + + The environment. + + + + Represents a Travis CI Provider. + + + + + Gets a value indicating whether this instance is running on Travis CI. + + + true if this instance is running on Travis CI; otherwise, false. + + + + + Gets the environment. + + + The environment. + + + + + Write the start of a message fold to the Travis CI build log. + + Name of the group. + + + + Write the start of a message fold to the Travis CI build log. + + Name of the group. + + + + A set of extensions for allowing "using" with Travis CI "blocks". + + + + + Folds travis log output. + + The Travis CI provider. + The name. + An . + + + + Disposable helper for writing Travis CI message blocks. + + + + + Initializes a new instance of the class. + + The Travis CI provider. + The dispose action. + + + + Writes the end block for this message block. + + + + + Base class used to provide information about the Travis CI environment. + + + + + Initializes a new instance of the class. + + The environment. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Responsible for communicating with Travis CI. + + + + + Initializes a new instance of the class. + + The environment. + The log. + + + + Gets the Travis CI environment. + + + The environment. + + + + + Gets a value indicating whether this instance is running on Travis CI. + + + true if this instance is running on Travis CI; otherwise, false. + + + + + Write the start of a message fold to the Travis CI build log. + + Name of the group. + + + + Write the start of a message fold to the Travis CI build log. + + Name of the group. + + + + This namespace contain types that + support different build system related tasks. + + + + + Contains functionality related to logging. + + + + + Writes an error message to the log using the specified format information. + + The context. + The format. + The arguments. + + + Error("Hello {0}! Today is an {1:dddd}", "World", DateTime.Now); + + + + + + Writes an error message to the log using the specified log message action. + Evaluation message only if verbosity same or more verbose. + + the context. + The function called for message when logging. + + + Error(logAction=>logAction("Hello {0}! Today is an {1:dddd}", "World", DateTime.Now)); + + + + + + Writes an error message to the log using the specified value. + + the context. + The value. + + + Error(new {FirstName = "John", LastName="Doe"}); + + + + + + Writes an error message to the log using the specified string value. + + the context. + The value. + + + Error("{string}"); + + + + + + Writes a warning message to the log using the specified format information. + + The context. + The format. + The arguments. + + + Warning("Hello {0}! Today is an {1:dddd}", "World", DateTime.Now); + + + + + + Writes a warning message to the log using the specified log message action. + Evaluation message only if verbosity same or more verbose. + + the context. + The function called for message when logging. + + + Warning(logAction=>logAction("Hello {0}! Today is an {1:dddd}", "World", DateTime.Now)); + + + + + + Writes an warning message to the log using the specified value. + + the context. + The value. + + + Warning(new {FirstName = "John", LastName="Doe"}); + + + + + + Writes an warning message to the log using the specified string value. + + the context. + The value. + + + Warning("{string}"); + + + + + + Writes an informational message to the log using the specified format information. + + The context. + The format. + The arguments. + + + Information("Hello {0}! Today is an {1:dddd}", "World", DateTime.Now); + + + + + + Writes an informational message to the log using the specified log message action. + Evaluation message only if verbosity same or more verbose. + + the context. + The function called for message when logging. + + + Information(logAction=>logAction("Hello {0}! Today is an {1:dddd}", "World", DateTime.Now)); + + + + + + Writes an informational message to the log using the specified value. + + The context. + The value. + + + Information(new {FirstName = "John", LastName="Doe"}); + + + + + + Writes an informational message to the log using the specified string value. + + The context. + The value. + + + Information("{string}"); + + + + + + Writes a verbose message to the log using the specified format information. + + The context. + The format. + The arguments. + + + Verbose("Hello {0}! Today is an {1:dddd}", "World", DateTime.Now); + + + + + + Writes a verbose message to the log using the specified log message action. + Evaluation message only if verbosity same or more verbose. + + the context. + The function called for message when logging. + + + Verbose(logAction=>logAction("Hello {0}! Today is an {1:dddd}", "World", DateTime.Now)); + + + + + + Writes a verbose message to the log using the specified value. + + The context. + The value. + + + Verbose(new {FirstName = "John", LastName="Doe"}); + + + + + + Writes a verbose message to the log using the specified string value. + + The context. + The value. + + + Verbose("{string}"); + + + + + + Writes a debug message to the log using the specified format information. + + The context. + The format. + The arguments. + + + Debug("Hello {0}! Today is an {1:dddd}", "World", DateTime.Now); + + + + + + Writes a debug message to the log using the specified log message action. + Evaluation message only if verbosity same or more verbose. + + the context. + The function called for message when logging. + + + Debug(logAction=>logAction("Hello {0}! Today is an {1:dddd}", "World", DateTime.Now)); + + + + + + Writes a debug message to the log using the specified value. + + the context. + The value. + + + Debug(new {FirstName = "John", LastName="Doe"}); + + + + + + Writes a debug message to the log using the specified string value. + + the context. + The value. + + + Debug("{string}"); + + + + + + This namespace contain types that + enable you to interact with build logs. + + + + + Contains functionality related to arguments. + + + + + Determines whether or not the current script execution is a dry run. + + The context. + Whether or not the current script execution is a dry run. + + + Setup(context => + { + if (!context.IsDryRun()) + { + // Do things that you don't want to + // do when script is being dry runned. + } + }); + + + + + + Contains functionality related to the environment. + + + + + Retrieves the value of the environment variable or null if the environment variable does not exist. + + + + Information(EnvironmentVariable("HOME") ?? "Unknown location"); + + + The context. + The environment variable. + The environment variable or null if the environment variable does not exist. + + + + Retrieves all environment variables + + + + var envVars = EnvironmentVariables(); + + string path; + if (envVars.TryGetValue("PATH", out path)) + { + Information("Path: {0}", path); + } + + foreach(var envVar in envVars) + { + Information( + "Key: {0}\tValue: \"{1}\"", + envVar.Key, + envVar.Value + ); + } + + + The context. + The environment variables + + + + Checks for the existence of a value for a given environment variable. + + + + if (HasEnvironmentVariable("SOME_ENVIRONMENT_VARIABLE")) + { + Information("The environment variable was present."); + } + + + The context. + The environment variable. + + true if the environment variable exist; otherwise false. + + + + + Determines whether the build script is running on Windows. + + + + if (IsRunningOnWindows()) + { + Information("Windows!"); + } + + + The context. + + true if the build script is running on Windows; otherwise false. + + + + + Determines whether the build script running on a Unix or Linux based system. + + + + if (IsRunningOnUnix()) + { + Information("Not Windows!"); + } + + + The context. + + true if the build script running on a Unix or Linux based system; otherwise false. + + + + + Contains settings used by DeleteDirectory. + + + + + Gets or sets a value indicating whether to perform a recursive delete if set to true. + + It is set to false by default. + + + + + + Gets or sets a value indicating whether to delete read-only files if set to true. + + It is set to false by default. + + + + + + Contains extension methods for working with directories. + + + + + Gets a directory path from string. + + + + // Get the temp directory. + var root = Directory("./"); + var temp = root + Directory("temp"); + + // Clean the directory. + CleanDirectory(temp); + + + The context. + The path. + A directory path. + + + + Deletes the specified directories. + + + + var directoriesToDelete = new DirectoryPath[]{ + Directory("be"), + Directory("gone") + }; + DeleteDirectories(directoriesToDelete, recursive:true); + + + The context. + The directory paths. + Will perform a recursive delete if set to true. + + + + Deletes the specified directories. + + + + var directoriesToDelete = new DirectoryPath[]{ + Directory("be"), + Directory("gone") + }; + DeleteDirectories(directoriesToDelete, new DeleteDirectorySettings { + Recursive = true, + Force = true + }); + + + The context. + The directory paths. + The delete settings. + + + + Deletes the specified directories. + + + + var directoriesToDelete = new []{ + "be", + "gone" + }; + DeleteDirectories(directoriesToDelete, recursive:true); + + + The context. + The directory paths. + Will perform a recursive delete if set to true. + + + + Deletes the specified directories. + + + + var directoriesToDelete = new []{ + "be", + "gone" + }; + DeleteDirectories(directoriesToDelete, new DeleteDirectorySettings { + Recursive = true, + Force = true + }); + + + The context. + The directory paths. + The delete settings. + + + + Deletes the specified directory. + + + + DeleteDirectory("./be/gone", recursive:true); + + + The context. + The directory path. + Will perform a recursive delete if set to true. + + + + Deletes the specified directory. + + + + DeleteDirectory("./be/gone", new DeleteDirectorySettings { + Recursive = true, + Force = true + }); + + + The context. + The directory path. + The delete settings. + + + + Cleans the directories matching the specified pattern. + Cleaning the directory will remove all its content but not the directory itself. + + + + CleanDirectories("./src/**/bin/debug"); + + + The context. + The pattern to match. + + + + Cleans the directories matching the specified pattern. + Cleaning the directory will remove all its content but not the directory itself. + + + + Func<IFileSystemInfo, bool> exclude_node_modules = + fileSystemInfo=>!fileSystemInfo.Path.FullPath.EndsWith( + "node_modules", + StringComparison.OrdinalIgnoreCase); + CleanDirectories("./src/**/bin/debug", exclude_node_modules); + + + The context. + The pattern to match. + The predicate used to filter directories based on file system information. + + + + Cleans the specified directories. + Cleaning a directory will remove all its content but not the directory itself. + + + + var directoriesToClean = GetDirectories("./src/**/bin/"); + CleanDirectories(directoriesToClean); + + + The context. + The directory paths. + + + + Cleans the specified directories. + Cleaning a directory will remove all its content but not the directory itself. + + + + var directoriesToClean = new []{ + "./src/Cake/obj", + "./src/Cake.Common/obj" + }; + CleanDirectories(directoriesToClean); + + + The context. + The directory paths. + + + + Cleans the specified directory. + + + + CleanDirectory("./src/Cake.Common/obj"); + + + The context. + The directory path. + + + + Cleans the specified directory. + + + + CleanDirectory("./src/Cake.Common/obj", fileSystemInfo=>!fileSystemInfo.Hidden); + + + The context. + The directory path. + Predicate used to determine which files/directories should get deleted. + + + + Creates the specified directory. + + + + CreateDirectory("publish"); + + + The context. + The directory path. + + + + Creates the specified directory if it does not exist. + + + + EnsureDirectoryExists("publish"); + + + The context. + The directory path. + + + + Copies the contents of a directory, including subdirectories to the specified location. + + + + CopyDirectory("source_path", "destination_path"); + + + The context. + The source directory path. + The destination directory path. + + + + Determines whether the given path refers to an existing directory. + + + + var dir = "publish"; + if (!DirectoryExists(dir)) + { + CreateDirectory(dir); + } + + + The context. + The to check. + true if refers to an existing directory; + false if the directory does not exist or an error occurs when trying to + determine if the specified path exists. + + + + Makes the path absolute (if relative) using the current working directory. + + + + var path = MakeAbsolute(Directory("./resources")); + + + The context. + The path. + An absolute directory path. + + + + Moves an existing directory to a new location, providing the option to specify a new directory name. + + The context. + The directory path. + The target directory path. + + + MoveDirectory("mydir", "newparent/newdir"); + + + + + + Gets a list of all the directories inside a directory. + + + + var directories = GetSubDirectories("some/dir"); + + + The context. + The directory path. + An absolute directory path. + + + + Contains functionality related to file operations. + + + + + Gets a file path from string. + + + + // Get the temp file. + var root = Directory("./"); + var temp = root + File("temp"); + + // Delete the file. + CleanDirectory(temp); + + + The context. + The path. + A file path. + + + + Copies an existing file to a new location. + + The context. + The file path. + The target directory path. + + + CopyFileToDirectory("test.txt", "./targetdir"); + + + + + + Copies an existing file to a new file, providing the option to specify a new file name. + + The context. + The file path. + The target file path. + + + CopyFile("test.tmp", "test.txt"); + + + + + + Copies all files matching the provided pattern to a new location. + + The context. + The pattern. + The target directory path. + + + CopyFiles("Cake.*", "./publish"); + + + + + + Copies existing files to a new location. + + The context. + The file paths. + The target directory path. + + + var files = GetFiles("./**/Cake.*"); + CopyFiles(files, "destination"); + + + + + + Copies existing files to a new location. + + The context. + The file paths. + The target directory path. + + + CreateDirectory("destination"); + var files = new [] { + "Cake.exe", + "Cake.pdb" + }; + CopyFiles(files, "destination"); + + + + + + Copies all files matching the provided pattern to a new location. + + The context. + The pattern. + The target directory path. + Keep the folder structure. + + + CopyFiles("Cake.*", "./publish"); + + + + + + Copies existing files to a new location. + + The context. + The file paths. + The target directory path. + Keep the folder structure. + + + var files = GetFiles("./**/Cake.*"); + CopyFiles(files, "destination"); + + + + + + Copies existing files to a new location. + + The context. + The file paths. + The target directory path. + Keep the folder structure. + + + CreateDirectory("destination"); + var files = new [] { + "Cake.exe", + "Cake.pdb" + }; + CopyFiles(files, "destination"); + + + + + + Moves an existing file to a new location. + + The context. + The file path. + The target directory path. + + + MoveFileToDirectory("test.txt", "./targetdir"); + + + + + + Moves existing files matching the specified pattern to a new location. + + The context. + The pattern. + The target directory path. + + + MoveFiles("./publish/Cake.*", "./destination"); + + + + + + Moves existing files to a new location. + + The context. + The file paths. + The target directory path. + + + var files = GetFiles("./publish/Cake.*"); + MoveFiles(files, "destination"); + + + + + + Moves an existing file to a new location, providing the option to specify a new file name. + + The context. + The file path. + The target file path. + + + MoveFile("test.tmp", "test.txt"); + + + + + + Deletes the specified files. + + The context. + The pattern. + + + DeleteFiles("./publish/Cake.*"); + + + + + + Deletes the specified files. + + The context. + The file paths. + + + var files = GetFiles("./destination/Cake.*"); + DeleteFiles(files); + + + + + + Deletes the specified file. + + The context. + The file path. + + + DeleteFile("deleteme.txt"); + + + + + + Determines whether the given path refers to an existing file. + + The context. + The to check. + true if refers to an existing file; + false if the file does not exist or an error occurs when trying to + determine if the specified file exists. + + + if (FileExists("findme.txt")) + { + Information("File exists!"); + } + + + + + + Makes the path absolute (if relative) using the current working directory. + + The context. + The path. + An absolute file path. + + + var path = MakeAbsolute(File("./resources")); + + + + + + Gets the size of a file in bytes. + + The context. + The path. + Size of file in bytes or -1 if file doesn't exist. + + + Information("File size: {0}", FileSize("./build.cake")); + + + + + + Contains functionality related to file system globbing. + + + + + Gets all files matching the specified pattern. + + + + var files = GetFiles("./**/Cake.*.dll"); + foreach(var file in files) + { + Information("File: {0}", file); + } + + + The context. + The glob pattern to match. + A . + + + + Gets all files matching the specified pattern. + + + + Func<IFileSystemInfo, bool> exclude_node_modules = + fileSystemInfo => !fileSystemInfo.Path.FullPath.EndsWith( + "node_modules", StringComparison.OrdinalIgnoreCase); + + var files = GetFiles("./**/Cake.*.dll", exclude_node_modules); + foreach(var file in files) + { + Information("File: {0}", file); + } + + + The context. + The glob pattern to match. + The predicate used to filter directories based on file system information. + A . + + + + Gets all directory matching the specified pattern. + + + + var directories = GetDirectories("./src/**/obj/*"); + foreach(var directory in directories) + { + Information("Directory: {0}", directory); + } + + + The context. + The glob pattern to match. + A . + + + + Gets all directory matching the specified pattern. + + + + Func<IFileSystemInfo, bool> exclude_node_modules = + fileSystemInfo => !fileSystemInfo.Path.FullPath.EndsWith( + "node_modules", StringComparison.OrdinalIgnoreCase); + + var directories = GetDirectories("./src/**/obj/*", exclude_node_modules); + foreach(var directory in directories) + { + Information("Directory: {0}", directory); + } + + + The context. + The glob pattern to match. + The predicate used to filter directories based on file system information. + A . + + + + Represents a that can be easily converted. + + To get the underlying : + + ConvertableDirectoryPath convertable = Directory("./root"); + DirectoryPath path = (DirectoryPath)convertable; + + To combine two directories: + + ConvertableDirectoryPath path = Directory("./root") + Directory("other"); + + To combine a directory with a file: + + ConvertableFilePath path = Directory("./root") + File("other.txt"); + + + + + + + Gets the path. + + The path. + + + + Initializes a new instance of the class. + + The path. + + + + Operator that combines A instance + with another instance. + + The left directory path operand. + The right directory path operand. + A new directory path representing a combination of the two provided paths. + + + + Operator that combines A instance + with a instance. + + The left directory path operand. + The right directory path operand. + A new directory path representing a combination of the two provided paths. + + + + Operator that combines A instance + with a instance. + + The left directory path operand. + The right file path operand. + A new file path representing a combination of the two provided paths. + + + + Operator that combines A instance + with a instance. + + The left directory path operand. + The right file path operand. + A new file path representing a combination of the two provided paths. + + + + Performs an implicit conversion from to . + + The path. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The path. + The result of the conversion. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Represents a that can be easily converted. + + + + + Initializes a new instance of the class. + + The path. + + + + Gets the path. + + The actual path. + + + + Performs an implicit conversion from to . + + The path. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The path. + The result of the conversion. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + This namespace contain types related + to file system paths. + + + + + Contains functionality related to compress files to Zip. + + + + + Zips the specified directory. + + The context. + The root path. + The output path. + + + Zip("./publish", "publish.zip"); + + + + + + Zips the files matching the specified pattern. + + The context. + The root path. + The output path. + The pattern. + + + Zip("./", "xmlfiles.zip", "./*.xml"); + + + + + + Zips the specified files. + + The context. + The root path. + The output path. + The file paths. + + + var files = GetFiles("./**/Cake.*.dll"); + Zip("./", "cakeassemblies.zip", files); + + + + + + Zips the specified files. + + The context. + The root path. + The output path. + The file paths. + + + var files = new [] { + "./src/Cake/bin/Debug/Autofac.dll", + "./src/Cake/bin/Debug/Cake.Common.dll", + "./src/Cake/bin/Debug/Cake.Core.dll", + "./src/Cake/bin/Debug/Cake.exe" + }; + Zip("./", "cakebinaries.zip", files); + + + + + + Unzips the specified file + + The context. + Zip file to unzip. + Output path to unzip into. + + + Unzip("Cake.zip", "./cake"); + + + + + + Performs Zip compression. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The log. + + + + Zips the specified directory. + + The root path. + The output path. + The files to zip. + + + + Unzips the specified file to the specified output path + + Zip file path. + Output directory path. + + + + This namespace contain types that support input and output, + including the ability to read and write data to streams and to + interact with the file system. + + + + + This namespace contain types related + to network operations. + + + + + The module responsible for registering + default types in the Cake.Common assembly. + + + + + Performs custom registrations in the provided registrar. + + The container registrar. + + + + Contains settings for + + + + + Gets or sets the Username to use when downloading the file + + + + + Gets or sets the Password to use when downloading the file + + + + + Gets or sets a value indicating whether default credentials are sent when downloading the file + + + If set to true, any Username and Password that has been speficied will be ignored. + + + + + Contains functionality related to HTTP operations + + + + + Downloads the specified resource over HTTP to a temporary file. + + + + var resource = DownloadFile("http://www.example.org/index.html"); + + + The context. + The URL of the resource to download. + The path to the downloaded file. + + + + Downloads the specified resource over HTTP to a temporary file with specified settings. + + + + var resource = DownloadFile("http://www.example.org/index.html", new DownloadFileSettings() + { + Username = "bob", + Password = "builder" + }); + + + The context. + The URL of the resource to download. + The settings. + The path to the downloaded file. + + + + Downloads the specified resource over HTTP to a temporary file. + + + + var address = new Uri("http://www.example.org/index.html"); + var resource = DownloadFile(address); + + + The context. + The URL of file to download. + The path to the downloaded file. + + + + Downloads the specified resource over HTTP to a temporary file with specified settings. + + + + var address = new Uri("http://www.example.org/index.html"); + var resource = DownloadFile(address, new DownloadFileSettings() + { + Username = "bob", + Password = "builder" + }); + + + The context. + The URL of file to download. + The settings. + The path to the downloaded file. + + + + Downloads the specified resource over HTTP to the specified output path. + + + + var outputPath = File("./index.html"); + DownloadFile("http://www.example.org/index.html", outputPath); + + + The context. + The URL of the resource to download. + The output path. + + + + Downloads the specified resource over HTTP to the specified output path and settings. + + + + var outputPath = File("./index.html"); + DownloadFile("http://www.example.org/index.html", outputPath, new DownloadFileSettings() + { + Username = "bob", + Password = "builder" + }); + + + The context. + The URL of the resource to download. + The output path. + The settings. + + + + Downloads the specified resource over HTTP to the specified output path. + + + + var address = new Uri("http://www.example.org/index.html"); + var outputPath = File("./index.html"); + DownloadFile(address, outputPath, new DownloadFileSettings() + { + Username = "bob", + Password = "builder" + }); + + + The context. + The URL of the resource to download. + The output path. + The settings. + + + + Uploads the specified file via a HTTP POST to the specified uri using multipart/form-data. + + + + var address = new Uri("http://www.example.org/upload"); + UploadFile(address, @"path/to/file.txt"); + + + The context. + The URL of the upload resource. + The file to upload. + + + + Uploads the specified file via a HTTP POST to the specified uri using multipart/form-data. + + + + var address = "http://www.example.org/upload"; + UploadFile(address, @"path/to/file.txt"); + + + The context. + The URL of the upload resource. + The file to upload. + + + + Uploads the specified byte array via a HTTP POST to the specified uri using multipart/form-data. + + + + var address = new Uri("http://www.example.org/upload"); + UploadFile(address, @"path/to/file.txt"); + + + The context. + The URL of the upload resource. + The data to upload. + The filename to give the uploaded data + + + + Uploads the specified byte array via a HTTP POST to the specified uri using multipart/form-data. + + + + var address = "http://www.example.org/upload"; + UploadFile(address, @"path/to/file.txt"); + + + The context. + The URL of the upload resource. + The data to upload. + The filename to give the uploaded data + + + + Gets an pre-populated with the correct default headers such as User-Agent. + The returned client should be disposed of by the caller. + + The current Cake context. + Indicates whether or not to use default credentials. + A instance. + + + + This namespace contain types related + to security aspects such as hashing. + + + + + Contains functionality related to processes. + + + + + Starts the process resource that is specified by the filename. + + The context. + The file name. + The exit code that the started process specified when it terminated. + + + var exitCodeWithoutArguments = StartProcess("ping"); + // This should output 1 as argument is missing + Information("Exit code: {0}", exitCodeWithoutArguments); + + + + + + Starts the process resource that is specified by the filename and arguments + + The context. + Name of the file. + The arguments used in the process settings. + The exit code that the started process specified when it terminated. + + + var exitCodeWithArgument = StartProcess("ping", "localhost"); + // This should output 0 as valid arguments supplied + Information("Exit code: {0}", exitCodeWithArgument); + + + + + + Starts the process resource that is specified by the filename and settings. + + The context. + Name of the file. + The settings. + The exit code that the started process specified when it terminated. + + + var exitCodeWithArgument = StartProcess("ping", new ProcessSettings{ Arguments = "localhost" }); + // This should output 0 as valid arguments supplied + Information("Exit code: {0}", exitCodeWithArgument); + + + + + + Starts the process resource that is specified by the filename and settings. + + The context. + Name of the file. + The settings. + Returns process output if is true. + Otherwise null is returned. + The exit code that the started process specified when it terminated. + + + IEnumerable<string> redirectedStandardOutput; + var exitCodeWithArgument = + StartProcess( + "ping", + new ProcessSettings { + Arguments = "localhost", + RedirectStandardOutput = true + }, + out redirectedStandardOutput + ); + + // Output last line of process output. + Information("Last line of output: {0}", redirectedStandardOutput.LastOrDefault()); + + // This should output 0 as valid arguments supplied + Information("Exit code: {0}", exitCodeWithArgument); + + + + + + Starts the process resource that is specified by the filename and settings. + + The context. + Name of the file. + The settings. + Returns process output if is true. + Otherwise null is returned. + Returns process error output if is true. + Otherwise null is returned. + The exit code that the started process specified when it terminated. + + + IEnumerable<string> redirectedStandardOutput; + IEnumerable<string> redirectedErrorOutput; + var exitCodeWithArgument = + StartProcess( + "ping", + new ProcessSettings { + Arguments = "localhost", + RedirectStandardOutput = true + }, + out redirectedStandardOutput, + out redirectedErrorOutput + ); + + // Output last line of process output. + Information("Last line of output: {0}", redirectedStandardOutput.LastOrDefault()); + + // Throw exception if anything was written to the standard error. + if (redirectedErrorOutput.Any()) + { + throw new Exception( + string.Format( + "Errors ocurred: {0}", + string.Join(", ", redirectedErrorOutput)); + } + + // This should output 0 as valid arguments supplied + Information("Exit code: {0}", exitCodeWithArgument); + + + + + + Starts the process resource that is specified by the filename and settings. + + The context. + Name of the file. + The settings. + The newly started process. + + + using(var process = StartAndReturnProcess("ping", new ProcessSettings{ Arguments = "localhost" })) + { + process.WaitForExit(); + // This should output 0 as valid arguments supplied + Information("Exit code: {0}", process.GetExitCode()); + } + + + , , or is null. + + + + Starts the process resource that is specified by the filename. + + The context. + Name of the file. + The newly started process. + + + using(var process = StartAndReturnProcess("ping")) + { + process.WaitForExit(); + // This should output 0 as valid arguments supplied + Information("Exit code: {0}", process.GetExitCode()); + } + + + , is null. + + + + This namespace contain types used for common operations + such as parsing release notes, retrieving arguments and + to read and write environment variables. + + + + + This namespace contain types that + support interaction with MSBuild solution files. + + + + + This namespace contain types that + support interaction with MSBuild project files. + + + + + This namespace contain types that + enable you to read or create assembly information files. + + + + + Contains functionality related to assembly info. + + + + + Creates an assembly information file. + + The context. + The output path. + The settings. + + + var file = "./SolutionInfo.cs"; + var version = "0.0.1"; + var buildNo = "123"; + var semVersion = string.Concat(version + "-" + buildNo); + CreateAssemblyInfo(file, new AssemblyInfoSettings { + Product = "SampleProject", + Version = version, + FileVersion = version, + InformationalVersion = semVersion, + Copyright = string.Format("Copyright (c) Contoso 2014 - {0}", DateTime.Now.Year) + }); + + + + + + Parses an existing assembly information file. + + The context. + The assembly info path. + The content of the assembly info file. + + + var assemblyInfo = ParseAssemblyInfo("./SolutionInfo.cs"); + Information("Version: {0}", assemblyInfo.AssemblyVersion); + Information("File version: {0}", assemblyInfo.AssemblyFileVersion); + Information("Informational version: {0}", assemblyInfo.AssemblyInformationalVersion); + + + + + + The assembly info creator. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The log. + + + + Creates an assembly info file. + + The output path. + The settings. + + + + Custom Attribute class used by . + + + + + Gets or sets the name. + + The attribute name. + + + + Gets or sets the namespace. + + The namespace for the attribute. + + + + Gets or sets the value. + + The value for the attribute. + + + + Metadata Attribute class used by . + + + + + Gets the name. + + The attribute name. + + + + Gets or sets the key for meta data. + + The key for meta data + + + + Gets the namespace. + + The namespace for the meta data attribute. + + + + Gets or sets the value. + + The value for the meta data. + + + + The assembly info parser. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + + + + Parses information from an assembly info file. + + The file path. + Information about the assembly info content. + + + + Represents the content in an assembly info file. + + + + + Gets a value indicating whether the assembly is CLS compliant. + + + true if the assembly is CLS compliant; otherwise, false. + + + + + Gets the assembly company attribute. + + The assembly company attribute. + + + + Gets a value indicating whether the assembly is accessible from COM. + + + true if the assembly is accessible from COM; otherwise, false. + + + + + Gets the assembly configuration attribute. + + The assembly Configuration attribute. + + + + Gets the assembly copyright attribute. + + The assembly copyright attribute. + + + + Gets the assembly's description attribute. + + The assembly's Description attribute. + + + + Gets the assembly file version. + + The assembly file version. + + + + Gets the assembly GUID attribute. + + The assembly GUID attribute. + + + + Gets the assembly informational version. + + The assembly informational version. + + + + Gets the assembly product Attribute. + + The assembly product attribute. + + + + Gets the assembly title Attribute. + + The assembly Title attribute. + + + + Gets the assembly trademark Attribute. + + The assembly Trademark attribute. + + + + Gets the assembly version. + + The assembly version. + + + + Gets the assemblies that internals are visible to. + + The assemblies that internals are visible to. + + + + Initializes a new instance of the class. + + Whether the assembly is CLS compliant. + The assembly company attribute. + Whether the assembly is accessible from COM. + The assembly configuration attribute. + The assembly copyright attribute. + The assembly description attribute. + The assembly file version. + The assembly GUID attribute. + The assembly informational version. + The assembly product attribute. + The assembly title attribute. + The assembly trademark attribute. + The assembly version. + The assemblies that internals are visible to. + + + + Contains settings used by . + + + + + Gets or sets the title. + + The assembly title. + + + + Gets or sets the description. + + The assembly description. + + + + Gets or sets the unique identifier. + + The unique identifier. + + + + Gets or sets the product. + + The assembly product. + + + + Gets or sets the copyright. + + The copyright. + + + + Gets or sets the trademark. + + The trademark. + + + + Gets or sets the version. + + The version. + + + + Gets or sets the file version. + + The file version. + + + + Gets or sets the informational version. + + The informational version. + + + + Gets or sets whether or not the assembly is COM visible. + + Whether or not the assembly is COM visible. + + + + Gets or sets whether or not the assembly is CLS compliant. + + Whether or not the assembly is CLS compliant. + + + + Gets or sets the company. + + The company. + + + + Gets or sets the name(s) of the assembly(s) that internals should be visible to. + + The name(s) of the assembly(s). + + + + Gets or sets the configuration of the assembly. + + The configuration. + + + + Gets or sets the custom attribute(s) that should be added to the assembly info file. + + The namespace(s). + + + + Gets or sets the meta data attribute(s) that should be added to the assembly info file. + + The meta data. + + + + Contains functionality related to AssemblyInfo settings. + + + + + Adds a custom attribute to the AssemblyInfo settings. + + The settings. + The name of the custom attribute. + The namespace for the custom attribute. + The value for the attribute. + The same instance so that multiple calls can be chained. + + + + Adds a meta data attribute to the AssemblyInfo settings. + + The settings. + The key of the meta data attribute. + The value for the attribute. + The same instance so that multiple calls can be chained. + + + + This namespace contain types that + enable you to read XML documentation comments. + + + + + Contains functionality related to MSBuild XML document files. + + + + + Parses Xml documentation example code from given path. + + The context. + The Path to the file to parse. + Parsed example code. + + + var exampleCodes = ParseXmlDocExampleCode("./Cake.Common.xml"); + foreach(var exampleCode in exampleCodes) + { + Information( + "{0}\r\n{1}", + exampleCode.Name, + exampleCode.Code + ); + } + + + + + + Parses Xml documentation example code from file(s) using given pattern. + + The context. + The globber file pattern. + Parsed example code. + + + var filesExampleCodes = ParseXmlDocFilesExampleCode("./Cake.*.xml"); + foreach(var exampleCode in filesExampleCodes) + { + Information( + "{0}\r\n{1}", + exampleCode.Name, + exampleCode.Code + ); + } + + + + + + Parsed Xml documentation example code + + + + + Gets Example code parent name + + + + + Gets Example code + + + + + Initializes a new instance of the class. + + The name of code parent. + The example code. + + + + The MSBuild Xml documentation example code parser + + + + + Initializes a new instance of the class. + + The file system. + The globber. + The log. + + + + Parses Xml documentation example code from given path + + Path to the file to parse. + Parsed Example Code + + + + Parses Xml documentation example code from file(s) using given pattern + + The globber file pattern. + Parsed Example Code + + + + Contains functionality related to MSBuild project files. + + + + + Parses project information from project file + + The context. + The project file path. + A parsed project. + + + var parsedProject = ParseProject("./src/Cake/Cake.csproj"); + Information( + @" Parsed project file: + Configuration : {0} + Platform : {1} + OutputType : {2} + OutputPath : {3} + RootNameSpace : {4} + AssemblyName : {5} + TargetFrameworkVersion: {6} + Files : {7}", + parsedProject.Configuration, + parsedProject.Platform, + parsedProject.OutputType, + parsedProject.OutputPath, + parsedProject.RootNameSpace, + parsedProject.AssemblyName, + parsedProject.TargetFrameworkVersion, + string.Concat( + parsedProject + .Files + .Select( + file=> string.Format( + "\r\n {0}", + file.FilePath + ) + ) + ) + ); + + + + + + Represents a project assembly reference. + + + Schema from https://msdn.microsoft.com/en-us/library/ms164283.aspx + and https://msdn.microsoft.com/en-us/library/bb629388.aspx + + + + + Gets or sets the reference to include. + + + The reference to include. + + + + + Gets or sets the relative or absolute path of the assembly. + + + The relative or absolute path of the assembly. + + + + + Gets or sets the display name of the assembly. + + + The display name of the assembly. + + + + + Gets or sets the simple or strong fusion name for the item. + + + The simple or strong fusion name for the item. + + + + + Gets or sets whether only the version in the fusion name should be referenced. + + + Whether only the version in the fusion name should be referenced. + + + + + Gets or sets any aliases for the reference. + + + Any aliases for the reference. + + + + + Gets or sets whether the reference should be copied to the output folder. + + + Whether the reference should be copied to the output folder. + + + + + Represents a MSBuild project file. + + + + + Gets or sets the project file path. + + The project file path. + + + + Gets or sets the relative path to the project file. + + + The relative path to the project file. + + + + + Gets or sets a value indicating whether this is compiled. + + + true if compiled; otherwise, false. + + + + + The MSBuild project file parser. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + + + + Parses a project file. + + The project path. + The parsed project. + + + + Represents the content in an MSBuild project file. + + + + + Gets the build configuration. + + The build configuration. + + + + Gets the target platform. + + The platform. + + + + Gets the unique project identifier. + + The unique project identifier. + + + + Gets the compiler output type, i.e. Exe/Library. + + The output type. + + + + Gets the compiler output path. + + The output path. + + + + Gets the default root namespace. + + The root namespace. + + + + Gets the build target assembly name. + + The assembly name. + + + + Gets the compiler target framework version. + + The target framework version. + + + + Gets the compiler target framework profile. + + The target framework profile. + + + + Gets the project content files. + + The files. + + + + Gets the references. + + + The references. + + + + + Gets the references to other projects. + + + The references. + + + + + Initializes a new instance of the class. + + The build configuration. + The target platform. + The unique project identifier. + The compiler output type. + The compiler output path + The default root namespace. + Gets the build target assembly name. + The compiler framework version. + The compiler framework profile. + The project content files. + The references. + The references to other projects. + + + + Represents a project reference to another project. + + + Schema from https://msdn.microsoft.com/en-us/library/ms164283.aspx + and https://msdn.microsoft.com/en-us/library/bb629388.aspx + + + + + Gets or sets the path to the referenced project file. + + + The path to the referenced project file. + + + + + Gets or sets the relative path to the referenced project file. + + + The relative path to the referenced project file. + + + + + Gets or sets the display name of the reference. + + + The display name of the reference. + + + + + Gets or sets a GUID for the reference. + + + A GUID for the reference. + + + + + Gets or sets the path of the project file that is being referenced. + + + The path of the project file that is being referenced. + + + + + MSBuild Project Xml Element XNames + + + + + Project root element + + + + + Item group element + + + + + Assembly reference element + + + + + Namespace import element + + + + + Namespace compile element + + + + + Namespace property group element + + + + + Namespace root namespace element + + + + + Namespace output type element + + + + + Namespace output path element + + + + + Namespace assembly name element + + + + + Gets the namespace for the target framework version element. + + + + + Gets the namespace for the target framework version element. + + + + + Gets the namespace for the configuration element. + + + + + Gets the namespace for the platform element. + + + + + Gets the namespace for the project GUID. + + + + + Gets the namespace for the bootstrapper package element. + + + + + Gets the namespace for the project reference element. + + + + + Gets the namespace for the service element. + + + + + Gets the namespace for the hint path element. + + + + + Gets the namespace for the name element. + + + + + Gets the namespace for the fusion name element. + + + + + Gets the namespace for the specific version element. + + + + + Gets the namespace for the aliases element. + + + + + Gets the namespace for the private element. + + + + + Gets the namespace for the package element. + + + + + Contains functionality related to MSBuild solution files. + + + + + Parses project information from a solution file. + + The context. + The solution path. + A parsed solution. + + + var solutionPath = "./src/Cake.sln"; + Information("Parsing {0}", solutionPath); + var parsedSolution = ParseSolution(solutionPath); + foreach(var project in parsedSolution.Projects) + { + Information( + @"Solution project file: + Name: {0} + Path: {1} + Id : {2} + Type: {3}", + project.Name, + project.Path, + project.Id, + project.Type + ); + } + + + + + + Represents a folder in a MSBuild solution. + + + + + Visual Studio project type guid for solution folder + + + More information can be found http://www.codeproject.com/Reference/720512/List-of-Visual-Studio-Project-Type-GUIDs + + + + + Gets Child items of this folder + + + + + Initializes a new instance of the class. + + The folder project identity. + The folder name. + The folder path. + + + + The MSBuild solution file parser. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + + + + Parses a MSBuild solution. + + The solution path. + A parsed solution. + + + + Represents the content in an MSBuild solution file. + + + + + Gets the file format version. + + + + + Gets the version of Visual Studio that created the file. + + + + + Gets the minimum supported version of Visual Studio. + + + + + Gets all solution projects. + + + + + Initializes a new instance of the class. + + The file format version. + The version of Visual Studio that created the file. + The minimum supported version of Visual Studio. + The solution projects. + + + + Represents a project in a MSBuild solution. + + + + + Gets the project identity. + + + + + Gets the project name. + + + + + Gets the project path. + + + + + Gets the project type identity. + + + + + Gets the parent project if any, otherwise null. + + + + + Initializes a new instance of the class. + + The project identity. + The project name. + The project path. + The project type identity. + + + + This namespace contain types for + text templating and transformations. + + + + + Provides functionality to perform simple text transformations + from a Cake build script and save them to disc. + + The text transformation template. + + + + Gets the text transformation template. + + The text transformation template. + + + + Initializes a new instance of the class. + + The file system. + The environment. + The text template. + + + + Saves the text transformation to a file. + + The to save the test transformation to. + + + + Returns a string containing the rendered template. + + A string containing the rendered template. + + + + Contains functionality related to text transformation. + + + + + Creates a text transformation from the provided template. + + The context. + The template. + A representing the provided template. + + This sample shows how to create a using + the specified template. + + string text = TransformText("Hello <%subject%>!") + .WithToken("subject", "world") + .ToString(); + + + + + + Creates a text transformation from the provided template, using the specified placeholder. + + The context. + The template. + The left placeholder. + The right placeholder. + A representing the provided template. + + This sample shows how to create a using + the specified template and placeholder. + + string text = TransformText("Hello {subject}!", "{", "}") + .WithToken("subject", "world") + .ToString(); + + + + + + Creates a text transformation from the provided template on disc. + + The context. + The template file path. + A representing the provided template. + + This sample shows how to create a using + the specified template file with the placeholder format <%key%>. + + string text = TransformTextFile("./template.txt") + .WithToken("subject", "world") + .ToString(); + + + + + + Creates a text transformation from the provided template on disc, using the specified placeholder. + + The context. + The template file path. + The left placeholder. + The right placeholder. + A representing the provided template. + + This sample shows how to create a using + the specified template file and placeholder. + + string text = TransformTextFile("./template.txt", "{", "}") + .WithToken("subject", "world") + .ToString(); + + + + + + Contains extension methods for . + + + + + Registers a key and a value to be used with the + text transformation. + + The text transformation template. + The text transformation. + The key. + The value. + + The same instance so that multiple calls can be chained. + + + + + This namespace contain types used to interact + with different third party tools. + + + + + This namespace contain types used to interact with Cake. + + + + + Contains functionality related to running Cake scripts out of process. + + + + + Executes cake script out of process + + The context. + The script file. + + + CakeExecuteScript("./helloworld.cake"); + + + + + + Executes cake script out of process + + The context. + The script file. + The settings . + + + CakeExecuteScript("./helloworld.cake", new CakeSettings{ ToolPath="./Cake.exe" }); + + + + + + Executes Cake expression out of process + + The context. + The cake expression + + + CakeExecuteExpression("Information(\"Hello {0}\", \"World\");"); + + + + + + Executes Cake expression out of process + + The context. + The cake expression + The settings . + + + CakeExecuteExpression( + "Information(\"Hello {0}!\", Argument<string>(\"name\"));", + new CakeSettings { + ToolPath="./Cake.exe" , + Arguments = new Dictionary<string, string>{{"name", "World"}} + }); + + + + + + Cake out process runner + + + + + Initializes static members of the class. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The globber. + The process runner. + The tool locator. + + + + Executes supplied cake script in own process and supplied settings + + Path to script to execute + optional cake settings + + + + Executes supplied cake code expression in own process and supplied settings + + Code expression to execute + optional cake settings + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the name of the tool executable. + + The tool executable name. + + + + Gets alternative file paths which the tool may exist in + + The settings. + The default tool path. + + + + Contains settings used by . + + + + + Gets or sets the output verbosity. + + The output verbosity. + + + + Gets or sets cake additional arguments. + + The properties. + + + + This namespace contain types used to interact with ILMerge. + + + + + Contains functionality related to ILMerge. + + In order to use the commands for this alias, include the following in your build.cake file to download and + install from NuGet.org, or specify the ToolPath within the class: + + #tool "nuget:?package=ilmerge" + + + + + + + Merges the specified assemblies. + + The context. + The output file. + The primary assembly. + The assembly paths. + + + var assemblyPaths = GetFiles("./**/Cake.*.dll"); + ILMerge("./MergedCake.exe", "./Cake.exe", assemblyPaths); + + + + + + Merges the specified assemblies. + + The context. + The output file. + The primary assembly. + The assembly paths. + The settings. + + + var assemblyPaths = GetFiles("./**/Cake.*.dll"); + ILMerge( + "./MergedCake.exe", + "./Cake.exe", + assemblyPaths, + new ILMergeSettings { Internalize = true }); + + + + + + The ILMerge runner. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Merges the specified assemblies. + + The output assembly path. + The primary assembly path. + The assembly paths. + The settings. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the name of the tool executable. + + The tool executable name. + + + + Contains settings used by . + + + + + Gets or sets a value indicating whether whether types in assemblies other + than the primary assembly should have their visibility modified to internal. + + + true if types in assemblies other than the primary assembly should + have their visibility modified to internal; otherwise, false. + + + + + Gets or sets the target kind. + + The target kind. + + + + Gets or sets the target platform. + + The target platform. + + + + Initializes a new instance of the class. + + + + + Represents an ILMerge target. + + + + + TargetKind: Default + + + + + TargetKind: Dynamic Link Library + + + + + TargetKind: Executable + + + + + TargetKind: Windows executable + + + + + Represents a target platform. + + + + + Initializes a new instance of the class. + + The .NET framework target version. + + + + Initializes a new instance of the class. + + The .NET framework target version. + The directory where mscorlib.dll can be found. + + + + Gets the .NET framework target version. + + + + + Gets the directory where mscorlib.dll can be found. + + + + + Represents the .NET Framework for the target assembly + + + + + NET Framework v1 + + + + + NET Framework v1.1 + + + + + NET Framework v2 + + + + + NET Framework v4 + + + + + This namespace contain types used to interact with MSBuild. + + + + + Contains functionality related to MSBuild. + + In order to use the commands for this alias, MSBuild will already have to be installed on the machine the Cake Script + is being executed. + + + + + + Builds the specified solution using MSBuild. + + The context. + The solution. + + + MSBuild("./src/Cake.sln"); + + + + + + Builds the specified solution using MSBuild. + + The context. + The solution to build. + The settings configurator. + + + MSBuild("./src/Cake.sln", configurator => + configurator.SetConfiguration("Debug") + .SetVerbosity(Verbosity.Minimal) + .UseToolVersion(MSBuildToolVersion.VS2015) + .SetMSBuildPlatform(MSBuildPlatform.x86) + .SetPlatformTarget(PlatformTarget.MSIL)); + + + + + + Builds the specified solution using MSBuild. + + The context. + The solution to build. + The settings. + + + MSBuild("./src/Cake.sln", new MSBuildSettings { + Verbosity = Verbosity.Minimal, + ToolVersion = MSBuildToolVersion.VS2015, + Configuration = "Release", + PlatformTarget = PlatformTarget.MSIL + }); + + + + + + What files to include in the binary log + + + + Don't specify imports + + + Do not collect project and imports files + + + Embed in the binlog file + + + Produce a separate .ProjectImports.zip + + + + MSBuild binary logging settings used by . + + + + + Gets or sets a value indicating whether binary logging should be enabled. + + + + + Gets or sets the output filename. + + + + + Gets or sets what source files should be included in the log. + + + + + Contains settings for specifying a MSBuild file logger. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether PerformanceSummary will Show the time that’s spent in tasks, targets, and projects. + + + + + Gets or sets a value indicating whether Summary will Show the error and warning summary at the end. + + + + + Gets or sets show ErrorsOnly, WarningsOnly, or All. + + + + + Gets or sets a value indicating whether NoItemAndPropertyList will be set to Don't show the list of items and properties that would appear at the start of each project build if the verbosity level is set to diagnostic. + + + + + Gets or sets a value indicating whether ShowCommandLine. Show TaskCommandLineEvent messages. + + + + + Gets or sets a value indicating whether ShowTimestamp. Show the timestamp as a prefix to any message. + + + + + Gets or sets a value indicating whether ShowEventId. Show the event ID for each started event, finished event, and message. + + + + + Gets or sets Verbosity. Override the /verbosity setting for this logger. + Specify the following verbosity levels: q[uiet], m[inimal], n[ormal], v[erbose] (detailed), and diag[nostic]. + + + + + Gets or sets LogFile. The path to the log file into which the build log is written. + An empty string will use msbuild.log. + + + + + Gets or sets a value indicating whether the build log is appended to the log file or overwrites it. When true, the build log is appended to the log file. + + + + + Gets or sets Specifies the encoding for the file (for example, UTF-8, Unicode, or ASCII). + + + + + Process the file logger config and return parameters as a string. + + The environment. + The parameters separated by semi-colons. + + + + The type of file logger output to generate. + + + + + Show errors and warnings. + + + + + Show errors only. + + + + + Show warnings only. + + + + + Contains settings for specifying a MSBuild logger. + + + + + Gets or sets the assembly containing the logger. Should match the format {AssemblyName[,StrongName] | AssemblyFile} + + + + + Gets or sets the class implementing the logger. Should match the format [PartialOrFullNamespace.]LoggerClassName + If the assembly contains only one logger, class does not need to be specified. + + + + + Gets or sets the parameters to be passed to the logger. + + + + + Represents an MSBuild exe platform. + + + + + Will build using MSBuild version based on PlatformTarget/Host OS. + + + + + MSBuildPlatform: x86 + + + + + MSBuildPlatform: x64 + + + + + The MSBuild runner. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The runner. + The tool locator. + + + + Runs MSBuild with the specified settings. + + The solution to build. + The settings. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Gets alternative file paths which the tool may exist in + + The settings. + The default tool path. + + + + Contains settings used by . + + + + + Gets the targets. + + The targets. + + + + Gets the properties. + + The properties. + + + + Gets or sets the platform target. + + The platform target. + + + + Gets or sets the MSBuild platform. + + The MSBuild platform. + + + + Gets or sets the tool version. + + The tool version. + + + + Gets or sets the configuration. + + The configuration. + + + + Gets or sets the maximum CPU count. + If this value is zero, MSBuild will use as many processes as + there are available CPUs to build the project. If not set + MSBuild compile projects in this solution one at a time. + + The maximum CPU count. + + + + Gets or sets whether or not node reuse is used. + When you’re doing multiple builds in a row, this helps reduce your total build time, + by avoiding the start up costs of each MSBuild child node. + + + + + Gets or sets whether or not detailed summary is created. + Shows detailed information at the end of the build + about the configurations built and how they were + scheduled to nodes. + + + + + Gets or sets whether or not information is logged to the console. + Disable the default console logger and do not log events + to the console. + + + + + Gets or sets the amount of information to display in the build log. + Each logger displays events based on the verbosity level that you set for that logger. + + The build log verbosity. + + + + Gets the loggers. + + + + + Gets the file loggers + + + + + Gets or sets the binary logging options + + + + + Gets or sets a value indicating whether warnings should be treated as errors. + Treats all warnings as errors unless has specific codes specified. + + + + + Gets the warning codes to treat as errors. + If any specified will implicitly be treated as true. + + + + + Gets the warning codes to NOT treat as errors. + + Only available MSBuild version 15 (VS2017) and newer. + + + + Gets or sets a value indicating whether the Restore target should be run before any other targets. + This setting will pass the /restore option down to MSBuild. + Use this setting when working with the new csproj format. + + + + + Gets the console logger parameters. + + + + + Initializes a new instance of the class. + + + + + Contains functionality related to MSBuild settings. + + + + + Adds a MSBuild target to the configuration. + + The settings. + The MSBuild target. + The same instance so that multiple calls can be chained. + + + + Sets the tool version. + + The settings. + The version. + The same instance so that multiple calls can be chained. + + + + Sets the platform target. + + The settings. + The target. + The same instance so that multiple calls can be chained. + + + + Sets the MSBuild platform. + + The settings. + The platform. + The same instance so that multiple calls can be chained. + + + + Adds a property to the configuration. + + The settings. + The property name. + The property values. + The same instance so that multiple calls can be chained. + + + + Sets the configuration. + + The settings. + The configuration. + The same instance so that multiple calls can be chained. + + + + Sets the maximum CPU count. Without this set MSBuild will compile projects in this solution one at a time. + + The settings. + The maximum CPU count. Set this value to zero to use as many MSBuild processes as available CPUs. + The same instance so that multiple calls can be chained. + + + + Sets whether or not node reuse should be enabled. + + The settings. + true if node reuse should be enabled; otherwise false. + The same instance so that multiple calls can be chained. + + + + Sets whether or not detailed summary should be enabled. + + The settings. + true if detailed summary should be enabled; otherwise false. + The same instance so that multiple calls can be chained. + + + + Sets whether or not no console logging should be enabled. + + The settings. + true if no console log should be enabled; otherwise false. + The same instance so that multiple calls can be chained. + + + + Sets the build log verbosity. + + The settings. + The build log verbosity. + The same instance so that multiple calls can be chained. + + + + Adds a custom logger. + + The settings. + The assembly containing the logger. Should match the format {AssemblyName[,StrongName] | AssemblyFile} + The class implementing the logger. Should match the format [PartialOrFullNamespace.]LoggerClassName. If the assembly contains only one logger, class does not need to be specified. + Parameters to be passed to the logger. + The same instance so that multiple calls can be chained. + + + + Adds a file logger. + Each file logger will be declared in the order added. + The first file logger will match up to the /fl parameter. + The next nine (max) file loggers will match up to the /fl1 through /fl9 respectively. + + The settings. + Parameters to be passed to the logger. + The same instance so that multiple calls can be chained. + + + + Adds a file logger with all the default settings. + Each file logger will be declared in the order added. + The first file logger will match up to the /fl parameter. + The next nine (max) file loggers will match up to the /fl1 through /fl9 respectively. + + The settings. + The same instance so that multiple calls can be chained. + + + + Treat warnnings as errors, if no codes specified all errors will be treated as errors. + + The settings. + Only treat specified warning codes as errors. + The same instance so that multiple calls can be chained. + + + + Warnings to not treat as errors. + + The settings. + Warning codes to not treat as errors. + The same instance so that multiple calls can be chained. + + + + Invoke the Restore target before any other target. + + The setting + The same instance so that multiple calls can be chained. + + + + Adds a console logger parameter. + + The settings. + The console logger parameter. + The same instance so that multiple calls can be chained. + + + + Represents a MSBuild tool version. + + + + + The highest available MSBuild tool version. + + + + + MSBuild tool version: .NET 2.0 + + + + + MSBuild tool version: .NET 3.0 + + + + + MSBuild tool version: Visual Studio 2005 + + + + + MSBuild tool version: .NET 3.5 + + + + + MSBuild tool version: Visual Studio 2008 + + + + + MSBuild tool version: .NET 4.0 + + + + + MSBuild tool version: .NET 4.5 + + + + + MSBuild tool version: Visual Studio 2010 + + + + + MSBuild tool version: Visual Studio 2011 + + + + + MSBuild tool version: Visual Studio 2012 + + + + + MSBuild tool version: .NET 4.5.1 + + + + + MSBuild tool version: .NET 4.5.2 + + + + + MSBuild tool version: Visual Studio 2013 + + + + + MSBuild tool version: Visual Studio 2015 + + + + + MSBuild tool version: .NET 4.6 + + + + + MSBuild tool version: Visual Studio 2017 + + + + + Contains functionality related to MSBuild verbosity. + + + + + Gets the MSBuild verbosity from . + + The verbosity. + MSBuild verbosity string. + + + + Gets the MSBuild from string value. + + The verbosity string value. + MSBuild enumeration. + Valid values are 'quiet', 'minimal', 'normal', 'detailed' and 'diagnostic'. + + + + Represents a MSBuild version + + + + Version 2.0 + + + Version 3.5 + + + Version 4.0 + + + Version 12.0 + + + Version 14.0 + + + Version 15.0 + + + + Represents a MSBuild platform target. + + + + + Platform target: MSIL (Any CPU) + + + + + Platform target: x86 + + + + + Platform target: x64 + + + + + Platform target: ARM + + + + + Platform target: Win32 + + + + + This namespace contain types used to interact with MSTest. + + + + + Contains functionality related to running MSTest unit tests. + + In order to use the commands for this alias, MSTest will need to be installed on the machine where + the Cake script is being executed. This is typically achieved by having either Visual Studio installed, or by + using the Micrsoft Build Tools, for example, for 2015. + + + + + + Runs all MSTest unit tests in the assemblies matching the specified pattern. + + + + MSTest("./Tests/*.UnitTests.dll"); + + + The context. + The pattern. + + + + Runs all MSTest unit tests in the assemblies matching the specified pattern. + + + + MSTest("./Tests/*.UnitTests.dll", new MSTestSettings() { NoIsolation = false }); + + + The context. + The pattern. + The settings. + + + + Runs all MSTest unit tests in the specified assemblies. + + + + var paths = new List<FilePath>() { "./assemblydir1", "./assemblydir2" }; + MSTest(paths); + + + The context. + The assembly paths. + + + + Runs all MSTest unit tests in the specified assemblies. + + + + var paths = new List<FilePath>() { "./assemblydir1", "./assemblydir2" }; + MSTest(paths, new MSTestSettings() { NoIsolation = false }); + + + The context. + The assembly paths. + The settings. + + + + The MSTest unit test runner. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Runs the tests in the specified assembly. + + The assembly path. + The settings. + + + + Gets the name of the tool. + + The tool name. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Gets alternative file paths which the tool may exist in + + The settings. + The default tool path. + + + + Contains settings used by . + + + + + Gets or sets a value indicating whether to run tests within the MSTest process. + This choice improves test run speed but increases risk to the MSTest.exe process. + Defaults to true. + + + true if running without isolation; otherwise, false. + + + + + Gets or sets a value indicating the test category filter string to pass to + MSTest.exe flag /testcategory. + + + + + Gets or sets the filepath for a named resulting test file. + MSTest.exe flag /resultsfile. + + + + + Gets or sets the test settings file to pass to MSTest.exe flag /testsettings. + + + + + Initializes a new instance of the class. + + + + + This namespace contain types used to interact with NuGet. + + + + + This namespace contain types used to interact + with the NuGet package installer. + + + + + The NuGet package installer used to install NuGet packages. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The NuGet tool resolver. + + + + Installs NuGet packages using the specified package configuration file and settings. + + Path to package configuration to use for install. + The settings. + + + + Installs NuGet packages using the specified package id and settings. + + The source package id. + The settings. + + + + Contains settings used by . + + + + + Gets or sets the directory in which packages will be installed. + If none is specified, the current directory will be used. + + + + + Gets or sets the version of the package to install. + If none specified, the latest will be used. + + + + + Gets or sets a value indicating whether to exclude the version number from the package folder. + + + true if to exclude the version number from the package folder; otherwise, false. + + + + + Gets or sets a value indicating whether to allow installation of prerelease packages. + This flag is not required when restoring packages by installing from packages.config. + + + true to allow installation of prerelease packages; otherwise, false. + + + + + Gets or sets a value indicating whether to check if package + install consent is granted before installing a package. + + + true if to check if package install consent is granted before installing a package; otherwise, false. + + + + + Gets or sets the solution directory path for package restore. + + + The solution directory path. + + + + + Gets or sets a list of packages sources to use for this command. + + The list of packages sources to use for this command. + + + + Gets or sets a value indicating whether or not to use the machine cache as the first package source. + + + true to not use the machine cache as the first package source; otherwise, false. + + + + + Gets or sets a value indicating whether to disable parallel processing of packages for this command. + Disable parallel processing of packages for this command. + + + true to disable parallel processing of packages for this command; otherwise, false. + + + + + Gets or sets the output verbosity. + + The output verbosity. + + + + Gets or sets the NuGet configuration file. + If not specified, the file %AppData%\NuGet\NuGet.config is used as the configuration file. + + The NuGet configuration file. + + + + Gets or sets a list of packages sources to use as fallbacks for this command. + This setting requires NuGet V3 or later. + + The list of packages sources to use as fallbacks for this command. + + + + This namespace contain types used to + pack NuGet packages. + + + + + The NuGet packer. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The log. + The tool locator. + The NuGet tool resolver + + + + Creates a NuGet package from the specified settings. + + The settings. + + + + Creates a NuGet package from the specified Nuspec or project file. + + The nuspec or project file path. + The settings. + + + + Contains settings used by . + + + + + Gets or sets the base path. + + The base path. + + + + Gets or sets the output directory. + + The output directory. + + + + Gets or sets a value indicating whether package analysis should be performed. + Defaults to true. + + + true if package analysis should be performed; otherwise, false. + + + + + Gets or sets a value indicating whether referenced projects should be included. + Defaults to false. + + + true if referenced projects should be included; otherwise, false. + + + + + Gets or sets a value indicating whether a symbol package should be created. + Defaults to false. + + + true if a symbol package should be created; otherwise, false. + + + + + Gets or sets the package ID. + + The package ID. + + + + Gets or sets the Nuspec version. + + The Nuspec version. + + + + Gets or sets the package title. + + The package title. + + + + Gets or sets the package authors. + + The package authors. + + + + Gets or sets the package owners. + + The package owners. + + + + Gets or sets the package description. + + The package description. + + + + Gets or sets the package summary. + + The package summary. + + + + Gets or sets the package project URL. + + The package project URL. + + + + Gets or sets the package icon URL. + + The package icon URL. + + + + Gets or sets the package license URL. + + The package license URL. + + + + Gets or sets the package copyright. + + The package copyright. + + + + Gets or sets the package release notes. + + The package release notes. + + + + Gets or sets the package tags. + + The package tags. + + + + Gets or sets the package repository data + + + + + Gets or sets a value indicating whether this package should be marked as a development dependency. + + + true if a development dependency; otherwise, false. + + + + + Gets or sets a value indicating whether users has to accept the package license. + + + true if users has to accept the package license; otherwise, false. + + + + + Gets or sets the package files. + + The package files. + + + + Gets or sets the package dependencies. + + The package files. + + + + Gets or sets the verbosity. + + The verbosity. + + + + Gets or sets the properties. + + + The properties. + + + + + Gets or sets the version of MSBuild to be used with this command. + By default the MSBuild in your path is picked, otherwise it defaults to the highest installed version of MSBuild. + This setting requires NuGet V3 or later. + + The version of MSBuild to be used with this command. + + + + Gets or sets a value indicating whether the temporarily autogenerated NuSpec file should be kept or not. + Defaults to false. + + + true if the temporarily autogenerated NuSpec file should be kept; otherwise false. + + + + + Gets or sets the package language. + + The package language. + + + + Gets or sets a value indicating whether the files should be packed into the tool folder. + Defaults to false. + + + true if the output should be placed in the tool folder inside the nuget package; otherwise false. + + + + + Specifies the package's source code location, allowing IDEs to download and debug the code. + + + + + Gets or sets the type of repository e.g. git. + + + + + Gets or sets the repository's URL. + + + + + Gets or sets the name of the branch within the repository. + + + + + Gets or sets the corresponding commit ID for the specified version of the package. + + + + + Represents a NuGet nuspec file + + + + + Gets or sets the location of the file or files to include. + The path is relative to the NuSpec file unless an absolute path is specified. + The wildcard character - * - is allowed. + Using a double wildcard - ** implies a recursive directory search. + + + + + Gets or sets the relative path to the directory within the package where the source files will be placed. + + + + + Gets or sets the file or files to exclude. + This is usually combined with a wildcard value in the src attribute. + The exclude attribute can contain a semi-colon delimited list of files or a file pattern. + Using a double wildcard - ** - implies a recursive exclude pattern. + + + + + Represents a NuGet nuspec dependency + + + + + Gets or sets the dependency's package ID. + + The dependency's package ID. + + + + Gets or sets the dependency's version. + + The dependency's version. + + + + Gets or sets the target framework for the dependency. + + The target framework for the dependency. + + + + This namespace contain types used to + push NuGet packages. + + + + + The NuGet package pusher. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The NuGet tool resolver. + The logger. + + + + Pushes a NuGet package to a NuGet server and publishes it. + + The package file path. + The settings. + + + + Contains settings used by . + + + + + Gets or sets the server URL. + When using NuGet pre 3.4.2, this value is optional + and nuget.org is used if omitted (unless DefaultPushSource + config value is set in the NuGet config file. + When using Nuget 3.4.2 (or more recent), this value is mandatory. + Starting with NuGet 2.5, if NuGet.exe identifies a UNC/folder source, + it will perform the file copy to the source. + + The server URL. + + For your convenience, here is the URL for some of the most popular + public nuget servers: + - Nuget: https://nuget.org/api/v2/package + - MyGet: https://www.myget.org/F/<your_username>/api/v2/package + + + + + Gets or sets the API key for the server. + + The API key for the server. + + + + Gets or sets the timeout for pushing to a server. + Defaults to 300 seconds (5 minutes). + + The timeout for pushing to a server. + + + + Gets or sets the verbosity. + + The verbosity. + + + + Gets or sets the NuGet configuration file. + + The NuGet configuration file. + + + + This namespace contain types used to + restore NuGet packages. + + + + + The NuGet package restorer used to restore solution packages. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The NuGet tool resolver + + + + Restores NuGet packages using the specified settings. + + The target file path. + The settings. + + + + Contains settings used by . + + + + + Gets or sets a value indicating whether package restore consent is granted before installing a package. + + + true if package restore consent is granted; otherwise, false. + + + + + Gets or sets the packages folder. + + + + + Gets or sets a list of packages sources to use for this command. + + + + + Gets or sets a value indicating whether or not to use the machine cache as the first package source. + + + true to not use the machine cache as the first package source; otherwise, false. + + + + + Gets or sets a value indicating whether or not to disable parallel processing of packages for this command. + + + true to disable parallel processing; otherwise, false. + + + + + Gets or sets the amount of output details. + + + + + Gets or sets the NuGet configuration file. + If not specified, the file %AppData%\NuGet\NuGet.config is used as the configuration file. + + + + + Gets or sets a list of packages sources to use as fallbacks for this command. + This setting requires NuGet V3 or later. + + The list of packages sources to use as fallbacks for this command. + + + + Gets or sets the version of MSBuild to be used with this command. + By default the MSBuild in your path is picked, otherwise it defaults to the highest installed version of MSBuild. + This setting requires NuGet V3 or later. + + The version of MSBuild to be used with this command. + + + + This namespace contain types used to + set NuGet API keys. + + + + + The NuGet set API key used to set API key used for API/feed authentication. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The NuGet tool resolver. + + + + Installs NuGet packages using the specified package id and settings. + + The API key. + The Server URL where the API key is valid. + The settings. + + + + Contains settings used by . + + + + + Gets or sets the output verbosity. + + The output verbosity. + + + + Gets or sets the NuGet configuration file. + If not specified, the file %AppData%\NuGet\NuGet.config is used as the configuration file. + + The NuGet configuration file. + + + + This namespace contain types used to + set proxy settings. + + + + + The NuGet set command used to set the proxy settings to be used while connecting to your NuGet feed. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The NuGet tool resolver. + + + + Set the proxy settings to be used while connecting to your NuGet feed. + + The url of the proxy. + The username used to access the proxy. + The password used to access the proxy. + The settings. + + + + Contains settings used by . + + + + + Gets or sets the output verbosity. + + The output verbosity. + + + + Gets or sets the NuGet configuration file. + If not specified, the file %AppData%\NuGet\NuGet.config is used as the configuration file. + + The NuGet configuration file. + + + + This namespace contain types used to + interact with NuGet sources. + + + + + The NuGet sources is used to work with user config feeds & credentials + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The NuGet tool resolver. + + + + Adds NuGet package source using the specified settings to global user config + + Name of the source. + Path to the package(s) source. + The settings. + + + + Remove specified NuGet package source + + Name of the source. + Path to the package(s) source. + The settings. + + + + Determines whether the specified NuGet package source exist. + + Path to the package(s) source. + The settings. + Whether the specified NuGet package source exist. + + + + Contains settings used by . + + + + + Gets or sets the (optional) user name. + + Optional user name to be used when connecting to an authenticated source. + + + + Gets or sets the (optional) password. + + Optional password to be used when connecting to an authenticated source. + + + + Gets or sets the output verbosity. + + The output verbosity. + + + + Gets or sets a value indicating whether this source contains sensitive data, i.e. authentication token in url. + + + true if this source contains sensitive data; otherwise, false. + + + + + Gets or sets a value indicating whether to not encrypt the password and store it in clear text. (Default: false) + + + true if password is stored as unencrypted; otherwise, false. + + + + + Gets or sets the location of the NuGet configuration file. If not specified, file %AppData%\NuGet\NuGet.config is used as configuration file. + + + + + This namespace contain types used to + update NuGet packages. + + + + + The NuGet package updater. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The nuget tool resolver. + + + + Updates NuGet packages using the specified settings. + + The target file path. + The settings. + + + + Contains settings used by . + + + + + Gets or sets the package ids to update. + + The package ids to update. + + + + Gets or sets a list of package sources to use for this command. + + + + + Gets or sets a value indicating whether to look for updates with the highest + version available within the same major and minor version as the installed package. + + + true if safe; otherwise, false. + + + + + Gets or sets a value indicating whether to allow updating to prerelease versions. + This flag is not required when updating prerelease packages that are already installed. + + + true to allow updating to prerelease versions; otherwise, false. + + + + + Gets or sets the amount of output details. + + + + + Gets or sets the version of MSBuild to be used with this command. + By default the MSBuild in your path is picked, otherwise it defaults to the highest installed version of MSBuild. + This setting requires NuGet V3 or later. + + The version of MSBuild to be used with this command. + + + + Gets or sets package version to be used with this command. + + The package version to be used with this command. + + + + The NuGet package add tool used to add NuGet packages to folder or UNC shares. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The NuGet tool resolver. + + + + Adds NuGet packages to the package source, which is a folder or a UNC share. Http sources are not supported. + + The source package id. + The settings. + + + + Contains settings used by . + + + + + Gets or sets a a package sources to use for this command. + + The package sources to use for this command. + + + + Gets or sets a value indicating whether a package added to an offline feed is also expanded. + + true if package should also be expanded; otherwise, false. + + + + Gets or sets the output verbosity. + + The output verbosity. + + + + Gets or sets the NuGet configuration file. + If not specified, the file %AppData%\NuGet\NuGet.config is used as the configuration file. + + The NuGet configuration file. + + + + The NuGet package init tool copies all the packages from the source to the hierarchical destination. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The NuGet tool resolver. + + + + Init adds all the packages from the source to the hierarchical destination. + + Package source to be copied from. + Package destination to be copied to. + The settings. + + + + Contains settings used by . + + + + + Gets or sets a value indicating whether a package added to an offline feed is also expanded. + + true if package should also be expanded; otherwise, false. + + + + Gets or sets the output verbosity. + + The output verbosity. + + + + Gets or sets the NuGet configuration file. + If not specified, the file %AppData%\NuGet\NuGet.config is used as the configuration file. + + The NuGet configuration file. + + + + The NuGet package lister used to list NuGet packages from a source. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The NuGet tool resolver. + + + + Lists available packages with their versions + + The settings + A list of available packages + + + + Lists available packages with their versions + + The source package id. If it equals an empty string, it will match all packageIds + The settings + A list of available packages + + + + An item as returned by + + + + + Gets or sets the name of the NuGetListItem + + + + + Gets or sets the version of the NuGetListItem as string + + + + + Contains settings used by . + + + + + Gets or sets a value indicating whether list all versions of a package.By default, only the latest package version is displayed + + + + + Gets or sets a value indicating whether to allow prerelease packages to be shown. + + + + + Gets or sets a value indicating whether to allow unlisted packages to be shown. + + + + + Gets or sets the NuGet configuration file. If not specified, file %AppData%\NuGet\NuGet.config is used as configuration file. + + + + + Gets or sets a list of packages sources to search. + + + + + Contains functionality for working with NuGet. + + + Since Cake requires NuGet to be available very early in the build pipeline, we recommend that NuGet is made + available via the Cake BootStrapper. + + + + + Creates a NuGet package using the specified Nuspec or project file. + + The context. + The nuspec or project file path. + The settings. + + + var nuGetPackSettings = new NuGetPackSettings { + Id = "TestNuget", + Version = "0.0.0.1", + Title = "The tile of the package", + Authors = new[] {"John Doe"}, + Owners = new[] {"Contoso"}, + Description = "The description of the package", + Summary = "Excellent summary of what the package does", + ProjectUrl = new Uri("https://github.com/SomeUser/TestNuget/"), + IconUrl = new Uri("http://cdn.rawgit.com/SomeUser/TestNuget/master/icons/testnuget.png"), + LicenseUrl = new Uri("https://github.com/SomeUser/TestNuget/blob/master/LICENSE.md"), + Copyright = "Some company 2015", + ReleaseNotes = new [] {"Bug fixes", "Issue fixes", "Typos"}, + Tags = new [] {"Cake", "Script", "Build"}, + RequireLicenseAcceptance= false, + Symbols = false, + NoPackageAnalysis = true, + Files = new [] { + new NuSpecContent {Source = "bin/TestNuget.dll", Target = "bin"}, + }, + BasePath = "./src/TestNuget/bin/release", + OutputDirectory = "./nuget" + }; + + NuGetPack("./nuspec/TestNuget.nuspec", nuGetPackSettings); + + + + + + Creates NuGet packages using the specified Nuspec or project files. + + The context. + The nuspec or project file paths. + The settings. + + + var nuGetPackSettings = new NuGetPackSettings { + Id = "TestNuget", + Version = "0.0.0.1", + Title = "The tile of the package", + Authors = new[] {"John Doe"}, + Owners = new[] {"Contoso"}, + Description = "The description of the package", + Summary = "Excellent summary of what the package does", + ProjectUrl = new Uri("https://github.com/SomeUser/TestNuget/"), + IconUrl = new Uri("http://cdn.rawgit.com/SomeUser/TestNuget/master/icons/testnuget.png"), + LicenseUrl = new Uri("https://github.com/SomeUser/TestNuget/blob/master/LICENSE.md"), + Copyright = "Some company 2015", + ReleaseNotes = new [] {"Bug fixes", "Issue fixes", "Typos"}, + Tags = new [] {"Cake", "Script", "Build"}, + RequireLicenseAcceptance= false, + Symbols = false, + NoPackageAnalysis = true, + Files = new [] { + new NuSpecContent {Source = "bin/TestNuget.dll", Target = "bin"}, + }, + BasePath = "./src/TestNuget/bin/release", + OutputDirectory = "./nuget" + }; + + var nuspecFiles = GetFiles("./**/*.nuspec"); + NuGetPack(nuspecFiles, nuGetPackSettings); + + + + + + Creates a NuGet package using the specified settings. + + The context. + The settings. + + + var nuGetPackSettings = new NuGetPackSettings { + Id = "TestNuget", + Version = "0.0.0.1", + Title = "The tile of the package", + Authors = new[] {"John Doe"}, + Owners = new[] {"Contoso"}, + Description = "The description of the package", + Summary = "Excellent summary of what the package does", + ProjectUrl = new Uri("https://github.com/SomeUser/TestNuget/"), + IconUrl = new Uri("http://cdn.rawgit.com/SomeUser/TestNuget/master/icons/testnuget.png"), + LicenseUrl = new Uri("https://github.com/SomeUser/TestNuget/blob/master/LICENSE.md"), + Copyright = "Some company 2015", + ReleaseNotes = new [] {"Bug fixes", "Issue fixes", "Typos"}, + Tags = new [] {"Cake", "Script", "Build"}, + RequireLicenseAcceptance= false, + Symbols = false, + NoPackageAnalysis = true, + Files = new [] { + new NuSpecContent {Source = "bin/TestNuget.dll", Target = "bin"}, + }, + BasePath = "./src/TestNuget/bin/release", + OutputDirectory = "./nuget" + }; + + NuGetPack(nuGetPackSettings); + + + + + + Restores NuGet packages for the specified target. + + The context. + The target to restore. + + + var solutions = GetFiles("./**/*.sln"); + // Restore all NuGet packages. + foreach(var solution in solutions) + { + Information("Restoring {0}", solution); + NuGetRestore(solution); + } + + + + + + Restores NuGet packages for the specified targets. + + The context. + The targets to restore. + + + var solutions = GetFiles("./**/*.sln"); + NuGetRestore(solutions); + + + + + + Restores NuGet packages using the specified settings. + + The context. + The target to restore. + The settings. + + + var solutions = GetFiles("./**/*.sln"); + // Restore all NuGet packages. + foreach(var solution in solutions) + { + Information("Restoring {0}", solution); + NuGetRestore(solution, new NuGetRestoreSettings { NoCache = true }); + } + + + + + + Restores NuGet packages using the specified settings. + + The context. + The targets to restore. + The settings. + + + var solutions = GetFiles("./**/*.sln"); + NuGetRestore(solutions, new NuGetRestoreSettings { NoCache = true }); + + + + + + Pushes a NuGet package to a NuGet server and publishes it. + + The context. + The .nupkg file path. + The settings. + + NOTE: Starting with NuGet 3.4.2, the Source parameter is a mandatory parameter. + It is strongly recommended that you ALWAYS set the Source property within the instance. + + // Get the path to the package. + var package = "./nuget/SlackPRTGCommander.0.0.1.nupkg"; + + // Push the package. + NuGetPush(package, new NuGetPushSettings { + Source = "http://example.com/nugetfeed", + ApiKey = "4003d786-cc37-4004-bfdf-c4f3e8ef9b3a" + }); + + + + + + Pushes NuGet packages to a NuGet server and publishes them. + + The context. + The .nupkg file paths. + The settings. + + NOTE: Starting with NuGet 3.4.2, the Source parameter is a mandatory parameter. + It is strongly recommended that you ALWAYS set the Source property within the instance. + + // Get the paths to the packages. + var packages = GetFiles("./**/*.nupkg"); + + // Push the package. + NuGetPush(packages, new NuGetPushSettings { + Source = "http://example.com/nugetfeed", + ApiKey = "4003d786-cc37-4004-bfdf-c4f3e8ef9b3a" + }); + + + + + + Adds NuGet package source using the specified name &source to global user config + + The context. + Name of the source. + Path to the package(s) source. + + + var feed = new + { + Name = EnvironmentVariable("PUBLIC_FEED_NAME"), + Source = EnvironmentVariable("PUBLIC_FEED_SOURCE") + }; + + NuGetAddSource( + name:feed.Name, + source:feed.Source + ); + + + + + + Adds NuGet package source using the specified name, source & settings to global user config + + The context. + Name of the source. + Path to the package(s) source. + The settings. + + + var nugetSourceSettings = new NuGetSourcesSettings + { + UserName = EnvironmentVariable("PRIVATE_FEED_USERNAME"), + Password = EnvironmentVariable("PRIVATE_FEED_PASSWORD"), + IsSensitiveSource = true, + Verbosity = NuGetVerbosity.Detailed + }; + + var feed = new + { + Name = EnvironmentVariable("PRIVATE_FEED_NAME"), + Source = EnvironmentVariable("PRIVATE_FEED_SOURCE") + }; + + NuGetAddSource( + name:feed.Name, + source:feed.Source, + settings:nugetSourceSettings + ); + + + + + + Removes NuGet package source using the specified name & source from global user config + + The context. + Name of the source. + Path to the package(s) source. + + + var feed = new + { + Name = EnvironmentVariable("PRIVATE_FEED_NAME"), + Source = EnvironmentVariable("PRIVATE_FEED_SOURCE") + }; + + NuGetRemoveSource( + name:feed.Name, + source:feed.Source + ); + + + + + + Removes NuGet package source using the specified name, source & settings from global user config + + The context. + Name of the source. + Path to the package(s) source. + The settings. + + + var nugetSourceSettings = new NuGetSourcesSettings + { + UserName = EnvironmentVariable("PRIVATE_FEED_USERNAME"), + Password = EnvironmentVariable("PRIVATE_FEED_PASSWORD"), + IsSensitiveSource = true, + Verbosity = NuGetVerbosity.Detailed + }; + + var feed = new + { + Name = EnvironmentVariable("PRIVATE_FEED_NAME"), + Source = EnvironmentVariable("PRIVATE_FEED_SOURCE") + }; + + NuGetRemoveSource( + name:feed.Name, + source:feed.Source, + settings:nugetSourceSettings + ); + + + + + + Checks whether or not a NuGet package source exists in the global user configuration, using the specified source. + + The context. + Path to the package(s) source. + Whether or not the NuGet package source exists in the global user configuration. + + + var feed = new + { + Name = EnvironmentVariable("PRIVATE_FEED_NAME"), + Source = EnvironmentVariable("PRIVATE_FEED_SOURCE") + }; + if (!NuGetHasSource(source:feed.Source)) + { + Information("Source missing"); + } + else + { + Information("Source already exists"); + } + + + + + + Checks whether or not a NuGet package source exists in the global user configuration, using the specified source and settings. + + The context. + Path to the package(s) source. + The settings. + Whether the specified NuGet package source exist. + + + var nugetSourceSettings = new NuGetSourcesSettings + { + UserName = EnvironmentVariable("PRIVATE_FEED_USERNAME"), + Password = EnvironmentVariable("PRIVATE_FEED_PASSWORD"), + IsSensitiveSource = true, + Verbosity = NuGetVerbosity.Detailed + }; + var feed = new + { + Name = EnvironmentVariable("PRIVATE_FEED_NAME"), + Source = EnvironmentVariable("PRIVATE_FEED_SOURCE") + }; + if (!NuGetHasSource( + source:feed.Source, + settings:nugetSourceSettings)) + { + Information("Source missing"); + } + else + { + Information("Source already exists"); + } + + + + + + Installs a NuGet package. + + The context. + The id of the package to install. + + + NuGetInstall("MyNugetPackage"); + + + + + + Installs NuGet packages. + + The context. + The id's of the package to install. + + + NuGetInstall(new[] { "MyNugetPackage", "OtherNugetPackage" }); + + + + + + Installs a NuGet package using the specified settings. + + The context. + The id of the package to install. + The settings. + + + NuGetInstall("MyNugetPackage", new NuGetInstallSettings { + ExcludeVersion = true, + OutputDirectory = "./tools" + }); + + + + + + Installs NuGet packages using the specified settings. + + The context. + The id's of the package to install. + The settings. + + + NuGetInstall(new[] { "MyNugetPackage", "OtherNugetPackage" }, new NuGetInstallSettings { + ExcludeVersion = true, + OutputDirectory = "./tools" + }); + + + + + + Installs NuGet packages using the specified package configuration. + + The context. + The package configuration to install. + + + NuGetInstallFromConfig("./tools/packages.config"); + + + + + + Installs NuGet packages using the specified package configurations. + + The context. + The package configurations to install. + + + var packageConfigs = GetFiles("./**/packages.config"); + + NuGetInstallFromConfig(packageConfigs); + + + + + + Installs NuGet packages using the specified package configuration and settings. + + The context. + The package configuration to install. + The settings. + + + NuGetInstallFromConfig("./tools/packages.config", new NuGetInstallSettings { + ExcludeVersion = true, + OutputDirectory = "./tools" + }); + + + + + + Installs NuGet packages using the specified package configurations and settings. + + The context. + The package configurations to install. + The settings. + + + var packageConfigs = GetFiles("./**/packages.config"); + + NuGetInstallFromConfig(packageConfigs, new NuGetInstallSettings { + ExcludeVersion = true, + OutputDirectory = "./tools" + }); + + + + + + Installs NuGet packages using the specified API key, source and settings. + + + + var setting = new NuGetSetApiKeySettings { + Verbosity = NuGetVerbosity.Detailed + }; + NuGetSetApiKey("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "https://nuget.org/api/v2/", setting); + + + The context. + The API key. + Server URL where the API key is valid. + The settings. + + + + Installs NuGet packages using the specified API key and source. + + + + NuGetSetApiKey("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "https://nuget.org/api/v2/"); + + + The context. + The API key. + Server URL where the API key is valid. + + + + Set the proxy settings to be used while connecting to your NuGet feed, including settings. + + + + var setting = new NuGetSetProxySettings { + Verbosity = NuGetVerbosity.Detailed + }; + NuGetSetProxy("127.0.0.1:8080", "proxyuser","Pa$$w0rd1", setting); + + + The context. + The url of the proxy. + The username used to access the proxy. + The password used to access the proxy. + The settings. + + + + Set the proxy settings to be used while connecting to your NuGet feed. + + + + NuGetSetProxy("127.0.0.1:8080", "proxyuser","Pa$$w0rd1"); + + + The context. + The url of the proxy. + The username used to access the proxy. + The password used to access the proxy. + + + + Updates NuGet packages. + + The context. + The target to update. + + + NuGetUpdate("./tools/packages.config"); + + + + + + Updates NuGet packages. + + The context. + The targets to update. + + + var targets = GetFiles("./**/packages.config"); + + NuGetUpdate(targets); + + + + + + Updates NuGet packages using the specified settings. + + The context. + The target to update. + The settings. + + + NuGetUpdate("./tools/packages.config", new NuGetUpdateSettings { + Prerelease = true, + }); + + + + + + Updates NuGet packages using the specified settings. + + The context. + The targets to update. + The settings. + + + var targets = GetFiles("./**/packages.config"); + + NuGetUpdate(targets, new NuGetUpdateSettings { + Prerelease = true, + }); + + + + + + Adds a NuGet package using package id and source. + + The context. + The id of the package to add. + Path to the local feed source. + + + NuGetAdd("MyNugetPackage", "//bar/packages/"); + + + + + + Adds a NuGet package using package id and source. + + The context. + The id of the package to add. + The settings. + + + NuGetAdd("MyNugetPackage", new NuGetAddSettings({ + Source = "//bar/packages/" + }); + + + + + + Adds all packages from source to destination. + + The context. + The local feed package source. + The local feed destination source. + + + NuGetInit("//foo/packages", "//bar/packages/"); + + + + + + Adds all packages from source to destination using specified settings. + + The context. + The local feed package source. + The local feed destination source. + The settings. + + + NuGetInit("//foo/packages", "//bar/packages/", new NuGetInitSettings { + Expand = true + }); + + + + + + List packages on available from source using specified settings + + The context. + The package Id + The settings. + List of packages with their version + + + var packageList = NuGetList("Cake", new NuGetListSettings { + AllVersions = false, + Prerelease = false + }); + foreach(var package in packageList) + { + Information("Found package {0}, version {1}", package.Name, package.Version); + } + + + + + + List packages on available from source using specified settings + + The context. + The package Id + List of packages with their version + + + var packageList = NuGetList("Cake"); + foreach(var package in packageList) + { + Information("Found package {0}, version {1}", package.Name, package.Version); + } + + + + + + List packages on available from source using specified settings + + The context. + The settings. + List of packages with their version + + + var packageList = NuGetList(new NuGetListSettings { + AllVersions = false, + Prerelease = false + }); + foreach(var package in packageList) + { + Information("Found package {0}, version {1}", package.Name, package.Version); + } + + + + + + NuGet MSBuild version + + + + + MSBuildVersion : 4 + + + + + MSBuildVersion : 12 + + + + + MSBuildVersion : 14 + + + + + MSBuildVersion : 15 + + + + + Base class for all NuGet related tools. + + The settings type. + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The NuGet tool resolver. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Gets alternative file paths which the tool may exist in + + The settings. + The default tool path. + + + + Represents NuGet verbosity. + + + + + Verbosity: Normal + + + + + Verbosity: Quiet + + + + + Verbosity: Detailed + + + + + This namespace contain types used to interact with NUnit. + + + + + Contains functionality related to running NUnit v2 and v3 unit tests. + + In order to use the commands for this alias, include the following in your build.cake file to download and + install from NuGet.org, or specify the ToolPath within the class: + + #tool "nuget:?package=NUnit.ConsoleRunner" + + + + + + + Runs all NUnit unit tests in the assemblies matching the specified pattern. + + The context. + The pattern. + + + NUnit3("./src/**/bin/Release/*.Tests.dll"); + + + + + + Runs all NUnit unit tests in the assemblies matching the specified pattern, + using the specified settings. + + The context. + The pattern. + The settings. + + + NUnit3("./src/**/bin/Release/*.Tests.dll", new NUnit3Settings { + NoResults = true + }); + + + + + + Runs all NUnit unit tests in the specified assemblies. + + The context. + The assemblies. + + + NUnit3(new [] { "./src/Example.Tests/bin/Release/Example.Tests.dll" }); + + + + + + Runs all NUnit unit tests in the specified assemblies. + + The context. + The assemblies. + + + var testAssemblies = GetFiles("./src/**/bin/Release/*.Tests.dll"); + NUnit3(testAssemblies); + + + + + + Runs all NUnit unit tests in the specified assemblies, + using the specified settings. + + The context. + The assemblies. + The settings. + + + NUnit3(new [] { "./src/Example.Tests/bin/Release/Example.Tests.dll" }, new NUnit3Settings { + NoResults = true + }); + + + + + + Runs all NUnit unit tests in the specified assemblies, + using the specified settings. + + The context. + The assemblies. + The settings. + + + var testAssemblies = GetFiles("./src/**/bin/Release/*.Tests.dll"); + NUnit3(testAssemblies, new NUnit3Settings { + NoResults = true + }); + + + + + + The /domain option controls of the creation of AppDomains for running tests. + + + + + Create a separate AppDomain for each assembly if more than one is listed on the command + line, otherwise creates a single AppDomain. + + + + + No AppDomain is created - the tests are run in the primary domain. + This normally requires copying the NUnit assemblies into the same directory as your tests. + + + + + A single test AppDomain is created for all test assemblies + This is how NUnit worked prior to version 2.4. + + + + + An AppDomain is created for each assembly specified on the command line. + + + + + Represents the possible values for the Labels option. + + + + + Does not output labels. This is the default. + + + + + Outputs labels for tests that are run. + + + + + Outputs labels for all tests. + + + + + Outputs labels at the start of every test. + + + + + Outputs labels at the end of every test. + + + + + Represents the various ways NUnit loads tests in processes. + + + + + A separate process is created for each test assembly. This is the default. + + + + + One separate process is created to run all of the test assemblies. + + + + + All the tests are run in the nunit-console process. + + + + + Contains information for the results that should be exported. + + + + + Gets or sets the name of the XML result file. + + + The name of the XML result file. Defaults to TestResult.xml. + + + + + Gets or sets the format that the results should be in. must be set to + have any effect. Specify nunit2 to output the results in NUnit 2 xml format. + nunit3 may be specified for NUnit 3 format, however this is the default. Additional + formats may be supported in the future, check the NUnit documentation. + + + The format of the result file. Defaults to nunit3. + + + + + Gets or sets the file name of an XSL transform that will be applied to the results. + + + The name of an XSLT file that will be applied to the results. + + + + + The NUnit3 unit test runner. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Runs the tests in the specified assemblies, using the specified settings. + + The assembly paths. + The settings. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Customized Nunit3 exit code handling. + Throws on non-zero exit code + + The process exit code + + + + Contains settings used by . + + + + + Gets or sets the list of tests to run or explore. + + + A comma-separated list of test names. + + + + + Gets or sets a file containing the tests to run. + + + File path containing a list of tests to run, one per line. + + + + + Gets or sets the test selection expression indicating what tests will be run. + + + The --where option is intended to extend or replace the earlier + --test, --include and --exclude options by use of a selection expression + describing exactly which tests to use. Examples of usage are: + --where:cat==Data + --where "method =~ /DataTest*/ && cat = Slow" + See https://github.com/nunit/docs/wiki/Test-Selection-Language. + + + + + Gets or sets the default timeout to be used for test cases in this run. + If any test exceeds the timeout value, it is cancelled and reported as an error. + + + The timeout in milliseconds. + + + + + Gets or sets the random seed used to generate test cases. + + + The random seed. + + + + + Gets or sets the number of worker threads to be used + in running tests.If not specified, defaults to + 2 or the number of processors, whichever is greater. + + + The number of worker threads. + + + + + Gets or sets a value indicating whether execution of the test run should terminate + immediately on the first test failure or error. + + + true if execution of the test run should terminate immediately on the first test failure or error; + otherwise, false. + + + + + Gets or sets a value indicating whether execution of the test run should + skip any non-test assemblies specified, without error. + + + true if execution of the test run should skip any non-test assemblies specified, without error; + otherwise, false. + + + + + Gets or sets the directory to use for output files. If + not specified, defaults to the current directory. + + + PATH of the directory. + + + + + Gets or sets the location that NUnit should write test output. + + The location that NUnit should write test output. + + + + Gets or sets the location that NUnit should write test error output. + + The location that NUnit should write test error output. + + + + Gets or sets a value indicating whether to print full report of all test results. + + + true if a full report of test results should be printed; + otherwise, false. + + + + + Gets or sets the results that should be saved. + + The package owners. + + + + Gets or sets a value indicating whether to generate the XML result file. + + + true if the XML result file should be generated; otherwise, false. + + + + + Gets or sets a value specifying whether to write test case names to the output. + + + On to write labels for tests that are run,All to write labels + for all tests,Before to write labels at the start of every test + ,or After to write labels at the end of every test. + + + + + Gets or sets a value indicating whether to turn on TeamCity service messages. + + + true to turn on TeamCity service messages; otherwise, false. + + + + + Gets or sets a value indicating whether to show copyright information at the start of the program. + + + true if to show copyright information at the start of the program; otherwise, false. + + + + + Gets or sets a value indicating whether to show the output in color. + + + true disable color output; otherwise, false. + + + + + Gets or sets a value indicating whether to show additional information as the tests run. + + + true shows additional information as the tests run; otherwise, false. + + + + + Gets or sets the name of a project configuration to load (e.g.:Debug). + This selects the configuration within the NUnit project file. + + + The name of the configuration to load. + + + + + Gets or sets a value indicating whether to run tests in an x86 process on 64 bit systems. + + + true to run tests in an x86 process on 64 bit systems; otherwise, false. + + + + + Gets or sets a value indicating whether to Dispose each test runner after it has finished + running its tests. + + + true to Dispose each test runner after it has finished + running its tests; otherwise, false. + + + + + Gets or sets a value indicating whether to shadow copy tests. + Default value is false. + + + true if tests should be run as a shadow copy; otherwise, false. + + + + + Gets or sets the version of the runtime to be used when executing tests. + + + The version of the runtime to be used when executing tests. + + + + + Gets or sets a value indicating how NUnit should load tests in processes. + The Default value is . + + + + + Gets or sets a value to control creation of AppDomains for running tests. + Corresponds to the /domain command line switch. + The default is to use multiple domains if multiple assemblies are listed on the command line, + otherwise a single domain is used. + + + + + Gets or sets the maximum number of test assembly agents to run at one + time. If not specified, there is no limit. + + + The maximum number of test assembly agents to run at one time. + + + + + Gets or sets the parameters that should be passed to the runner. + + + List of parameters (key/value) which are passed to the runner. + + + + + Gets or sets the level of detail at which the runner should write to its internal trace log. + Corresponds to the -trace=LEVEL command line argument. + If null, no argument will be specified + + + The trace level. + + + + + Contains functionality related to running NUnit tests. + + In order to use the commands for this alias, include the following in your build.cake file to download and + install from NuGet.org, or specify the ToolPath within the class: + + #tool "nuget:?package=NUnit.Runners&version=2.6.4" + + + + + + + Runs all NUnit unit tests in the assemblies matching the specified pattern. + + + + NUnit("./src/UnitTests/*.dll"); + + + The context. + The pattern. + + + + Runs all NUnit unit tests in the assemblies matching the specified pattern, + using the specified settings. + + + + NUnit("./src/UnitTests/*.dll", new NUnitSettings { + Timeout = 4000, + StopOnError = true + }); + + + The context. + The pattern. + The settings. + + + + Runs all NUnit unit tests in the specified assemblies. + + + + var assemblies = new [] { + "UnitTests1.dll", + "UnitTests2.dll" + }; + NUnit(assemblies); + + + The context. + The assemblies. + + + + Runs all NUnit unit tests in the specified assemblies. + + + + var assemblies = GetFiles("./src/UnitTests/*.dll"); + NUnit(assemblies); + + + The context. + The assemblies. + + + + Runs all NUnit unit tests in the specified assemblies, + using the specified settings. + + + + var assemblies = new [] { + "UnitTests1.dll", + "UnitTests2.dll" + }; + NUnit(assemblies, new NUnitSettings { + Timeout = 4000, + StopOnError = true + }); + + + The context. + The assemblies. + The settings. + + + + Runs all NUnit unit tests in the specified assemblies, + using the specified settings. + + + + var assemblies = GetFiles(""./src/UnitTests/*.dll""); + NUnit(assemblies, new NUnitSettings { + Timeout = 4000, + StopOnError = true + }); + + + The context. + The assemblies. + The settings. + + + + The /domain option controls of the creation of AppDomains for running tests. + + + + + Create a separate AppDomain for each assembly listed on the command line. + + + + + No domain is created - the tests are run in the primary domain. + This normally requires copying the NUnit assemblies into the same directory as your tests. + + + + + A test domain is created - this is how NUnit worked prior to version 2.4 + + + + + Represents the level of detail at which NUnit should set internal tracing + + + + + Do not display any trace messages + + + + + Display Error messages only + + + + + Display Warning level and higher messages + + + + + Display informational and higher messages + + + + + Display debug messages and higher - i.e. all messages + + + + + Display debug messages and higher - i.e. all messages + + + + + Contains extension methods for . + + + + + Gets the LEVEL value for the --trace command line argument for the given + + The value for which to get the representation + Returns the appropriate representation for the given value + + + + Represents the various ways NUnit loads tests in processes. + + + + + All the tests are run in the nunit-console process. This is the default. + + + + + A separate process is created to run the tests. + + + + + A separate process is created for each test assembly. + + + + + The NUnit unit test runner. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Runs the tests in the specified assemblies, using the specified settings. + + The assembly paths. + The settings. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Customized Nunit exit code handling. + Throws on non-zero exit code + + The process exit code + + + + Contains settings used by . + + + + + Initializes a new instance of the class. + + + + + Gets or sets the name of the XML result file. + + + The name of the XML result file. Defaults to TestResult.xml. + + + + + Gets or sets a value indicating whether to generate the XML result file. + + + true if the XML result file should be generated; otherwise, false. + + + + + Gets or sets the version of the runtime to be used when executing tests. + + + The version of the runtime to be used when executing tests. + + + + + Gets or sets the categories to include in a run. + + The categories to include in a run. + + + + Gets or sets the categories to exclude from a run. + + + The categories to exclude from a run. + + + + + Gets or sets the default timeout to be used for test cases in this run. + If any test exceeds the timeout value, it is cancelled and reported as an error. + + The default timeout to be used for test cases in this run. + + + + Gets or sets a value indicating whether tests should be run as a shadow copy. + Default value is true. + + + true if tests should be run as a shadow copy; otherwise, false. + + + + + Gets or sets a value indicating whether the main thread should be used for running tests. + + + true if the main thread should be used for running tests; otherwise, false. + + + + + Gets or sets a value indicating whether to show copyright information at the start of the program. + + + true if to show copyright information at the start of the program; otherwise, false. + + + + + Gets or sets a value indicating whether execution of the test run should terminate + immediately on the first test failure or error. + + + true if execution of the test run should terminate immediately on the first test failure or error; + otherwise, false. + + + + + Gets or sets the amount of information that NUnit should write to its internal trace log. + + The amount of information that NUnit should write to its internal trace log. + + + + Gets or sets the location that NUnit should write test output. + + The location that NUnit should write test output. + + + + Gets or sets the location that NUnit should write test error output. + + The location that NUnit should write test error output. + + + + Gets or sets a value indicating how NUnit should load tests in processes. + The Default value is + + + + + Gets or sets a value indicating whether Single Threaded Apartment state (STA) will be used. + Corresponds to the /apartment command line option + + + + + Gets or sets a value to control creation of AppDomains for running tests. + Corresponds to the /domain command line switch. + The default is to use multiple domains if multiple assemblies are listed on the command line. + Otherwise a single domain is used. + + + + + Gets or sets a value indicating whether to run tests in an x86 process on 64 bit systems. + + + true to run tests in an x86 process on 64 bit systems; otherwise, false. + + + + + Gets or sets a value indicating whether to cause an identifying label to be displayed at the start of each test case. + + + true to cause an identifying label to be displayed at the start of each test case; otherwise, false. + + + + + This namespace contain types used + to interact with Octopus Deploy. + + + + + Contains settings used by . + See Octopus Deploy documentation here + + + + + Initializes a new instance of the class. + + + + + Gets or sets the release number to use for the new release. + + + + + Gets or sets the default version number of all packages to use the new release. + + + + + Gets or sets the version number to use for a package in the release. + + + + + Gets or sets the folder containing NuGet packages. + + + + + Gets or sets the release notes for the new release. + + + + + Gets or sets the path to a file that contains Release Notes for the new release. + + + + + Gets or sets a value indicating whether to Ignore Existing release flag. + + + + + Gets or sets environment to automatically deploy to, e.g., Production. + + + + + Gets or sets a value indicating whether progress of the deployment should be followed. (Sets --waitfordeployment and --norawlog to true.) + + + + + Gets or sets a value indicating whether to force downloading of already installed packages. Default false. + + + + + Gets or sets a value indicating whether to wait synchronously for deployment to finish. + + + + + Gets or sets maximum time (timespan format) that the console session will wait for the deployment to finish (default 00:10:00). + This will not stop the deployment. Requires WaitForDeployment parameter set. + + + + + Gets or sets a value indicating whether to cancel the deployment if the deployment timeout is reached(default false). + + + + + Gets or sets how much time should elapse between deployment status checks(default 00:00:10). + + + + + Gets or sets a value indicating whether to use Guided Failure mode. If not specified, will use default setting from environment. + + + + + Gets or sets list of machines names to target in the deployed environment.If not specified all machines in the environment will be considered. + + + + + Gets or sets a value indicating whether a project is configured to skip packages with already-installed versions, override this setting to force re-deployment (flag, default false). + + + + + Gets or sets a list of steps to be skipped. Takes step names. + + + + + Gets or sets a value indicating whether print the raw log of failed tasks or not. + + + + + Gets or sets a file where to redirect the raw log of failed tasks. + + + + + Gets or sets values for any prompted variables. + + + + + Gets or sets time at which deployment should start (scheduled deployment), specified as any valid DateTimeOffset format, and assuming the time zone is the current local time zone. + + + + + Gets or sets a tenant the deployment will be performed for; specify this argument multiple times to add multiple tenants or use `*` wildcard to deploy to tenants able to deploy. + + + + + Gets or sets a tenant tags used to match tenants that the deployment will be performed for; specify this argument multiple times to add multiple tenant tags. + + + + + Gets or sets the octopus channel for the new release. + + + + + Gets or sets a value indicating whether octopus channel rules should be ignored. + + + + + Gets or sets a value indicating whether progress of the deployment will be shown. + + + + + Parses the Console Output of the octo.exe call when called with list-deployments + + + + + Initializes a new instance of the class. + + + + + Parse the results from The Deployment Query + + Console Output from the Run Process + A collection of Octopus deployments. + + + + Parses a set of lines from the output + + A set of lines to parse + an OctopusDeployment or null + + + + Contains functionality related to Octopus Deploy. + + In order to use the commands for this alias, include the following in your build.cake file to download and + install from NuGet.org, or specify the ToolPath within the appropriate settings class: + + #tool "nuget:?package=OctopusTools" + + + + + + + Creates a release for the specified Octopus Deploy Project. + + The cake context. + The name of the project. + The settings. + + + // Minimum required + OctoCreateRelease(projectNameOnServer, new CreateReleaseSettings { + Server = "http://octopus-deploy.example", + ApiKey = "API-XXXXXXXXXXXXXXXXXXXX" + }); + + OctoCreateRelease(projectNameOnServer, new CreateReleaseSettings { + Server = "http://octopus-deploy.example", + Username = "DeployUser", + Password = "a-very-secure-password" + }); + + OctoCreateRelease(projectNameOnServer, new CreateReleaseSettings { + ConfigurationFile = @"C:\OctopusDeploy.config" + }); + + // Additional Options + OctoCreateRelease(projectNameOnServer, new CreateReleaseSettings { + ToolPath = "./tools/OctopusTools/Octo.exe" + EnableDebugLogging = true, + IgnoreSslErrors = true, + EnableServiceMessages = true, // Enables teamcity services messages when logging + ReleaseNumber = "1.8.2", + DefaultPackageVersion = "1.0.0.0", // All packages in the release should be 1.0.0.0 + Packages = new Dictionary<string, string> + { + { "PackageOne", "1.0.2.3" }, + { "PackageTwo", "5.2.3" } + }, + PackagesFolder = @"C:\MyOtherNugetFeed", + + // One or the other + ReleaseNotes = "Version 2.0 \n What a milestone we have ...", + ReleaseNotesFile = "./ReleaseNotes.md", + + IgnoreExisting = true // if this release number already exists, ignore it + }); + + + + + + Pushes the specified package to the Octopus Deploy repository + + The cake context + The Octopus server URL + The user's API key + Path to the package + The settings + + + + Pushes the specified packages to the Octopus Deploy repository + + The cake context + The Octopus server URL + The user's API key + Paths to the packages + The settings + + + + Packs the specified folder into an Octopus Deploy package. + + The cake context + The package ID. + + + + Packs the specified folder into an Octopus Deploy package. + + The cake context + The package ID. + The settings + + + + Deploys the specified already existing release into a specified environment + See Octopus Documentation for more details. + + The cake context + The Octopus server URL + The user's API key + Name of the target project + Target environment name + Version number of the release to deploy. Specify "latest" for the latest release + Deployment settings + + + // bare minimum + OctoDeployRelease("http://octopus-deploy.example", "API-XXXXXXXXXXXXXXXXXXXX", "MyGreatProject", "Testing", "2.1.15-RC" new OctopusDeployReleaseDeploymentSettings()); + + // All of deployment arguments + OctoDeployRelease("http://octopus-deploy.example", "API-XXXXXXXXXXXXXXXXXXXX", "MyGreatProject", "Testing", "2.1.15-RC" new OctopusDeployReleaseDeploymentSettings { + ShowProgress = true, + ForcePackageDownload = true, + WaitForDeployment = true, + DeploymentTimeout = TimeSpan.FromMinutes(1), + CancelOnTimeout = true, + DeploymentChecksLeepCycle = TimeSpan.FromMinutes(77), + GuidedFailure = true, + SpecificMachines = new string[] { "Machine1", "Machine2" }, + Force = true, + SkipSteps = new[] { "Step1", "Step2" }, + NoRawLog = true, + RawLogFile = "someFile.txt", + DeployAt = new DateTime(2010, 6, 15).AddMinutes(1), + Tenant = new[] { "Tenant1", "Tenant2" }, + TenantTags = new[] { "Tag1", "Tag2" }, + }); + + + + + + Promotes the specified already existing release into a specified environment + See Octopus Documentation for more details. + + The cake context + The Octopus server URL + The user's API key + Name of the target project + Source environment name + Target environment name + Deployment settings + + + // bare minimum + OctoPromoteRelease("http://octopus-deploy.example", "API-XXXXXXXXXXXXXXXXXXXX", "MyGreatProject", "Testing", "Staging", new OctopusDeployPromoteReleaseSettings()); + + // All of deployment arguments + OctoPromoteRelease("http://octopus-deploy.example", "API-XXXXXXXXXXXXXXXXXXXX", "MyGreatProject", "Testing", "Staging", new OctopusDeployPromoteReleaseSettings { + ShowProgress = true, + ForcePackageDownload = true, + WaitForDeployment = true, + DeploymentTimeout = TimeSpan.FromMinutes(1), + CancelOnTimeout = true, + DeploymentChecksLeepCycle = TimeSpan.FromMinutes(77), + GuidedFailure = true, + SpecificMachines = new string[] { "Machine1", "Machine2" }, + Force = true, + SkipSteps = new[] { "Step1", "Step2" }, + NoRawLog = true, + RawLogFile = "someFile.txt", + DeployAt = new DateTime(2010, 6, 15).AddMinutes(1), + Tenant = new[] { "Tenant1", "Tenant2" }, + TenantTags = new[] { "Tag1", "Tag2" }, + }); + + + + + + Allows you to query your Octopus Deploy server deployment history + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Pushes the specified packages to Octopus Deploy internal repository + + The Octopus server URL + The user's API key + The query + A list of Octopus Deployments + + + + An object representing a deployment in Octopus Deploy + + + + + gets or sets the Name of the Deployment's Project + + + + + gets or sets the Environment the project was deployed to + + + + + gets or sets the Deployment's channel + + + + + gets or sets When the deployment was created + + + + + gets or sets when the deployment was assembled + + + + + gets or sets the deployed project version + + + + + gets or sets the list of packages in the deployment + + + + + gets or sets the release notes for the deployment (HTML Markup) + + + + + Contains settings used by . + + + + + Gets or Sets a value that is an Octopus Environment Name to filter for. + + + + + Gets or Sets a value that is an Octopus Project Name to filter for. + + + + + Gets or Sets a value that is an Octopus Tenamt Name to filter for. + + + + + Gets or Sets a value that indicates how many deployments to retrieve + in Date Descending order (most recent first) + Default: 1 + + + + + The Octopus deploy package packer + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Creates an Octopus deploy package with the specified ID. + + The package ID. + The settings. + + + + Possible arguments to pass to Octo.exe for promoting a release. See Octopus Deploy documentation + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether overwrite the variable snapshot for the release by re-importing the variables from the project + + + + + Gets or sets a value indicating whether progress of the deployment should be followed. (Sets --waitfordeployment and --norawlog to true.) + + + + + Gets or sets a value indicating whether to force downloading of already installed packages. Default false. + + + + + Gets or sets a value indicating whether to wait synchronously for deployment to finish. + + + + + Gets or sets maximum time (timespan format) that the console session will wait for the deployment to finish (default 00:10:00). + This will not stop the deployment. Requires WaitForDeployment parameter set. + + + + + Gets or sets a value indicating whether to cancel the deployment if the deployment timeout is reached(default false). + + + + + Gets or sets how much time should elapse between deployment status checks(default 00:00:10). + + + + + Gets or sets a value indicating whether to use Guided Failure mode. If not specified, will use default setting from environment. + + + + + Gets or sets list of machines names to target in the deployed environment.If not specified all machines in the environment will be considered. + + + + + Gets or sets a value indicating whether a project is configured to skip packages with already-installed versions, override this setting to force re-deployment (flag, default false). + + + + + Gets or sets a list of steps to be skipped. Takes step names. + + + + + Gets or sets a value indicating whether print the raw log of failed tasks or not. + + + + + Gets or sets a file where to redirect the raw log of failed tasks. + + + + + Gets or sets values for any prompted variables. + + + + + Gets or sets time at which deployment should start (scheduled deployment), specified as any valid DateTimeOffset format, and assuming the time zone is the current local time zone. + + + + + Gets or sets a tenant the deployment will be performed for; specify this argument multiple times to add multiple tenants or use `*` wildcard to deploy to tenants able to deploy. + + + + + Gets or sets a tenant tags used to match tenants that the deployment will be performed for; specify this argument multiple times to add multiple tenant tags. + + + + + The Octopus Deploy package push runner + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Pushes the specified packages to Octopus Deploy internal repository + + The Octopus server URL + The user's API key + Paths to the packages to be pushed + The settings + + + + The Octopus Deploy release creator runner + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Creates a release for the specified project in OctopusDeploy + + The target project name + The settings + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + The Octopus Deploy Release Deploy runner. This class facilitates deploying existing releases in Octopus Deploy. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Requests a deployment of a specified release to an environment. + + Octopus Server URL + The user's API key + Name of the target project + Environment to deploy to, e.g., Production + Release number to be deployed to + Settings for the deployment + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Possible arguments to pass to Octo.exe for deploying a release. See Octopus Deploy documentation + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether progress of the deployment should be followed. (Sets --waitfordeployment and --norawlog to true.) + + + + + Gets or sets a value indicating whether to force downloading of already installed packages. Default false. + + + + + Gets or sets a value indicating whether to wait synchronously for deployment to finish. + + + + + Gets or sets maximum time (timespan format) that the console session will wait for the deployment to finish (default 00:10:00). + This will not stop the deployment. Requires WaitForDeployment parameter set. + + + + + Gets or sets a value indicating whether to cancel the deployment if the deployment timeout is reached(default false). + + + + + Gets or sets how much time should elapse between deployment status checks(default 00:00:10). + + + + + Gets or sets a value indicating whether to use Guided Failure mode. If not specified, will use default setting from environment. + + + + + Gets or sets list of machines names to target in the deployed environment.If not specified all machines in the environment will be considered. + + + + + Gets or sets a value indicating whether a project is configured to skip packages with already-installed versions, override this setting to force re-deployment (flag, default false). + + + + + Gets or sets a list of steps to be skipped. Takes step names. + + + + + Gets or sets a value indicating whether print the raw log of failed tasks or not. + + + + + Gets or sets a file where to redirect the raw log of failed tasks. + + + + + Gets or sets values for any prompted variables. + + + + + Gets or sets time at which deployment should start (scheduled deployment), specified as any valid DateTimeOffset format, and assuming the time zone is the current local time zone. + + + + + Gets or sets a tenant the deployment will be performed for; specify this argument multiple times to add multiple tenants or use `*` wildcard to deploy to tenants able to deploy. + + + + + Gets or sets a tenant tags used to match tenants that the deployment will be performed for; specify this argument multiple times to add multiple tenant tags. + + + + + Gets or sets the channel to use when getting the release to deploy. + + + + + The Octopus Deploy Promote Release runner. This class facilitates promoting existing releases in Octopus Deploy. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Requests a promotion of a specified release to an environment. + + Octopus Server URL + The user's API key + Name of the target project + Environment to promote from, e.g., Staging + Environment to promote to, e.g., Production + Settings for the deployment + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Contains the common settings used by all commands in . + + + + + Gets or sets the username to use when authenticating with the server + + + + + Gets or sets the password to use when authenticating with the server + + + + + Gets or sets the octopus server url. + + + + + Gets or sets the user's API key. + + + + + Gets or sets the text file of default values + + + + + Gets or sets a value indicating whether the enable debug logging flag is set + + + + + Gets or sets a value indicating whether the ignore SSL errors flag is set + + + + + Gets or sets a value indicating whether the enable service messages flag is set + + + + + Represents the format of an Octopus package. + + + + + NuGet package + + + + + Zip package + + + + + Contains the settings used by OctoPack. + + + + + Gets or sets the version. + + + + + Gets or sets the package format. + + + + + Gets or sets the folder into which the package will be written. Defaults to the current folder. + + + + + Gets or sets the root folder containing files and folders to pack. Defaults to the current folder. + + + + + Gets or sets the author. Only applies to NuGet packages. + + + + + Gets or sets the title. Only applies to NuGet packages. + + + + + Gets or sets the description. Only applies to NuGet packages. + + + + + Gets or sets the release notes. Only applies to NuGet packages. + + + + + Gets or sets the release notes file. Only applies to NuGet packages. + + + + + Gets or sets the file patterns to include. If none are specified, defaults to **. + + + + + Gets or sets a value indicating whether to allow an existing package with the same ID/version to be overwriten. + + + + + Contains settings used by . + + + + + Gets or sets a value indicating whether to overwrite an existing package + + + + + This namespace contain types used + to interact with Roundhouse. + + + + + Defines the recovery model for SQL Server + + + + + Doesn't change the mode + + + + + Does not create backup before migration + + + + + Creates log backup before migration + + + + + Contains functionality related to RoundhousE. + + In order to use the commands for this alias, include the following in your build.cake file to download and + install from NuGet.org, or specify the ToolPath within the class: + + #tool "nuget:?package=roundhouse" + + + + + + + Executes Roundhouse with the given configured settings. + + The context. + The settings. + + + RoundhouseMigrate(new RoundhouseSettings{ + ServerName = "Sql2008R2", + DatabaseName = "AdventureWorks2008R2", + SqlFilesDirectory = "./src/sql" + }); + + + + + + Executes Roundhouse migration to drop the database using the provided settings. + + The context. + The settings. + + + RoundhouseDrop(new RoundhouseSettings{ + ServerName = "Sql2008R2", + DatabaseName = "AdventureWorks2008R2" + }); + + + + + + The Roundhouse console application runner. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Runs Roundhouse with the given settings. + + The settings. + Will drop/delete the database if set to true. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Contains settings used by . + + + + + Gets or sets the server name. + + + The server on which create/migrate should happen. + + + + + Gets or sets the database name. + + + The database you want to create/migrate. + + + + + Gets or sets the connection string. + + + As an alternative to ServerName and Database - You can provide an entire connection string instead. + + + + + Gets or sets the connection string for admin connections. + + + This is used for connecting to master when you may have a different uid and password than normal. + + + + + Gets or sets the timeout (in seconds) for normal connections. + + + This is the timeout when commands are run. This is not for admin commands or restore. + + + + + Gets or sets the timeout (in seconds) for admin connections. + + + This is the timeout when administration commands are run (except for restore, which has its own). + + + + + Gets or sets the sql files directory. + + + The directory where your SQL scripts are. + + + + + Gets or sets the location of the source code repository + + + Path to code repository to be able to correlate versions + + + + + Gets or sets the version file. + + + Path to the file to use for applying version number. Either a .XML file, a .DLL or a .TXT file that a version can be resolved from. + + + + + Gets or sets the XPath to locate version in the . + + + Works in conjunction with an XML version file. + + + + + Gets or sets the folder name for 'alterDatabase' scripts. + + + The name of the folder where you keep your alter database scripts. Read up on token replacement. You will want to use {{DatabaseName}} here instead of specifying a database name. + + + + + Gets or sets the folder name for 'runAfterCreateDatabase' scripts. + + + The name of the folder where you will keep scripts that ONLY run after a database is created. + + + + + Gets or sets the folder name for 'runBeforeUp' scripts. + + + The name of the folder where you keep scripts that you want to run before your update scripts. + + + + + Gets or sets the folder name for 'up' scripts. + + + The name of the folder where you keep your update scripts. + + + + + Gets or sets the folder name for 'runFirstAfterUp' scripts. + + + The name of the folder where you keep any functions, views, or sprocs that are order dependent. If you have a function that depends on a view, you definitely need the view in this folder. + + + + + Gets or sets the folder name for 'functions' scripts. + + + The name of the folder where you keep your functions. + + + + + Gets or sets the folder name for 'views' scripts. + + + The name of the folder where you keep your views. + + + + + Gets or sets the folder name for 'sprocs' scripts. + + + The name of the folder where you keep your stored procedures. + + + + + Gets or sets the folder name for 'indexes' scripts. + + + The name of the folder where you keep your indexes. + + + + + Gets or sets the folder name for 'runAfterOtherAnyTimeScripts' scripts. + + + The name of the folder where you keep scripts that will be run after all of the other any time scripts complete. + + + + + Gets or sets the folder name for 'permissions' scripts. + + + The name of the folder where you keep your permissions scripts. + + + + + Gets or sets the folder name for 'beforeMig' scripts. + + + The name of the folder for scripts to run before migration and outside of a transaction. + + + + + Gets or sets the folder name for 'afterMig' scripts. + + + The name of the folder for scripts to run before migration and outside of a transaction. + + + + + Gets or sets the schema name to use instead of [RoundhousE]. + + + The schema where RH stores its tables. + + + + + Gets or sets the environment for RH to be scoped. + + + This allows RH to be environment aware and only run scripts that are in a particular environment based on the namingof the script. LOCAL.something**.ENV.**sql would only be run in the LOCAL environment. + + + + + Gets or sets a value indicating whether perform a restore. + + + This instructs RH to do a restore (with the parameter) of a database before running migration scripts. + + + + + Gets or sets the restore file path. + + + File path of back when Restore is set to true + + + + + Gets or sets the custom database creation script. + + + This instructs RH to use this script for creating a database instead of the default based on the SQLType. + + + + + Gets or sets the output path. + + + Path to where migration artifacts are stored. + + + + + Gets or sets a value indicating whether to warn when previously run scripts have changed. + + + Instructs RH to execute changed one time scripts (DDL/DML in 'Up'/) that have previously been run against the database instead of failing. A warning is logged for each one time scripts that is rerun. + + + + + Gets or sets a value indicating whether to keep RH silent. + + + Tells RH not to ask for any input when it runs. + + + + + Gets or sets database type. + + + Database Type (fully qualified class name implementing [roundhouse.sql.Database, roundhouse]) + + + + + Gets or sets a value indicating whether to drop the DB. + + + This instructs RH to remove a database and not run migration scripts. + + + + + Gets or sets a value indicating whether to use transactions. + + + This instructs RH to run inside of a transaction. + + + + + Gets or sets SQL Server recovery mode. + + + This sets the recovery model for SQL Server during migration. (NoChange, Simple, Full) + + + + + Gets or sets a value indicating whether to perform a dry run. + + + This instructs RH to log what would have run, but not to actually run anything against the database. Use this option if you are trying to figure out what RH is going to do. + + + + + Gets or sets a value indicating whether to create a database if it does not exist. + + + This instructs RH to not create a database if it does not exists. Defaults to false. + + + + + Gets or sets a value indicating whether to disable output of backup, items ran, permissions dumps, etc. + + + Disable output of backups, items ran, permissions dumps, etc. Log files are kept. Useful for example in CI environment. Defaults to false. + + + + + Gets or sets a value indicating whether to create an insert for its recording tables, but not run anything. + + + This instructs RH to create an insert for its recording tables, but not to actually run anything against the database. Use this option if you already have scripts that have been run through other means. Defaults to false. + + + + + Gets or sets a value indicating whether to write debug messages. + + + This instructs RH to write out all messages. Defaults to false. + + + + + Gets or sets a value indicating whether to execute any time scripts. + + + This instructs RH to run any time scripts every time it is run. Defaults to false. + + + + + Gets or sets a value indicating whether to perform token replacement. + + + This instructs RH to not perform token replacement {{somename}}. Defaults to false. + + + + + Gets or sets a value indicating whether to search all subdirectories. + + + Each Migration folder's subdirectories are traversed by default. This option pulls back scripts from the main directory and all subdirectories at once. Defaults to false. + + + + + This namespace contain types used for + signing assemblies with SignTool. + + + + + Represents a sign tool resolver. + + + This exists only to be able to test the sign tool. + Do not use this interface since it will be removed. + + + + + Resolves the path to the sign tool. + + The path to the sign tool. + + + + Digest algorithm for SignTool + + + + + SHA-1 digest algorithm + + + + + SHA-256 digest algorithm. + + + + + Contains functionality related to signing assemblies with PFX certificates using SignTool. + + In order to use the commands for this alias, SignTool will need to be installed on the machine where + the Cake script is being executed. This is typically achieved by installing the correct Windows SDK. + + + + + + Signs the specified assembly. + + The context. + The target assembly. + The settings. + + + Task("Sign") + .IsDependentOn("Clean") + .IsDependentOn("Restore") + .IsDependentOn("Build") + .Does(() => + { + var file = "Core.dll"; + Sign(file, new SignToolSignSettings { + TimeStampUri = new Uri("http://timestamp.digicert.com"), + CertPath = "digitalcertificate.pfx", + Password = "TopSecret" + }); + }); + + + + + + Signs the specified assembly. + + The context. + The target assembly. + The settings. + + + Task("Sign") + .IsDependentOn("Clean") + .IsDependentOn("Restore") + .IsDependentOn("Build") + .Does(() => + { + var file = new FilePath("Core.dll"); + Sign(file, new SignToolSignSettings { + TimeStampUri = new Uri("http://timestamp.digicert.com"), + CertPath = "digitalcertificate.pfx", + Password = "TopSecret" + }); + }); + + + + + + Signs the specified assemblies. + + The context. + The target assembly. + The settings. + + + Task("Sign") + .IsDependentOn("Clean") + .IsDependentOn("Restore") + .IsDependentOn("Build") + .Does(() => + { + var files = new string[] { "Core.dll", "Common.dll" }; + Sign(files, new SignToolSignSettings { + TimeStampUri = new Uri("http://timestamp.digicert.com"), + CertPath = "digitalcertificate.pfx", + Password = "TopSecret" + }); + }); + + + + + + Signs the specified assemblies. + + The context. + The target assembly. + The settings. + + + Task("Sign") + .IsDependentOn("Clean") + .IsDependentOn("Restore") + .IsDependentOn("Build") + .Does(() => + { + var files = GetFiles(solutionDir + "/**/bin/" + configuration + "/**/*.exe"); + Sign(files, new SignToolSignSettings { + TimeStampUri = new Uri("http://timestamp.digicert.com"), + CertPath = "digitalcertificate.pfx", + Password = "TopSecret" + }); + }); + + + + + + The SignTool SIGN assembly runner. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The registry. + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The registry. + The resolver. + + + + Signs the specified assemblies. + + The assembly paths. + The settings. + + + + Gets the name of the tool. + + + The name of the tool (SignTool SIGN). + + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Gets alternative file paths which the tool may exist in + + The settings. + The default tool path. + + + + Contains settings used by . + + + + + Gets or sets the timestamp server's URL. + + + + + Gets or sets the thumbprint for locating a certificate in the store. + + + + + Gets or sets the name of the subject of the signing certificate. This value can be a substring of the entire subject name. + + + + + Gets or sets the PFX certificate path. + + + + + Gets or sets the PFX certificate password. + + + + + Gets or sets the signed content's description. + + + + + Gets or sets the signed content's expanded description URL. + + + + + Gets or sets the file digest algorithm + + + + + Gets or sets the timestamp digest algorithm + + + + + Gets or sets a value indicating whether the signature should be appended + + + + + This namespace contain types used to interact with WiX. + + + + + The architecture for the package. + + + + + Architecture: x86_64 + + + + + Architecture: x86 + + + + + Architecture: Itanium + + + + + The WiX Candle runner. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Runs Candle with the specified source files and settings. + + The source files (.wxs) to compile. + The settings. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Contains settings used by . + + + + + Gets or sets a value indicating which architecture to build the MSI package for. + + + + + Gets or sets the pre processor defines. + + + + + Gets or sets the WiX extensions to use. + + + + + Gets or sets a value indicating whether FIPS compliant algorithms should be used. + + + true if FIPS compliant algorithms should be used, otherwise false. + + + + + Gets or sets a value indicating whether to show the logo information. + + + + + Gets or sets the output directory for the object files. + + + + + Gets or sets a value indicating whether to show pedantic messages. + + + + + Gets or sets a value indicating whether to show source trace for errors, warnings and verbose messages. + + + + + Gets or sets a value indicating whether to show verbose output. + + + + + The WiX Heat runner. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool service. + + + + Runs the Wix Heat runner for the specified directory path. + + The directory path. + The output file. + The WiX harvest type. + The settings. + + + + Runs the Wix Heat runner for the specified directory path. + + The object file. + The output file. + The WiX harvest type. + The settings. + + + + Runs the Wix Heat runner for the specified directory path. + + The harvest target. + The output file. + The WiX harvest type. + The settings. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Contains settings used by . + + + + + Gets or sets the WiX extensions to use. + + + + + Gets or sets a value indicating whether [no logo]. + + + true if [no logo]; otherwise, false. + + + + + Gets or sets the suppress specific warnings. + + + The suppress specific warnings. + + + + + Gets or sets the treat specific warnings as errors. + + + The treat specific warnings as errors. + + + + + Gets or sets a value indicating whether output is verbose. + + + true if verbose; otherwise, false. + + + + + Gets or sets a value indicating whether to auto generate at compile time. + + + true if [autogenerated unique identifier]; otherwise, false. + + + + + Gets or sets a value indicating whether all components are given a guid. + + + true if [generate unique identifier]; otherwise, false. + + + + + Gets or sets the output file. + + + The output file. + + + + + Gets or sets a value indicating whether to suppress the + generation of fragments for directories and components. + + + true if [suppress fragments]; otherwise, false. + + + + + Gets or sets a value indicating whether to suppress unique identifiers + for files, components, and directories. + + + true if [suppress unique ids]; otherwise, false. + + + + + Gets or sets the transform to apply to harvested files. + + + The transform. + + + + + Gets or sets the file. + + + The file. + + + + + Gets or sets the name of the component group. + + + The name of the component group. + + + + + Gets or sets the directory reference identifier for generated directory elements. + + + The directory reference identifier. + + + + + Gets or sets the preprocessor variable. + + + The preprocessor variable. + + + + + Gets or sets a value indicating whether generate binder variables instead + of preprocessor variables. + + + true if [generate binder variables]; otherwise, false. + + + + + Gets or sets a value indicating whether the COM elements. + + + true if [suppress COM]; otherwise, false. + + + + + Gets or sets a value indicating whether [suppress registry]. + + + true if [suppress registry]; otherwise, false. + + + + + Gets or sets a value indicating whether [suppress root directory]. + + + true if [suppress root directory]; otherwise, false. + + + + + Gets or sets the configuration to set when harvesting the project. + + + The configuration. + + + + + Gets or sets the overridden directory identifier for generated directory elements. + + + The directory identifier. + + + + + Gets or sets the type of elements to generate. + + + The generate. + + + + + Gets or sets a value indicating whether to generate guids without curly braces. + + + true if generate guids without curly braces; otherwise, false. + + + + + Gets or sets a value indicating whether to keep empty directories. + + + true if keep empty directories; otherwise, false. + + + + + Gets or sets the platform to set when harvesting the project. + + + The platform. + + + + + Gets or sets the output group of Visual Studio project. + + + The output group. + + + + + Gets or sets the overridden project name to use in variables. + + + The name of the project. + + + + + Gets or sets the template to use when harvesting. + + + The template. + + + + + Gets or sets the indentation multiplier, overrides default of 4. + + + The indent. + + + + + Gets or sets a value indicating whether to suppress VB6 COM registration entries. + + + true if suppress VB6 COM registration entries; otherwise, false. + + + + + Type of elements to generate + + + + + Generates components + + + + + Generates a container + + + + + Generates a payload group + + + + + Generates a layout + + + + + The type of object file to harvest from. + + + + + Harvest a directory. + + + + + Harvest a file + + + + + Harvest outputs of a Visual Studio project. + + + + + Harvest an IIS web site. + + + + + Harvest performance counters from a category. + + + + + Harvest registry information from a reg file. + + + + + The Output Group of Visual Studio project + + + + + OutputGroup: Binaries + + + + + OutputGroup: Symbols + + + + + OutputGroup: Documents + + + + + OutputGroup: Satellites + + + + + OutputGroup: Sources + + + + + OutputGroup: Content + + + + + Template type to use for harvesting. + + + + + TemplateType: Fragment + + + + + TemplateType: Module + + + + + TemplateType: Product + + + + + The WiX Light runner. + + + + + Initializes a new instance of the class. + + The file system. + The Cake environment. + The process runner. + The tool locator. + + + + Runs Light with the specified input object files and settings. + + The object files (.wixobj). + The settings. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Contains settings used by the . + + + + + Gets or sets the defined WiX variables. + + + + + Gets or sets the WiX extensions to use. + + + + + Gets or sets raw command line arguments to pass through to the linker. + + + + + Gets or sets a value indicating whether to show the logo information. + + + + + Gets or sets the path to the output file (i.e. the resulting MSI package). + + + + + Contains functionality related to WiX. + + In order to use the commands for this alias, include the following in your build.cake file to download and + install from NuGet.org, or specify the ToolPath within the appropriate settings class: + + #tool "nuget:?package=WiX" + + + + + + + Compiles all .wxs sources matching the specified pattern. + + + + CandleSettings settings = new CandleSettings { + Architecture = Architecture.X64, + Verbose = true + }; + WiXCandle("./src/*.wxs", settings); + + + The context. + The globbing pattern. + The settings. + + + + Compiles all .wxs sources in the provided source files. + + + + var files = GetFiles("./src/*.wxs"); + CandleSettings settings = new CandleSettings { + Architecture = Architecture.X64, + Verbose = true + }; + WiXCandle(files, settings); + + + The context. + The source files. + The settings. + + + + Links all .wixobj files matching the specified pattern. + + + + LightSettings settings = new LightSettings { + RawArguments = "-O1 -pedantic -v" + }; + WiXLight("./src/*.wixobj", settings); + + + The context. + The globbing pattern. + The settings. + + + + Links all .wixobj files in the provided object files. + + + + var files = GetFiles("./src/*.wxs"); + LightSettings settings = new LightSettings { + RawArguments = "-O1 -pedantic -v" + }; + WiXLight(files, settings); + + + The context. + The object files. + The settings. + + + + Harvests files in the provided object files. + + + + DirectoryPath harvestDirectory = Directory("./src"); + var filePath = new FilePath("Wix.Directory.wxs"); + WiXHeat(harvestDirectory, filePath, WiXHarvestType.Dir); + + + The context. + The object files. + The output file. + The WiX harvest type. + + + + Harvests files in the provided directory path. + + + + DirectoryPath harvestDirectory = Directory("./src"); + var filePath = File("Wix.Directory.wxs"); + Information(MakeAbsolute(harvestDirectory).FullPath); + WiXHeat(harvestDirectory, filePath, WiXHarvestType.Dir, new HeatSettings { NoLogo = true }); + + + The context. + The directory path. + The output file. + The WiX harvest type. + The settings. + + + + Harvests from the desired files. + + + + var harvestFile = File("./tools/Cake/Cake.Core.dll"); + var filePath = File("Wix.File.wxs"); + WiXHeat(harvestFile, filePath, WiXHarvestType.File); + + + The context. + The object file. + The output file. + The WiX harvest type. + + + + Harvests from the desired files. + + + + var harvestFiles = File("./tools/Cake/*.dll"); + var filePath = File("Wix.File.wxs"); + WiXHeat(harvestFiles, filePath, WiXHarvestType.File, new HeatSettings { NoLogo = true }); + + + The context. + The object file. + The output file. + The WiX harvest type. + The settings. + + + + Harvests files for a website or performance. + + + + var filePath = File("Wix.Website.wxs"); + WiXHeat("Default Web Site", filePath, WiXHarvestType.Website); + + + The context. + The harvest target. + The output file. + The WiX harvest type. + + + + Harvests files for a website or performance. + + + + var filePath = File("Wix.Website.wxs"); + WiXHeat("Default Web Site", filePath, WiXHarvestType.Website, new HeatSettings { NoLogo = true }); + + + The context. + The harvest target. + The output file. + The WiX harvest type. + The settings. + + + + This namespace contain types used + to interact with XBuild. + + + + + Contains functionality related to XBuild. + + In order to use the commands for this alias, XBuild (which is part of Mono) will already have to be installed on the machine the + Cake Script is being executed. + + + + + + Builds the specified solution using XBuild. + + The context. + The solution to build. + + + XBuild("./src/Cake.sln"); + + + + + + Builds the specified solution using XBuild. + + The context. + The solution to build. + The settings configurator. + + + XBuild("./src/Cake.sln", configurator => + configurator.SetConfiguration("Debug") + .SetVerbosity(Verbosity.Minimal) + .UseToolVersion(XBuildToolVersion.NET40)); + + + + + + Builds the specified solution using XBuild. + + The context. + The solution to build. + The settings. + + + XBuild("./src/Cake.sln", new XBuildSettings { + Verbosity = Verbosity.Minimal, + ToolVersion = XBuildToolVersion.NET40, + Configuration = "Release" + }); + + + + + + The XBuild runner. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The runner. + The tool locator. + + + + Runs XBuild with the specified settings. + + The solution to build. + The settings. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Gets alternative file paths which the tool may exist in + + The settings. + The default tool path. + + + + Contains settings used by . + + + + + Gets the targets. + + The targets. + + + + Gets the properties. + + The properties. + + + + Gets or sets the tool version. + + The tool version. + + + + Gets or sets the configuration. + + The configuration. + + + + Gets or sets the amount of information to display in the build log. + Each logger displays events based on the verbosity level that you set for that logger. + + The build log verbosity. + + + + Initializes a new instance of the class. + + + + + Contains functionality related to XBuild settings. + + + + + Adds a XBuild target to the configuration. + + The settings. + The XBuild target. + The same instance so that multiple calls can be chained. + + + + Sets the tool version. + + The settings. + The version. + The same instance so that multiple calls can be chained. + + + + Adds a property to the configuration. + + The settings. + The property name. + The property values. + The same instance so that multiple calls can be chained. + + + + Sets the configuration. + + The settings. + The configuration. + The same instance so that multiple calls can be chained. + + + + Sets the build log verbosity. + + The settings. + The build log verbosity. + The same instance so that multiple calls can be chained. + + + + Represents a XBuild tool version. + + + + + The highest available XBuild tool version. + + + + + XBuild tool version: .NET 2.0 + + + + + XBuild tool version: .NET 3.0 + + + + + XBuild tool version: .NET 3.5 + + + + + XBuild tool version: .NET 4.0 + + + + + This namespace contain types used to interact with XUnit. + + + + + Represents XUnit2's options for parallel test execution + + + + + Turn off all parallelization + + + + + Only parallelize collections + + + + + Only parallelize assemblies + + + + + Parallelize assemblies and collections. + + + + + Contains functionality related to running xunit tests. + + In order to use the commands for this alias, include the following in your build.cake file to download and + install from NuGet.org, or specify the ToolPath within the class: + + #tool "nuget:?package=xunit.runner.console" + + + + + + + Runs all xUnit.net v2 tests in the assemblies matching the specified pattern. + + The context. + The pattern. + + + XUnit2("./src/**/bin/Release/*.Tests.dll"); + + + + + + Runs all xUnit.net v2 tests in the assemblies matching the specified pattern. + + The context. + The pattern. + The settings. + + + XUnit2("./src/**/bin/Release/*.Tests.dll", + new XUnit2Settings { + Parallelism = ParallelismOption.All, + HtmlReport = true, + NoAppDomain = true, + OutputDirectory = "./build" + }); + + + + + + Runs all xUnit.net v2 tests in the specified assemblies. + + The context. + The assemblies. + + + XUnit2(new []{ + "./src/Cake.Common.Tests/bin/Release/Cake.Common.Tests.dll", + "./src/Cake.Core.Tests/bin/Release/Cake.Core.Tests.dll", + "./src/Cake.NuGet.Tests/bin/Release/Cake.NuGet.Tests.dll", + "./src/Cake.Tests/bin/Release/Cake.Tests.dll" + }); + + + + + + Runs all xUnit.net tests in the specified assemblies. + + The context. + The assemblies. + + + var testAssemblies = GetFiles("./src/**/bin/Release/*.Tests.dll"); + XUnit2(testAssemblies); + + + + + + Runs all xUnit.net v2 tests in the specified assemblies. + + The context. + The assemblies. + The settings. + + + XUnit2(new []{ + "./src/Cake.Common.Tests/bin/Release/Cake.Common.Tests.dll", + "./src/Cake.Core.Tests/bin/Release/Cake.Core.Tests.dll", + "./src/Cake.NuGet.Tests/bin/Release/Cake.NuGet.Tests.dll", + "./src/Cake.Tests/bin/Release/Cake.Tests.dll" + }, + new XUnit2Settings { + Parallelism = ParallelismOption.All, + HtmlReport = true, + NoAppDomain = true, + OutputDirectory = "./build" + }); + + + + + + Runs all xUnit.net v2 tests in the specified assemblies. + + The context. + The assemblies. + The settings. + + + var testAssemblies = GetFiles("./src/**/bin/Release/*.Tests.dll"); + XUnit2(testAssemblies, + new XUnit2Settings { + Parallelism = ParallelismOption.All, + HtmlReport = true, + NoAppDomain = true, + OutputDirectory = "./build" + }); + + + + + + The xUnit.net v2 test runner. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The runner. + The tool locator. + + + + Runs the tests in the specified assembly. + + The assembly paths. + The settings. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Contains settings used by . + + + + + Gets or sets a value indicating whether tests should be run as a shadow copy. + Default value is true. + + + true if tests should be run as a shadow copy; otherwise, false. + + + + + Gets or sets the output directory. + + The output directory. + + + + Gets or sets a value indicating whether an NUnit style XML report should be generated. + + + true if an NUnit Style XML report should be generated; otherwise, false. + + + + + Gets or sets a value indicating whether an XML report should be generated. + + + true if an XML report should be generated; otherwise, false. + + + + + Gets or sets a value indicating whether an xUnit.net v1 style XML report should be generated. + + + + + Gets or sets a value indicating whether an HTML report should be generated. + + + true if an HTML report should be generated; otherwise, false. + + + + + Gets or sets the name that should be used for the HTML and XML reports. + + The custom report name. + + + + Gets or sets a value indicating whether to not use app domains to run test code. + + + true to not use app domains to run test code; otherwise, false. + + + + + Gets or sets the parallelism option. + Corresponds to the -parallel command line switch. + + + The parallelism option. + + + + + Gets or sets a value indicating whether to run tests in using x86 test runner. + + + true to run tests with the x86 test runner; otherwise, false. + + + + + Gets or sets the maximum thread count for collection parallelization. + + + null (default); + 0: run with unbounded thread count; + >0: limit task thread pool size to value; + + value < 0 + + + + Gets the traits to include. + + + Only run tests with matching name/value traits. + If more than one is specified, it acts as an OR operation. + + + The traits to include. + + + + + Gets the traits to exclude. + + + Do not run tests with matching name/value traits. + If more than one is specified, it acts as an AND operation. + + + The traits to exclude. + + + + + Gets the namespaces to include. + + + Runs all methods in a given namespace (i.e., 'MyNamespace.MySubNamespace') + If more than one is specified, it acts as an OR operation. + + + The namespaces to include + + + + + Gets the class names to include. + + + Runs all methods in a given test class (should be fully specified; i.e., 'MyNamespace.MyClass') + If more than one is specified, it acts as an OR operation. + + + The class names to include + + + + + Gets the test methods to include. + + + Runs the given test methods (should be fully specified; i.e., 'MyNamespace.MyClass.MyTestMethod') + If more than one is specified, it acts as an OR operation. + + + The namespaces to include + + + + + Initializes a new instance of the class. + + + + + Contains functionality related to XUnit2 settings. + + + + + Adds a trait to the settings, to include in test execution. + + The settings. + The trait name. + The trait values. + The same instance so that multiple calls can be chained. + + + + Adds a trait to the settings, to exclude in test execution. + + The settings. + The trait name. + The trait values. + The same instance so that multiple calls can be chained. + + + + Adds a namespace to the settings, to include in test execution. Namespace should be fully qualified; i.e., MyNameSpace.MySubNamespace + + The settings. + The namespace to include. + The same instance so that multiple calls can be chained. + + + + Adds a class name to the settings, to include in test execution. Class name should be fully qualified; i.e., MyNameSpace.MyClassName + + The settings. + The class name to include. + The same instance so that multiple calls can be chained. + + + + Adds a method name to the settings, to include in test execution. Method name should be fully qualified; i.e., MyNameSpace.MyClassName.MyMethod + + The settings. + The method name to include. + The same instance so that multiple calls can be chained. + + + + Contains functionality related to running xunit tests. + + In order to use the commands for this alias, include the following in your build.cake file to download and + install from NuGet.org, or specify the ToolPath within the class: + + #tool "nuget:?package=xunit.runner.console&version=2.2.0" + + + + + + + Runs all xUnit.net tests in the assemblies matching the specified pattern. + + The context. + The pattern. + + + XUnit("./src/**/bin/Release/*.Tests.dll"); + + + + + + Runs all xUnit.net tests in the assemblies matching the specified pattern. + + The context. + The pattern. + The settings. + + + XUnit("./src/**/bin/Release/*.Tests.dll", + new XUnitSettings { + HtmlReport = true, + OutputDirectory = "./build" + }); + + + + + + Runs all xUnit.net tests in the specified assemblies. + + The context. + The assemblies. + + + XUnit(new []{ + "./src/Cake.Common.Tests/bin/Release/Cake.Common.Tests.dll", + "./src/Cake.Core.Tests/bin/Release/Cake.Core.Tests.dll", + "./src/Cake.NuGet.Tests/bin/Release/Cake.NuGet.Tests.dll", + "./src/Cake.Tests/bin/Release/Cake.Tests.dll" + }); + + + + + + Runs all xUnit.net tests in the specified assemblies. + + The context. + The assemblies. + + + var testAssemblies = GetFiles("./src/**/bin/Release/*.Tests.dll"); + XUnit(testAssemblies); + + + + + + Runs all xUnit.net tests in the specified assemblies. + + The context. + The assemblies. + The settings. + + + XUnit(new []{ + "./src/Cake.Common.Tests/bin/Release/Cake.Common.Tests.dll", + "./src/Cake.Core.Tests/bin/Release/Cake.Core.Tests.dll", + "./src/Cake.NuGet.Tests/bin/Release/Cake.NuGet.Tests.dll", + "./src/Cake.Tests/bin/Release/Cake.Tests.dll" + }, + new XUnitSettings { + HtmlReport = true, + OutputDirectory = "./build" + }); + + + + + + Runs all xUnit.net tests in the specified assemblies. + + The context. + The assemblies. + The settings. + + + var testAssemblies = GetFiles("./src/**/bin/Release/*.Tests.dll"); + XUnit(testAssemblies, + new XUnitSettings { + HtmlReport = true, + OutputDirectory = "./build" + }); + + + + + + The xUnit.net (v1) test runner. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The runner. + The tool locator. + + + + Runs the tests in the specified assembly. + + The assembly path. + The settings. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Contains settings used by . + + + + + Gets or sets a value indicating whether tests should be run as a shadow copy. + Default value is true. + + + true if tests should be run as a shadow copy; otherwise, false. + + + + + Gets or sets the output directory. + + The output directory. + + + + Gets or sets a value indicating whether an XML report should be generated. + + + true if an XML report should be generated; otherwise, false. + + + + + Gets or sets a value indicating whether an HTML report should be generated. + + + true if an HTML report should be generated; otherwise, false. + + + + + Gets or sets a value indicating whether or not output running test count. + + + true if running test count should be outputted; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + This namespace contain types used to + interact with XML documents. + + + + + The Chocolatey package pinner used to pin Chocolatey packages. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The Chocolatey tool resolver. + + + + Pins Chocolatey packages using the specified package id and settings. + + The API key. + The Server URL where the API key is valid. + The settings. + + + + Contains settings used by . + + + + + Gets or sets a value indicating whether to run in debug mode. + + The debug flag + + + + Gets or sets a value indicating whether to run in verbose mode. + + The verbose flag. + + + + Gets or sets a value indicating whether to run in forced mode. + + The force flag + + + + Gets or sets a value indicating whether to run in noop mode. + + The noop flag. + + + + Gets or sets a value indicating whether to run in limited output mode. + + The limit output flag + + + + Gets or sets the execution timeout value. + + The execution timeout + Default is 2700 seconds + + + + Gets or sets the location of the download cache. + + The download cache location + + + + Gets or sets a value indicating whether to run in allow unofficial mode. + + The allow unofficial flag + + + + Contains functionality for working with Chocolatey. + + In order to use the commands for this alias, Chocolatey will require to be installed on the machine where the build script + is being run. See this page for details on how + Chocolatey can be installed. + + + + + + Creates a Chocolatey package using the specified Nuspec file. + + The context. + The nuspec file path. + The settings. + + + var chocolateyPackSettings = new ChocolateyPackSettings { + Id = "TestChocolatey", + Title = "The tile of the package", + Version = "0.0.0.1", + Authors = new[] {"John Doe"}, + Owners = new[] {"Contoso"}, + Summary = "Excellent summary of what the package does", + Description = "The description of the package", + ProjectUrl = new Uri("https://github.com/SomeUser/TestChocolatey/"), + PackageSourceUrl = new Uri("https://github.com/SomeUser/TestChocolatey/"), + ProjectSourceUrl = new Uri("https://github.com/SomeUser/TestChocolatey/"), + DocsUrl = new Uri("https://github.com/SomeUser/TestChocolatey/"), + MailingListUrl = new Uri("https://github.com/SomeUser/TestChocolatey/"), + BugTrackerUrl = new Uri("https://github.com/SomeUser/TestChocolatey/"), + Tags = new [] {"Cake", "Script", "Build"}, + Copyright = "Some company 2015", + LicenseUrl = new Uri("https://github.com/SomeUser/TestChocolatey/blob/master/LICENSE.md"), + RequireLicenseAcceptance= false, + IconUrl = new Uri("http://cdn.rawgit.com/SomeUser/TestChocolatey/master/icons/testchocolatey.png"), + ReleaseNotes = new [] {"Bug fixes", "Issue fixes", "Typos"}, + Files = new [] { + new ChocolateyNuSpecContent {Source = "bin/TestChocolatey.dll", Target = "bin"}, + }, + Debug = false, + Verbose = false, + Force = false, + Noop = false, + LimitOutput = false, + ExecutionTimeout = 13, + CacheLocation = @"C:\temp", + AllowUnofficial = false + }; + + ChocolateyPack("./nuspec/TestChocolatey.nuspec", chocolateyPackSettings); + + + + + + Creates Chocolatey packages using the specified Nuspec files. + + The context. + The nuspec file paths. + The settings. + + + var chocolateyPackSettings = new ChocolateyPackSettings { + Id = "TestChocolatey", + Title = "The tile of the package", + Version = "0.0.0.1", + Authors = new[] {"John Doe"}, + Owners = new[] {"Contoso"}, + Summary = "Excellent summary of what the package does", + Description = "The description of the package", + ProjectUrl = new Uri("https://github.com/SomeUser/TestChocolatey/"), + PackageSourceUrl = new Uri("https://github.com/SomeUser/TestChocolatey/"), + ProjectSourceUrl = new Uri("https://github.com/SomeUser/TestChocolatey/"), + DocsUrl = new Uri("https://github.com/SomeUser/TestChocolatey/"), + MailingListUrl = new Uri("https://github.com/SomeUser/TestChocolatey/"), + BugTrackerUrl = new Uri("https://github.com/SomeUser/TestChocolatey/"), + Tags = new [] {"Cake", "Script", "Build"}, + Copyright = "Some company 2015", + LicenseUrl = new Uri("https://github.com/SomeUser/TestChocolatey/blob/master/LICENSE.md"), + RequireLicenseAcceptance= false, + IconUrl = new Uri("http://cdn.rawgit.com/SomeUser/TestChocolatey/master/icons/testchocolatey.png"), + ReleaseNotes = new [] {"Bug fixes", "Issue fixes", "Typos"}, + Files = new [] { + new ChocolateyNuSpecContent {Source = "bin/TestChocolatey.dll", Target = "bin"}, + }, + Debug = false, + Verbose = false, + Force = false, + Noop = false, + LimitOutput = false, + ExecutionTimeout = 13, + CacheLocation = @"C:\temp", + AllowUnofficial = false + }; + + var nuspecFiles = GetFiles("./**/*.nuspec"); + ChocolateyPack(nuspecFiles, chocolateyPackSettings); + + + + + + Creates a Chocolatey package using the specified settings. + + The context. + The settings. + + + var chocolateyPackSettings = new ChocolateyPackSettings { + Id = "TestChocolatey", + Title = "The tile of the package", + Version = "0.0.0.1", + Authors = new[] {"John Doe"}, + Owners = new[] {"Contoso"}, + Summary = "Excellent summary of what the package does", + Description = "The description of the package", + ProjectUrl = new Uri("https://github.com/SomeUser/TestChocolatey/"), + PackageSourceUrl = new Uri("https://github.com/SomeUser/TestChocolatey/"), + ProjectSourceUrl = new Uri("https://github.com/SomeUser/TestChocolatey/"), + DocsUrl = new Uri("https://github.com/SomeUser/TestChocolatey/"), + MailingListUrl = new Uri("https://github.com/SomeUser/TestChocolatey/"), + BugTrackerUrl = new Uri("https://github.com/SomeUser/TestChocolatey/"), + Tags = new [] {"Cake", "Script", "Build"}, + Copyright = "Some company 2015", + LicenseUrl = new Uri("https://github.com/SomeUser/TestChocolatey/blob/master/LICENSE.md"), + RequireLicenseAcceptance= false, + IconUrl = new Uri("http://cdn.rawgit.com/SomeUser/TestChocolatey/master/icons/testchocolatey.png"), + ReleaseNotes = new [] {"Bug fixes", "Issue fixes", "Typos"}, + Files = new [] { + new ChocolateyNuSpecContent {Source = "bin/TestChocolatey.dll", Target = "bin"}, + }, + Debug = false, + Verbose = false, + Force = false, + Noop = false, + LimitOutput = false, + ExecutionTimeout = 13, + CacheLocation = @"C:\temp", + AllowUnofficial = false + }; + + ChocolateyPack(chocolateyPackSettings); + + + + + + Installs a Chocolatey package. + + The context. + The id of the package to install. + + + ChocolateyInstall("MyChocolateyPackage"); + + + + + + Installs a Chocolatey package using the specified settings. + + The context. + The id of the package to install. + The settings. + + + ChocolateyInstall("MyChocolateyPackage", new ChocolateyInstallSettings { + Source = true, + Version = "1.2.3", + Prerelease = false, + Forcex86 = false, + InstallArguments = "arg1", + OverrideArguments = false, + NotSilent = false, + PackageParameters = "param1", + AllowDowngrade = false, + SideBySide = false, + IgnoreDependencies = false, + ForceDependencies = false, + SkipPowerShell = false, + User = "user", + Password = "password", + IgnoreChecksums = false, + Debug = false, + Verbose = false, + Force = false, + Noop = false, + LimitOutput = false, + ExecutionTimeout = 13, + CacheLocation = @"C:\temp", + AllowUnofficial = false + }); + + + + + + Installs Chocolatey packages using the specified package configuration. + + The context. + The package configuration to install. + + + ChocolateyInstallFromConfig("./tools/packages.config"); + + + + + + Installs Chocolatey packages using the specified package configuration and settings. + + The context. + The package configuration to install. + The settings. + + + ChocolateyInstallFromConfig("./tools/packages.config", new ChocolateyInstallSettings { + Source = true, + Version = "1.2.3", + Prerelease = false, + Forcex86 = false, + InstallArguments = "arg1", + OverrideArguments = false, + NotSilent = false, + PackageParameters = "param1", + AllowDowngrade = false, + SideBySide = false, + IgnoreDependencies = false, + ForceDependencies = false, + SkipPowerShell = false, + User = "user", + Password = "password", + IgnoreChecksums = false, + Debug = false, + Verbose = false, + Force = false, + Noop = false, + LimitOutput = false, + ExecutionTimeout = 13, + CacheLocation = @"C:\temp", + AllowUnofficial = false + }); + + + + + + Uninstalls a Chocolatey package. + + The context. + The id of the package to uninstall. + + + ChocolateyUninstall("MyChocolateyPackage"); + + + + + + Uninstalls a Chocolatey package using the specified settings. + + The context. + The id of the package to uninstall. + The settings. + + + ChocolateyUninstall("MyChocolateyPackage", new ChocolateyUninstallSettings { + Source = true, + Version = "1.2.3", + UninstallArguments = "arg1", + OverrideArguments = false, + NotSilent = false, + PackageParameters = "param1", + SideBySide = false, + IgnoreDependencies = false, + ForceDependencies = false, + SkipPowerShell = false, + Debug = false, + Verbose = false, + FailOnStandardError = false, + UseSystemPowershell = false, + AllVersions = false, + Force = false, + Noop = false, + LimitOutput = false, + ExecutionTimeout = 13, + CacheLocation = @"C:\temp", + AllowUnofficial = false, + GlobalArguments = false, + GlobalPackageParameters = false, + IgnorePackageExitCodes = false, + UsePackageExitCodes = false, + UseAutoUninstaller = false, + SkipAutoUninstaller = false, + FailOnAutoUninstaller = false, + IgnoreAutoUninstaller = false + }); + + + + + + Uninstalls a Chocolatey package. + + The context. + The ids of the packages to uninstall. + + + ChocolateyUninstall("MyChocolateyPackage"); + + + + + + Uninstalls Chocolatey packages using the specified settings. + + The context. + The ids of the packages to uninstall. + The settings. + + + ChocolateyUninstall("MyChocolateyPackage", new ChocolateyUninstallSettings { + Source = true, + Version = "1.2.3", + UninstallArguments = "arg1", + OverrideArguments = false, + NotSilent = false, + PackageParameters = "param1", + SideBySide = false, + IgnoreDependencies = false, + ForceDependencies = false, + SkipPowerShell = false, + Debug = false, + Verbose = false, + FailOnStandardError = false, + UseSystemPowershell = false, + AllVersions = false, + Force = false, + Noop = false, + LimitOutput = false, + ExecutionTimeout = 13, + CacheLocation = @"C:\temp", + AllowUnofficial = false, + GlobalArguments = false, + GlobalPackageParameters = false, + IgnorePackageExitCodes = false, + UsePackageExitCodes = false, + UseAutoUninstaller = false, + SkipAutoUninstaller = false, + FailOnAutoUninstaller = false, + IgnoreAutoUninstaller = false + }); + + + + + + Pins a Chocolatey package using the specified settings. + + The context. + The name. + The settings. + + + ChocolateyPin("MyChocolateyPackage", new ChocolateyPinSettings { + Version = "1.2.3", + Debug = false, + Verbose = false, + Force = false, + Noop = false, + LimitOutput = false, + ExecutionTimeout = 13, + CacheLocation = @"C:\temp", + AllowUnofficial = false + }); + + + + + + Sets the Api Key for a Chocolatey Source using the specified settings. + + The context. + The API Key. + The source. + The settings. + + + ChocolateyApiKey("myApiKey", "http://www.mysource.com", new ChocolateyApiKeySettings { + Debug = false, + Verbose = false, + Force = false, + Noop = false, + LimitOutput = false, + ExecutionTimeout = 13, + CacheLocation = @"C:\temp", + AllowUnofficial = false + }); + + + + + + Sets the config parameter using the specified settings. + + The context. + The name. + The value. + The settings. + + + ChocolateyConfig("cacheLocation", @"c:\temp", new ChocolateyConfigSettings { + Debug = false, + Verbose = false, + Force = false, + Noop = false, + LimitOutput = false, + ExecutionTimeout = 13, + CacheLocation = @"C:\temp", + AllowUnofficial = false + }); + + + + + + Enables a Chocolatey Feature using the specified name + + The context. + Name of the feature. + + + ChocolateyEnableFeature("checkSumFiles"); + + + + + + Enables a Chocolatey Feature using the specified name and settings + + The context. + Name of the feature. + The settings. + + + ChocolateyEnableFeature("checkSumFiles", new ChocolateyFeatureSettings { + Debug = false, + Verbose = false, + Force = false, + Noop = false, + LimitOutput = false, + ExecutionTimeout = 13, + CacheLocation = @"C:\temp", + AllowUnofficial = false + }); + + + + + + Disables a Chocolatey Feature using the specified name + + The context. + Name of the feature. + + + ChocolateyDisableFeature("checkSumFiles"); + + + + + + Disables a Chocolatey Feature using the specified name and settings + + The context. + Name of the feature. + The settings. + + + ChocolateyDisableFeature("checkSumFiles", new ChocolateyFeatureSettings { + Debug = false, + Verbose = false, + Force = false, + Noop = false, + LimitOutput = false, + ExecutionTimeout = 13, + CacheLocation = @"C:\temp", + AllowUnofficial = false + }); + + + + + + Adds Chocolatey package source using the specified name &source to global user config + + The context. + Name of the source. + Path to the package(s) source. + + + ChocolateyAddSource("MySource", "http://www.mysource.com"); + + + + + + Adds Chocolatey package source using the specified name, source & settings to global user config + + The context. + Name of the source. + Path to the package(s) source. + The settings. + + + ChocolateyAddSource("MySource", "http://www.mysource.com", new ChocolateySourcesSettings { + UserName = "user", + Password = "password", + Priority = 13, + Debug = false, + Verbose = false, + Force = false, + Noop = false, + LimitOutput = false, + ExecutionTimeout = 13, + CacheLocation = @"C:\temp", + AllowUnofficial = false + }); + + + + + + Removes Chocolatey package source using the specified name & source from global user config + + The context. + Name of the source. + + + ChocolateyRemoveSource("MySource"); + + + + + + Removes Chocolatey package source using the specified name, source & settings from global user config + + The context. + Name of the source. + The settings. + + + ChocolateyRemoveSource("MySource", new ChocolateySourcesSettings { + Debug = false, + Verbose = false, + Force = false, + Noop = false, + LimitOutput = false, + ExecutionTimeout = 13, + CacheLocation = @"C:\temp", + AllowUnofficial = false + }); + + + + + + Enables a Chocolatey Source using the specified name + + The context. + Name of the source. + + + ChocolateyEnableSource("MySource"); + + + + + + Enables a Chocolatey Source using the specified name and settings + + The context. + Name of the source. + The settings. + + + ChocolateyEnableSource("MySource", new ChocolateySourcesSettings { + Debug = false, + Verbose = false, + Force = false, + Noop = false, + LimitOutput = false, + ExecutionTimeout = 13, + CacheLocation = @"C:\temp", + AllowUnofficial = false + }); + + + + + + Disables a Chocolatey Source using the specified name + + The context. + Name of the source. + + + ChocolateyDisableSource("MySource"); + + + + + + Disables a Chocolatey Source using the specified name and settings + + The context. + Name of the source. + The settings. + + + ChocolateyDisableSource("MySource", new ChocolateySourcesSettings { + Debug = false, + Verbose = false, + Force = false, + Noop = false, + LimitOutput = false, + ExecutionTimeout = 13, + CacheLocation = @"C:\temp", + AllowUnofficial = false + }); + + + + + + Pushes a Chocolatey package to a Chocolatey server and publishes it. + + The context. + The .nupkg file path. + The settings. + + + // Get the path to the package. + var package = "./chocolatey/MyChocolateyPackage.0.0.1.nupkg"; + + // Push the package. + ChocolateyPush(package, new ChocolateyPushSettings { + Source = "http://example.com/chocolateyfeed", + ApiKey = "4003d786-cc37-4004-bfdf-c4f3e8ef9b3a" + Timeout = 300 + Debug = false, + Verbose = false, + Force = false, + Noop = false, + LimitOutput = false, + ExecutionTimeout = 13, + CacheLocation = @"C:\temp", + AllowUnofficial = false + }); + + + + + + Pushes Chocolatey packages to a Chocolatey server and publishes them. + + The context. + The .nupkg file paths. + The settings. + + + // Get the paths to the packages. + var packages = GetFiles("./**/*.nupkg"); + + // Push the package. + ChocolateyPush(packages, new ChocolateyPushSettings { + Source = "http://example.com/chocolateyfeed", + ApiKey = "4003d786-cc37-4004-bfdf-c4f3e8ef9b3a" + Timeout = 300 + Debug = false, + Verbose = false, + Force = false, + Noop = false, + LimitOutput = false, + ExecutionTimeout = 13, + CacheLocation = @"C:\temp", + AllowUnofficial = false + }); + + + + + + Upgrades Chocolatey package. + + The context. + The id of the package to upgrade. + + + ChocolateyUpgrade("MyChocolateyPackage"); + + + + + + Upgrades Chocolatey package using the specified settings. + + The context. + The id of the package to upgrade. + The settings. + + + ChocolateyUpgrade("MyChocolateyPackage", new ChocolateyUpgradeSettings { + Source = true, + Version = "1.2.3", + Prerelease = false, + Forcex86 = false, + InstallArguments = "arg1", + OverrideArguments = false, + NotSilent = false, + PackageParameters = "param1", + AllowDowngrade = false, + SideBySide = false, + IgnoreDependencies = false, + SkipPowerShell = false, + FailOnUnfound = false, + FailOnNotInstalled = false, + User = "user", + Password = "password", + IgnoreChecksums = false, + Debug = false, + Verbose = false, + Force = false, + Noop = false, + LimitOutput = false, + ExecutionTimeout = 13, + CacheLocation = @"C:\temp", + AllowUnofficial = false + }); + + + + + + Generate package specification files for a new package using the default settings. + + The context. + The id of the package to create. + + + ChocolateyNew("MyChocolateyPackage"); + + + + + + Generate package specification files for a new package using the specified settings. + + The context. + The id of the package to create. + The settings. + + + ChocolateyNew("MyChocolateyPackage", new ChocolateyNewSettings { + PackageVersion = "1.2.3", + MaintainerName = "John Doe", + MaintainerRepo = "johndoe" + }); + + + + + var settings = new ChocolateyNewSettings { + MaintainerName = "John Doe" + } + settings.AdditionalPropertyValues("Tags", "CustomPackage"); + ChocolateyNew("MyChocolateyPackage", settings); + + + + + + Downloads a Chocolatey package to the current working directory. + Requires Chocolatey licensed edition. + + The context. + The id of the package to download. + + + ChocolateyDownload("MyChocolateyPackage"); + + + + + + Downloads a Chocolatey package using the specified settings. + Requires Chocolatey licensed edition. + Features requiring Chocolatey for Business or a minimum version are documented + in . + + The context. + The id of the package to install. + The settings. + + Download a package to a specific folder: + + ChocolateyDownload( + "MyChocolateyPackage", + new ChocolateyDownloadSettings { + OutputDirectory = @"C:\download\" + }); + + Download and internalize a package: + + ChocolateyDownload( + "MyChocolateyPackage", + new ChocolateyDownloadSettings { + Internalize = true + }); + + + + + + Contains settings used by . + + + + + Gets or sets a value indicating whether to run in debug mode. + + The debug flag + + + + Gets or sets a value indicating whether to run in verbose mode. + + The verbose flag. + + + + Gets or sets a value indicating whether to accept license for package. + + The accept license flag + + + + Gets or sets a value indicating whether to run in forced mode. + + The force flag + + + + Gets or sets a value indicating whether to run in noop mode. + + The noop flag. + + + + Gets or sets a value indicating whether to run in limited output mode. + + The limit output flag + + + + Gets or sets the execution timeout value. + + The execution timeout + Default is 2700 seconds + + + + Gets or sets the location of the download cache. + + The download cache location + + + + Gets or sets a value indicating whether to run in allow unofficial mode. + + The allow unofficial flag + + + + Gets or sets a package sources to use for this command. + + The package source to use for this command. + + + + Gets or sets the version of the package to install. + If none specified, the latest will be used. + + + + + Gets or sets a value indicating whether to override the passed arguments. + + The override arguments flag + + + + Gets or sets a value indicating whether or not to install silently. + + The not silent flag + + + + Gets or sets the parameters to pass to the package. + + + + + Gets or sets a value indicating whether to allow side by side installation. + + The side by side installation flag + + + + Gets or sets a value indicating whether to skip the PowerShell installation of package. + + The skip powershell flag + + + + Base class for all Chocolatey related tools. + + The settings type. + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The Chocolatey tool resolver. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Gets alternative file paths which the tool may exist in + + The settings. + The default tool path. + + + + Adds common arguments to the process builder. + + The settings. + The process argument builder. + The process argument builder. + + + + Contains Chocolatey path resolver functionality + + + + + Initializes a new instance of the class. + + The file system. + The environment. + + + + Resolves the path to choco.exe. + + The path to choco.exe. + + + + The Chocolatey configuration setter. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The Chocolatey tool resolver. + + + + Sets Chocolatey configuration paramaters using the settings. + + The name of the config parameter. + The value to assign to the parameter. + The settings. + + + + Contains settings used by . + + + + + Gets or sets a value indicating whether to run in debug mode. + + The debug flag + + + + Gets or sets a value indicating whether to run in verbose mode. + + The verbose flag. + + + + Gets or sets a value indicating whether to run in forced mode. + + The force flag + + + + Gets or sets a value indicating whether to run in noop mode. + + The noop flag. + + + + Gets or sets a value indicating whether to run in limited output mode. + + The limit output flag + + + + Gets or sets the execution timeout value. + + The execution timeout + Default is 2700 seconds + + + + Gets or sets the location of the download cache. + + The download cache location + + + + Gets or sets a value indicating whether to run in allow unofficial mode. + + The allow unofficial flag + + + + The Chocolatey package downloader used to download Chocolatey packages. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The Chocolatey tool resolver. + + + + Downloads Chocolatey packages using the specified package id and settings. + Requires Chocolatey licensed edition. + Features requiring Chocolatey for Business or a minimum version are documented + in . + + The source package id. + The settings. + + + + Contains settings used by . + + + + + Gets or sets a value indicating whether to allow downloading of prerelease packages. + + + + + Gets or sets the directory for the downloaded Chocolatey packages. + By default the current working directory is used. + + + + + Gets or sets a value indicating whether to ignore dependencies. + Requires Chocolatey licensed edition. + + + + + Gets or sets a value indicating whether all external resources should be downloaded + and the package be recompiled to use the local resources instead. + Requires Chocolatey business edition. + + + + + Gets or sets a value indicating whether all URLs, not only from known helpers, should be internalized. + Requires Chocolatey business edition (Licensed version 1.11.1+). + + + + + Gets or sets the location for downloaded resource when is set. + null or if downloaded resources should be embedded in the package. + Can be a file share or an internal URL location. + When it is a file share, it will attempt to download to that location. + When it is an internal url, it will download locally and give further instructions + where it should be uploaded to match package edits. + By default resources are embedded in the package. + Requires Chocolatey business edition. + + + + + Gets or sets the location where resources should be downloaded to when is set. + null or if should be used. + By default is used. + Requires Chocolatey business edition. + + + + + Gets or sets a value indicating whether the -useOriginalLocation parameter will be passed to any + Install-ChocolateyPackage call in the package and avoiding downloading of resources when + is set. + Overrides the global internalizeAppendUseOriginalLocation feature. + By default set to false. + Requires Chocolatey business edition and Chocolatey v0.10.1 or newer. + + + + + Gets or sets the user for authenticated feeds. + + + + + Gets or sets the password for authenticated feeds. + + + + + Contains settings used by . + + + + + Gets or sets a value indicating whether to run in debug mode. + + The debug flag + + + + Gets or sets a value indicating whether to run in verbose mode. + + The verbose flag. + + + + Gets or sets a value indicating whether to run in forced mode. + + The force flag + + + + Gets or sets a value indicating whether to run in noop mode. + + The noop flag. + + + + Gets or sets a value indicating whether to run in limited output mode. + + The limit output flag + + + + Gets or sets the execution timeout value. + + The execution timeout + Default is 2700 seconds + + + + Gets or sets the location of the download cache. + + The download cache location + + + + Gets or sets a value indicating whether to run in allow unofficial mode. + + The allow unofficial flag + + + + The Chocolatey feature toggler used to enable/disable Chocolatey Features. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The Chocolatey tool resolver. + + + + Pins Chocolatey packages using the specified package id and settings. + + The name of the feature. + The settings. + + + + Pins Chocolatey packages using the specified package id and settings. + + The name of the feature. + The settings. + + + + Represents a Chocolatey path resolver. + + + + + Resolves the path to choco.exe. + + The path to choco.exe. + + + + The Chocolatey package installer used to install Chocolatey packages. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The Chocolatey tool resolver. + + + + Installs Chocolatey packages using the specified package configuration file and settings. + + Path to package configuration to use for install. + The settings. + + + + Installs Chocolatey packages using the specified package id and settings. + + The source package id. + The settings. + + + + Contains settings used by . + + + + + Gets or sets a value indicating whether to allow installation of prerelease packages. + This flag is not required when restoring packages by installing from packages.config. + + + true to allow installation of prerelease packages; otherwise, false. + + + + + Gets or sets a value indicating whether to force installation of the x86 version of package. + + The force x86 flag + + + + Gets or sets the install arguments to pass to native installer. + + + + + Gets or sets a value indicating whether to allow downgrade of package. + + The downgrade package flag + + + + Gets or sets a value indicating whether to ignore dependencies. + + The ignore dependencies flag + + + + Gets or sets a value indicating whether to force dependencies. + + The force dependencies flag + + + + Gets or sets the user for authenticated feeds. + + + + + Gets or sets the password for authenticated feeds. + + + + + Gets or sets a value indicating whether to ignore checksums. + + The ignore checksums flag + + + + Contains settings used by . + + + + + Gets or sets the path where the package will be created. + + + + + Gets or sets the version of the package to be created. + + + + + Gets or sets the owner of the package to be created. + + + + + Gets or sets the repository of the package source. + + + + + Gets or sets the type of the installer. + + + + + Gets or sets the URL where the software to be installed can be downloaded from. + + + + + Gets or sets the URL where the 64-Bit version of the software to be installed can be downloaded from. + + + + + Gets or sets the arguments for running the installer silently. + + + + + Gets the list of additional property values which should be passed to the template. + + + + + The Chocolatey project scaffolder used to generate package specification files for a new package. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The Chocolatey tool resolver. + + + + Generate package specification files for a new package. + + Id of the new package. + The settings. + + + + Represents a Chocolatey nuspec file + + + + + Gets or sets the location of the file or files to include. + The path is relative to the NuSpec file unless an absolute path is specified. + The wildcard character - * - is allowed. + Using a double wildcard - ** implies a recursive directory search. + + + + + Gets or sets the relative path to the directory within the package where the source files will be placed. + + + + + Gets or sets the file or files to exclude. + This is usually combined with a wildcard value in the src attribute. + The exclude attribute can contain a semi-colon delimited list of files or a file pattern. + Using a double wildcard - ** - implies a recursive exclude pattern. + + + + + Represents a Chocolatey NuGet nuspec dependency + + + + + Gets or sets the dependency's package ID. + + The dependency's package ID. + + + + Gets or sets the dependency's version. + + The dependency's version. + + + + The Chocolatey packer. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The log. + The tool locator. + The Chocolatey tool resolver + + + + Creates a Chocolatey package from the specified settings. + + The settings. + + + + Creates a Chocolatey package from the specified Nuspec file. + + The nuspec file path. + The settings. + + + + Contains settings used by . + + + + + Gets or sets the package ID. + + The package ID. + + + + Gets or sets the package title. + + The package title. + + + + Gets or sets the Nuspec version. + + The Nuspec version. + + + + Gets or sets the package authors. + + The package authors. + + + + Gets or sets the package owners. + + The package owners. + + + + Gets or sets the package summary. + + The package summary. + + + + Gets or sets the package description. + + The package description. + Markdown format is allowed for this property + + + + Gets or sets the package project URL. + + The package project URL. + + + + Gets or sets the package Source URL. + + The package Source URL. + Requires at least Chocolatey 0.9.9.7. + + + + Gets or sets the package project Source URL. + + The package project Source URL. + Requires at least Chocolatey 0.9.9.7. + + + + Gets or sets the package documentation URL. + + The package documenation URL. + Requires at least Chocolatey 0.9.9.7. + + + + Gets or sets the package mailing list URL. + + The package mailing list URL. + Requires at least Chocolatey 0.9.9.7. + + + + Gets or sets the package bug tracker URL. + + The package bug tracker URL. + Requires at least Chocolatey 0.9.9.7. + + + + Gets or sets the package tags. + + The package tags. + + + + Gets or sets the package copyright. + + The package copyright. + + + + Gets or sets the package license URL. + + The package license URL. + + + + Gets or sets a value indicating whether users has to accept the package license. + + + true if users has to accept the package license; otherwise, false. + + + + + Gets or sets the package icon URL. + + The package icon URL. + + + + Gets or sets the package release notes. + + The package release notes. + Markdown format is allowed for this property + + + + Gets or sets the package files. + + The package files. + + + + Gets or sets the package dependencies. + + The package files. + + + + Gets or sets a value indicating whether to run in debug mode. + + The debug flag + + + + Gets or sets a value indicating whether to run in verbose mode. + + The verbose flag. + + + + Gets or sets a value indicating whether to run in forced mode. + + The force flag + + + + Gets or sets a value indicating whether to run in noop mode. + + The noop flag. + + + + Gets or sets a value indicating whether to run in limited output mode. + + The limit output flag + + + + Gets or sets the execution timeout value. + + The execution timeout + Default is 2700 seconds + + + + Gets or sets the location of the download cache. + + The download cache location + + + + Gets or sets a value indicating whether to run in allow unofficial mode. + + The allow unofficial flag + + + + Gets or sets a value indicating the Working Directory that should be used while running choco.exe. + + + + + The Chocolatey package pinner used to pin Chocolatey packages. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The Chocolatey tool resolver. + + + + Pins Chocolatey packages using the specified package id and settings. + + The name of the package. + The settings. + + + + Contains settings used by . + + + + + Gets or sets a value indicating whether to run in debug mode. + + The debug flag + + + + Gets or sets a value indicating whether to run in verbose mode. + + The verbose flag. + + + + Gets or sets a value indicating whether to run in forced mode. + + The force flag + + + + Gets or sets a value indicating whether to run in noop mode. + + The noop flag. + + + + Gets or sets a value indicating whether to run in limited output mode. + + The limit output flag + + + + Gets or sets the execution timeout value. + + The execution timeout + Default is 2700 seconds + + + + Gets or sets the location of the download cache. + + The download cache location + + + + Gets or sets a value indicating whether to run in allow unofficial mode. + + The allow unofficial flag + + + + Gets or sets the version of the package to install. + If none specified, the latest will be used. + + + + + The Chocolatey package pusher. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The Chocolatey tool resolver. + + + + Pushes a Chocolatey package to a Chocolatey server and publishes it. + + The package file path. + The settings. + + + + Contains settings used by . + + + + + Gets or sets a value indicating whether to run in debug mode. + + The debug flag + + + + Gets or sets a value indicating whether to run in verbose mode. + + The verbose flag. + + + + Gets or sets a value indicating whether to run in forced mode. + + The force flag + + + + Gets or sets a value indicating whether to run in noop mode. + + The noop flag. + + + + Gets or sets a value indicating whether to run in limited output mode. + + The limit output flag + + + + Gets or sets the execution timeout value. + + The execution timeout + Default is 2700 seconds + + + + Gets or sets the location of the download cache. + + The download cache location + + + + Gets or sets a value indicating whether to run in allow unofficial mode. + + The allow unofficial flag + + + + Gets or sets the server URL. If not specified, chocolatey.org is used. + + The server URL. + + + + Gets or sets the API key for the server. + + The API key for the server. + + + + Gets or sets the timeout for pushing to a server. + Defaults to 300 seconds (5 minutes). + + The timeout for pushing to a server. + + + + The Chocolatey sources is used to work with user config feeds & credentials + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The Chocolatey tool resolver. + + + + Adds Chocolatey package source using the specified settings to global user config + + Name of the source. + Path to the package(s) source. + The settings. + + + + Remove specified Chocolatey package source + + Name of the source. + The settings. + + + + Enable specified Chocolatey package source + + Name of the source. + The settings. + + + + Disable specified Chocolatey package source + + Name of the source. + The settings. + + + + Contains settings used by . + + + + + Gets or sets a value indicating whether to run in debug mode. + + The debug flag + + + + Gets or sets a value indicating whether to run in verbose mode. + + The verbose flag. + + + + Gets or sets a value indicating whether to run in forced mode. + + The force flag + + + + Gets or sets a value indicating whether to run in noop mode. + + The noop flag. + + + + Gets or sets a value indicating whether to run in limited output mode. + + The limit output flag + + + + Gets or sets the execution timeout value. + + The execution timeout + Default is 2700 seconds + + + + Gets or sets the location of the download cache. + + The download cache location + + + + Gets or sets a value indicating whether to run in allow unofficial mode. + + The allow unofficial flag + + + + Gets or sets the (optional) user name. + + Optional user name to be used when connecting to an authenticated source. + + + + Gets or sets the (optional) password. + + Optional password to be used when connecting to an authenticated source. + + + + Gets or sets the (optional) priority. + + Optional priority to be used when creating source. + + + + The Chocolatey package uninstall used to uninstall Chocolatey packages. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The Chocolatey tool resolver. + + + + Uninstalls Chocolatey packages using the specified package id and settings. + + List of package ids to uninstall. + The settings. + + + + Contains settings used by . + + + + + Gets or sets a value indicating whether it fails on standard error output. + + The fail on standard error flag + + + + Gets or sets a value indicating whether an external process is used instead of built in PowerShell host. + + The use system powershell flag + + + + Gets or sets a value indicating whether to uninstall all versions. + + The all versions flag + + + + Gets or sets the uinstall arguments to pass to native installer. + + + + + Gets or sets a value indicating whether install arguments should be applied to dependent packages. + + The global arguments flag + + + + Gets or sets a value indicating whether global parameters are passed to the package. + + The global package parameters flag + + + + Gets or sets a value indicating whether to force dependencies. + + The force dependencies flag + + + + Gets or sets a value indicating whether to Exit with a 0 for success and 1 for non-succes + no matter what package scripts provide for exit codes. + + The ignore package exit codes flag + + + + Gets or sets a value indicating whether to use package exit codes. + + The use package exit codes flag + + + + Gets or sets a value indicating whether to use auto uninstaller service when uninstalling. + + The use auto uninstaller flag + + + + Gets or sets a value indicating whether to skip auto uninstaller service when uninstalling. + + The skip auto uninstaller flag + + + + Gets or sets a value indicating whether to fail the package uninstall if the auto + uninstaller reports and error. + + The fail auto uninstaller flag + + + + Gets or sets a value indicating whether to not fail the package if auto + uninstaller reports an error. + + The ignore auto uninstaller flag + + + + The Chocolatey package upgrader. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The Chocolatey tool resolver. + + + + Upgrades Chocolatey packages using the specified settings. + + The source package id. + The settings. + + + + Contains settings used by . + + + + + Gets or sets a value indicating whether to allow upgrading to prerelease versions. + This flag is not required when updating prerelease packages that are already installed. + + + true to allow updating to prerelease versions; otherwise, false. + + + + + Gets or sets a value indicating whether to force installation of the x86 version of package. + + The force x86 flag + + + + Gets or sets the install arguments to pass to native installer. + + + + + Gets or sets a value indicating whether to allow downgrade of package. + + The downgrade package flag + + + + Gets or sets a value indicating whether to ignore dependencies. + + The ignore dependencies flag + + + + Gets or sets a value indicating whether to fail on unfound packages. + + The skip powershell flag + + + + Gets or sets a value indicating whether to fail on not installed packages. + + The skip powershell flag + + + + Gets or sets the user for authenticated feeds. + + + + + Gets or sets the password for authenticated feeds. + + + + + Gets or sets a value indicating whether to ignore checksums. + + The ignore checksums flag + + + + DotCover Analyser builder. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Runs DotCover Analyse with the specified settings. + + The context. + The action. + The output file path. + The settings. + + + + Contains settings used by . + + + + + Gets or sets the type of the report. + This represents the /ReportType option. + The Default value is . + + + + + DotCover Coverer builder. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Runs DotCover Cover with the specified settings. + + The context. + The action. + The output file path. + The settings. + + + + Contains settings used by . + + + + + Contains functionality related to DotCover. + + In order to use the commands for this alias, include the following in your build.cake file to download and + install from NuGet.org, or specify the ToolPath within the appropriate settings class: + + #tool "nuget:?package=JetBrains.dotCover.CommandLineTools" + + + + + + + Runs DotCover Analyse + for the specified action and settings. + + The context. + The action to run DotCover for. + The DotCover output file. + The settings. + + + DotCoverAnalyse(tool => { + tool.XUnit2("./**/App.Tests.dll", + new XUnit2Settings { + ShadowCopy = false + }); + }, + new FilePath("./result.xml"), + new DotCoverAnalyseSettings() + .WithFilter("+:App") + .WithFilter("-:App.Tests")); + + + + + + Runs DotCover Cover + for the specified action and settings. + + The context. + The action to run DotCover for. + The DotCover output file. + The settings. + + + DotCoverCover(tool => { + tool.XUnit2("./**/App.Tests.dll", + new XUnit2Settings { + ShadowCopy = false + }); + }, + new FilePath("./result.dcvr"), + new DotCoverCoverSettings() + .WithFilter("+:App") + .WithFilter("-:App.Tests")); + + + + + + Runs DotCover Report + for the specified action and settings. + + The context. + The DotCover coverage snapshot file name. + The DotCover output file. + The settings + + + DotCoverReport(new FilePath("./result.dcvr"), + new FilePath("./result.html"), + new DotCoverReportSettings { + ReportType = DotCoverReportType.HTML + }); + + + + + + Runs DotCover Merge + for the specified action and settings. + + The context. + The list of DotCover coverage snapshot files. + The merged output file. + + + DotCoverMerge(new[] { + new FilePath("./result1.dcvr"), + new FilePath("./result2.dcvr") + }, + new FilePath("./merged.dcvr")); + + + + + + Runs DotCover Merge + for the specified action and settings. + + The context. + The list of DotCover coverage snapshot files. + The merged output file. + The settings + + + DotCoverMerge(new[] { + new FilePath("./result1.dcvr"), + new FilePath("./result2.dcvr") + }, + new FilePath("./merged.dcvr"), + new DotCoverMergeSettings { + LogFile = new FilePath("./log.txt") + }); + + + + + + Contains settings used by . + + + + + Gets or sets program working directory + This represents the /TargetWorkingDir option. + + + + + Gets the assemblies loaded in the specified scope into coverage results. + Ant-style patterns are supported here (e.g.ProjectFolder/**/*.dll) + This represents the /Scope option. + + + + + Gets the coverage filters using the following syntax: +:module=*;class=*;function=*; + Use -:myassembly to exclude an assembly from code coverage. + Asterisk wildcard (*) is supported here. + This represents the /Filters option. + + + + + Gets the attribute filters using the following syntax: filter1;filter2;... + Asterisk wildcard(*) is supported here + This represents the /AttributeFilters option. + + + + + Gets the coverage process filters using the following syntax: +:test.exe;program.exe*; + Use -:anexe to exclude an assembly from code coverage. + This represents the /ProcessFilters option. + + + + + Gets or sets a value indicating whether the default (automatically added) filters should be disabled + This represents the /DisableDefaultFilters option. + + + + + Initializes a new instance of the class. + + + + + Contains extensions for . + + + + + Adds the scope. + + The settings. + The scope. + The settings type, derived from + The same instance so that multiple calls can be chained. + + + + Adds the filter + + The settings. + The filter. + The settings type, derived from + The same instance so that multiple calls can be chained. + + + + Adds the attribute filter + + The settings. + The filter. + The settings type, derived from + The same instance so that multiple calls can be chained. + + + + Adds the filter + + The settings. + The processfilter. + The settings type, derived from + The same instance so that multiple calls can be chained. + + + + DotCover Coverage tool. + + The settings type + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Get arguments from the target executable + + The context. + The action to run DotCover for. + The process arguments + + + + Get arguments from coverage settings + + The settings + The process arguments + + + + Represents DotCover ReportType + + + + + ReportType: XML + + + + + ReportType: HTML + + + + + ReportType: JSON + + + + + ReportType: DetailedXML + + + + + ReportType: NDependXML + + + + + Contains settings used by . + + + + + Gets or sets a value that enables logging and specifies log file name + This represents the /LogFile option. + + + + + Gets or sets a value that enables DotCover configuration file. + A configuration file is a reasonable alternative + to specifying all parameters in-line or having them in a batch file. + + + + + Contains extensions for . + + + + + Adds the scope. + + The settings. + The DotCover configuration file. + The settings type, derived from + The same instance so that multiple calls can be chained. + + + + Base class for all DotCover related tools + + The settings type + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Get arguments from global settings + + The settings + The process arguments + + + + Get configuration full path from coverage settings + + The settings + The process arguments + + + + DotCover Merge merger. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Runs DotCover Merge with the specified settings. + + The list of DotCover coverage snapshot files. + The merged output file. + The settings + + + + Contains settings used by . + + + + + DotCover Report reporter. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Runs DotCover Cover with the specified settings. + + The DotCover coverage snapshot file name. + The DotCover output file. + The settings + + + + Contains settings used by . + + + + + Gets or sets the type of the report. + This represents the /ReportType option. + The Default value is . + + + + + Contains functionality to run either MSBuild on Windows or XBuild on Mac/Linux/Unix. + + + + + Builds the specified solution using MSBuild or XBuild. + + + + DotNetBuild("./project/project.sln"); + + + The context. + The solution. + + + + Builds the specified solution using MSBuild or XBuild. + + + + DotNetBuild("./project/project.sln", settings => + settings.SetConfiguration("Debug") + .SetVerbosity(Core.Diagnostics.Verbosity.Minimal) + .WithTarget("Build") + .WithProperty("TreatWarningsAsErrors","true")); + + + The context. + The solution. + The configurator. + + + + Contains settings used by the DotNetBuild alias. + + + + + Gets the solution path. + + The solution. + + + + Gets the targets. + + The targets. + + + + Gets the properties. + + The properties. + + + + Gets or sets the configuration. + + The configuration. + + + + Gets or sets the amount of information to display in the build log. + Each logger displays events based on the verbosity level that you set for that logger. + + The build log verbosity. + + + + Initializes a new instance of the class. + + The solution. + + + + Contains functionality related to .NET build settings. + + + + + Adds a .NET build target to the configuration. + + The settings. + The .NET build target. + The same instance so that multiple calls can be chained. + + + + Adds a property to the configuration. + + The settings. + The property name. + The property values. + The same instance so that multiple calls can be chained. + + + + Sets the configuration. + + The settings. + The configuration. + The same instance so that multiple calls can be chained. + + + + Sets the build log verbosity. + + The settings. + The build log verbosity. + The same instance so that multiple calls can be chained. + + + + .NET Core project builder. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Build the project using the specified path and settings. + + The target project path. + The settings. + + + + Contains settings used by . + + + + + Gets or sets the output directory. + + + + + Gets or sets the target runtime. + + + + + Gets or sets the configuration under which to build. + + + + + Gets or sets the specific framework to compile. + + + + + Gets or sets the value that defines what `*` should be replaced with in version field in project.json. + + + + + Gets or sets a value indicating whether to mark the build as unsafe for incrementality. + This turns off incremental compilation and forces a clean rebuild of the project dependency graph. + + + + + Gets or sets a value indicating whether to ignore project to project references and only build the root project. + + + + + Gets or sets a value indicating whether to not do implicit NuGet package restore. + This makes build faster, but requires restore to be done before build is executed. + + + Requires .NET Core 2.x or newer. + + + + + Gets or sets additional arguments to be passed to MSBuild. + + + + + .NET Core project cleaner. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Cleans the project's output using the specified path and settings. + + The target project path. + The settings. + + + + Contains settings used by . + + + + + Gets or sets the output directory. + + + + + Gets or sets the configuration under which to build. + + + + + Gets or sets the specific framework to compile. + + + + + Gets or sets additional arguments to be passed to MSBuild. + + + + + Contains functionality related to .NET Core CLI. + + In order to use the commands for this alias, the .Net Core CLI tools will need to be installed on the machine where + the Cake script is being executed. See this page for information + on how to install. + + + + + + Execute an assembly. + + The context. + The assembly path. + + + DotNetCoreExecute("./bin/Debug/app.dll"); + + + + + + Execute an assembly with arguments in the specific path. + + The context. + The assembly path. + The arguments. + + + DotNetCoreExecute("./bin/Debug/app.dll", "--arg"); + + + + + + Execute an assembly with arguments in the specific path with settings. + + The context. + The assembly path. + The arguments. + The settings. + + + var settings = new DotNetCoreExecuteSettings + { + FrameworkVersion = "1.0.3" + }; + + DotNetCoreExecute("./bin/Debug/app.dll", "--arg", settings); + + + + + + Restore all NuGet Packages. + + The context. + + + DotNetCoreRestore(); + + + + + + Restore all NuGet Packages in the specified path. + + The context. + List of projects and project folders to restore. Each value can be: a path to a project.json or global.json file, or a folder to recursively search for project.json files. + + + DotNetCoreRestore("./src/*"); + + + + + + Restore all NuGet Packages with the settings. + + The context. + The settings. + + + var settings = new DotNetCoreRestoreSettings + { + Sources = new[] {"https://www.example.com/nugetfeed", "https://www.example.com/nugetfeed2"}, + FallbackSources = new[] {"https://www.example.com/fallbacknugetfeed"}, + PackagesDirectory = "./packages", + Verbosity = Information, + DisableParallel = true, + InferRuntimes = new[] {"runtime1", "runtime2"} + }; + + DotNetCoreRestore(settings); + + + + + + Restore all NuGet Packages in the specified path with settings. + + The context. + List of projects and project folders to restore. Each value can be: a path to a project.json or global.json file, or a folder to recursively search for project.json files. + The settings. + + + var settings = new DotNetCoreRestoreSettings + { + Sources = new[] {"https://www.example.com/nugetfeed", "https://www.example.com/nugetfeed2"}, + FallbackSources = new[] {"https://www.example.com/fallbacknugetfeed"}, + PackagesDirectory = "./packages", + Verbosity = Information, + DisableParallel = true, + InferRuntimes = new[] {"runtime1", "runtime2"} + }; + + DotNetCoreRestore("./src/*", settings); + + + + + + Build all projects. + + The context. + The projects path. + + + DotNetCoreBuild("./src/*"); + + + + + + Build all projects. + + The context. + The projects path. + The settings. + + + var settings = new DotNetCoreBuildSettings + { + Framework = "netcoreapp2.0", + Configuration = "Debug", + OutputDirectory = "./artifacts/" + }; + + DotNetCoreBuild("./src/*", settings); + + + + + + Package all projects. + + The context. + The projects path. + + + DotNetCorePack("./src/*"); + + + + + + Package all projects. + + The context. + The projects path. + The settings. + + + var settings = new DotNetCorePackSettings + { + Configuration = "Release", + OutputDirectory = "./artifacts/" + }; + + DotNetCorePack("./src/*", settings); + + + + + + Run all projects. + + The context. + + + DotNetCoreRun(); + + + + + + Run project. + + The context. + The project path. + + + DotNetCoreRun("./src/Project"); + + + + + + Run project with path and arguments. + + The context. + The project path. + The arguments. + + + DotNetCoreRun("./src/Project", "--args"); + + + + + + Run project with settings. + + The context. + The project path. + The arguments. + The settings. + + + var settings = new DotNetCoreRunSettings + { + Framework = "netcoreapp2.0", + Configuration = "Release" + }; + + DotNetCoreRun("./src/Project", "--args", settings); + + + + + + Publish all projects. + + The context. + The projects path. + + + DotNetCorePublish("./src/*"); + + + + + + Publish all projects. + + The context. + The projects path. + The settings. + + + var settings = new DotNetCorePublishSettings + { + Framework = "netcoreapp2.0", + Configuration = "Release", + OutputDirectory = "./artifacts/" + }; + + DotNetCorePublish("./src/*", settings); + + + + + + Test project. + + The context. + + + DotNetCoreTest(); + + + + + + Test project with path. + + The context. + The project path. + + Specify the path to the .csproj file in the test project + + DotNetCoreTest("./test/Project.Tests/Project.Tests.csproj"); + + You could also specify a task that runs multiple test projects. + Cake task: + + Task("Test") + .Does(() => + { + var projectFiles = GetFiles("./test/**/*.csproj"); + foreach(var file in projectFiles) + { + DotNetCoreTest(file.FullPath); + } + }); + + If your test project is using project.json, the project parameter should just be the directory path. + + DotNetCoreTest("./test/Project.Tests/"); + + + + + + Test project with settings. + + The context. + The project path. + The settings. + + + var settings = new DotNetCoreTestSettings + { + Configuration = "Release" + }; + + DotNetCoreTest("./test/Project.Tests/Project.Tests.csproj", settings); + + You could also specify a task that runs multiple test projects. + Cake task: + + Task("Test") + .Does(() => + { + var settings = new DotNetCoreTestSettings + { + Configuration = "Release" + }; + + var projectFiles = GetFiles("./test/**/*.csproj"); + foreach(var file in projectFiles) + { + DotNetCoreTest(file.FullPath, settings); + } + }); + + If your test project is using project.json, the project parameter should just be the directory path. + + var settings = new DotNetCoreTestSettings + { + Configuration = "Release" + }; + + DotNetCoreTest("./test/Project.Tests/", settings); + + + + + + Cleans a project's output. + + The context. + The project's path. + + + DotNetCoreClean("./src/project"); + + + + + + Cleans a project's output. + + The context. + The projects path. + The settings. + + + var settings = new DotNetCoreCleanSettings + { + Framework = "netcoreapp2.0", + Configuration = "Debug", + OutputDirectory = "./artifacts/" + }; + + DotNetCoreClean("./src/project", settings); + + + + + + Delete a NuGet Package from a server. + + The context. + + + DotNetCoreNuGetDelete(); + + + + + + Deletes a package from the NuGet.org. + + The context. + Name of package to delete. + + + DotNetCoreNuGetDelete("Microsoft.AspNetCore.Mvc"); + + + + + + Deletes a specific version of a package from the NuGet.org. + + The context. + Name of package to delete. + Version of package to delete. + + + DotNetCoreRestore("Microsoft.AspNetCore.Mvc", "1.0"); + + + + + + Deletes a package from a server + + The context. + Name of package to delete. + The settings. + + + var settings = new DotNetCoreNuGetDeleteSettings + { + Source = "https://www.example.com/nugetfeed", + NonInteractive = true + }; + + DotNetCoreNuGetDelete("Microsoft.AspNetCore.Mvc", settings); + + + + + + Deletes a package from a server using the specified settings. + + The context. + The settings. + + + var settings = new DotNetCoreNuGetDeleteSettings + { + Source = "https://www.example.com/nugetfeed", + NonInteractive = true + }; + + DotNetCoreNuGetDelete(settings); + + + + + + Deletes a package from a server using the specified settings. + + The context. + Name of package to delete. + Version of package to delete. + The settings. + + + var settings = new DotNetCoreNuGetDeleteSettings + { + Source = "https://www.example.com/nugetfeed", + NonInteractive = true + }; + + DotNetCoreNuGetDelete("Microsoft.AspNetCore.Mvc", "1.0", settings); + + + + + + Pushes one or more packages to a server. + + The context. + Name of package to push. + + + DotNetCoreNuGetPush("*.nupkg"); + + + + + + Pushes one or more packages to a server using the specified settings. + + The context. + Name of package to push. + The settings. + + + var settings = new DotNetCoreNuGetPushSettings + { + Source = "https://www.example.com/nugetfeed", + ApiKey = "4003d786-cc37-4004-bfdf-c4f3e8ef9b3a" + }; + + DotNetCoreNuGetPush("foo*.nupkg", settings); + + + + + + Builds the specified targets in a project file found in the current working directory. + + The context. + + + DotNetCoreMSBuild(); + + + + + + Builds the specified targets in the project file. + + The context. + Project file or directory to search for project file. + + + DotNetCoreMSBuild("foobar.proj"); + + + + If a directory is specified, MSBuild searches that directory for a project file. + + + + + Builds the specified targets in a project file found in the current working directory. + + The context. + The settings. + + + var settings = new DotNetCoreMSBuildSettings + { + NoLogo = true, + MaxCpuCount = -1 + }; + + DotNetCoreMSBuild(settings); + + + + + + Builds the specified targets in the project file. + + The context. + Project file or directory to search for project file. + The settings. + + + var settings = new DotNetCoreMSBuildSettings + { + NoLogo = true, + MaxCpuCount = -1 + }; + + DotNetCoreMSBuild("foobar.proj", settings); + + + + If a project file is not specified, MSBuild searches the current working directory for a file that has a file + extension that ends in "proj" and uses that file. If a directory is specified, MSBuild searches that directory for a project file. + + + + + Test one or more projects specified by a path or glob pattern using the VS Test host runner. + + The context. + A path to the test file or glob for one or more test files. + + Specify the path to the .csproj file in the test project + + DotNetCoreTest("./test/Project.Tests/Project.Tests.csproj"); + + You could also specify a glob pattern to run multiple test projects. + + DotNetCoreTest("./**/*.Tests.csproj"); + + + + + + Test one or more projects specified by a path or glob pattern with settings using the VS Test host runner. + + The context. + A path to the test file or glob for one or more test files. + The settings. + + Specify the path to the .csproj file in the test project + + var settings = new DotNetCoreTestSettings + { + Framework = "FrameworkCore10", + Platform = "x64" + }; + + DotNetCoreTest("./test/Project.Tests/Project.Tests.csproj", settings); + + You could also specify a glob pattern to run multiple test projects. + + var settings = new DotNetCoreTestSettings + { + Framework = "FrameworkCore10", + Platform = "x64", + Parallel = true + }; + + DotNetCoreTest("./**/*.Tests.csproj", settings); + + + + + + Test one or more specified projects with settings using the VS Test host runner. + + The context. + The project paths to test. + The settings. + + + var settings = new DotNetCoreTestSettings + { + Framework = "FrameworkCore10", + Platform = "x64" + }; + + DotNetCoreTest(new[] { (FilePath)"./Test/Cake.Common.Tests.csproj" }, settings); + + You could also specify a task that runs multiple test projects. + Cake task: + + Task("Test") + .Does(() => + { + var settings = new DotNetCoreTestSettings + { + Framework = "FrameworkCore10", + Platform = "x64", + Parallel = true + }; + + var projectFiles = GetFiles("./test/**/*.csproj"); + + DotNetCoreTest(projectFiles, settings); + }); + + + + + + /// Execute an .NET Core Extensibility Tool. + + The context. + The project path. + The command to execute. + + + DotNetCoreTool("./src/project", "xunit", "-xml report.xml"); + + + + + + Execute an .NET Core Extensibility Tool. + + The context. + The project path. + The command to execute. + The arguments. + + + DotNetCoreTool("./src/project", "xunit", "-xml report.xml"); + + + + + + Execute an .NET Core Extensibility Tool. + + The context. + The project path. + The command to execute. + The arguments. + The settings. + + + DotNetCoreTool("./src/project", "xunit", "-xml report.xml"); + + + + + + Contains common settings used by . + + + + + Gets or sets the verbosity of logging to use. + + + + + Gets or sets a value indicating whether to not enable diagnostic output. + + + + + Base class for all .NET Core related tools. + + The settings type. + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Runs the dotnet cli command using the specified settings and arguments. + + The settings. + The arguments. + + + + Runs the dotnet cli command using the specified settings and arguments. + + The settings. + The arguments. + The processSettings. + + + + Creates a and adds common commandline arguments. + + The settings. + Instance of . + + + + Adds common commandline arguments. + + Process argument builder to update. + The settings. + Returns updated with common commandline arguments. + + + + Contains the verbosity of logging to use.. + + + + + Quiet level. + + + + + Minimal level. + + + + + Normal level. + + + + + Detailed level. + + + + + Diagnostic level. + + + + + Contains settings used by . + + + + + Gets or sets the version of the installed Shared Framework to use to run the application. + + + + + .NET Core assembly executor. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Execute an assembly using arguments and settings. + + The assembly path. + The arguments. + The settings. + + + + .NET Core project builder. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Build the project using the specified path and settings. + + The target project path. + The settings. + + + + Contains settings used by . + + + + + Gets or sets a value indicating whether to show detailed information at the end of the build log about the configurations that were built and how they were scheduled to nodes. + + + + + Gets or sets extensions to ignore when determining which project file to build. + + + + + Gets or sets the maximum number of concurrent processes to use when building. + + + If you don't include this switch, the default value is 1. If you specifying a value that is zero or less, MSBuild will use up to the number of processors in the computer. + + + + + Gets or sets a value indicating whether to exclude any MSBuild.rsp files automatically. + + + + + Gets or sets a value indicating whether to display the startup banner and the copyright message. + + + + + Gets the project-level properties to set or override. + + + + + Gets the targets to build in the project. + + + If you specify any targets, they are run instead of any targets in the DefaultTargets attribute in the project file. + + + + + Gets or sets the version of the Toolset to use to build the project. + + + + + Gets or sets a value indicating whether to validate the project file and, if validation succeeds, build the project. + + + + + Gets the response files to use. + + + A response file is a text file that is used to insert command-line switches. For more information see https://docs.microsoft.com/en-gb/visualstudio/msbuild/msbuild-response-files + + + + + Gets or sets a value indicating whether to log the build output of each MSBuild node to its own file. + + + The initial location for these files is the current directory. By default, the files are named "MSBuildNodeId.log". You can use the /fileLoggerParameters switch to specify the location of the files and other parameters for the fileLogger. + If you name a log file by using the /fileLoggerParameters switch, the distributed logger will use that name as a template and append the node ID to that name when creating a log file for each node. + + + + + Gets the distributed loggers to use. + + + A distributed logger consists of a central and forwarding logger. MSBuild will attach an instance of the forwarding logger to each secondary node. + For more information see https://msdn.microsoft.com/en-us/library/bb383987.aspx + + + + + Gets or sets the parameters for the console logger. + + + + + Gets the file loggers to use. + + + + + Gets the loggers to use to log events from MSBuild. + + + + + Gets or sets a value indicating whether to disable the default console logger, and not log events to the console. + + + + + Gets the warning codes to treats as errors. + + + When a warning is treated as an error the target will continue to execute as if it was a warning but the overall build will fail. + + + + + Gets or sets a value indicating how all warnings should be treated. + + + + + Gets the warning codes to treats as low importance messages. + + + + + Initializes a new instance of the class. + + + + + Contains functionality related to .NET Core MSBuild settings. + + + + + Adds a MSBuild target to the configuration. + + The settings. + The MSBuild target. + The same instance so that multiple calls can be chained. + Ignores a target if already added. + + + + Adds a property to the configuration. + + The settings. + The property name. + The property values. + The same instance so that multiple calls can be chained. + + + + Shows detailed information at the end of the build log about the configurations that were built and how they were scheduled to nodes. + + The settings. + The same instance so that multiple calls can be chained. + + + + Adds a extension to ignore when determining which project file to build. + + The settings. + The extension to ignore. + The same instance so that multiple calls can be chained. + + + + Sets the maximum CPU count. Without this set MSBuild will compile projects in this solution one at a time. + + The settings. + The maximum CPU count. Set this value to zero to use as many MSBuild processes as available CPUs. + The same instance so that multiple calls can be chained. + + + + Exclude any MSBuild.rsp files automatically. + + The settings. + The same instance so that multiple calls can be chained. + + + + Hide the startup banner and the copyright message. + + The settings. + The same instance so that multiple calls can be chained. + + + + Sets the version of the Toolset to use to build the project. + + The settings. + The version. + The same instance so that multiple calls can be chained. + + + + Validate the project file and, if validation succeeds, build the project. + + The settings. + The same instance so that multiple calls can be chained. + + + + Adds a response file to use. + + The settings. + The response file to add. + The same instance so that multiple calls can be chained. + + A response file is a text file that is used to insert command-line switches. For more information see https://docs.microsoft.com/en-gb/visualstudio/msbuild/msbuild-response-files + + + + + Log the build output of each MSBuild node to its own file. + + The settings. + The same instance so that multiple calls can be chained. + + + + Adds a distributed loggers to use. + + The settings. + The response file to add. + The same instance so that multiple calls can be chained. + + A distributed logger consists of a central and forwarding logger. MSBuild will attach an instance of the forwarding logger to each secondary node. + For more information see https://msdn.microsoft.com/en-us/library/bb383987.aspx + + + + + Sets the parameters for the console logger. + + The settings. + The console logger parameters to set. + The same instance so that multiple calls can be chained. + + + + Adds a file logger. + + The settings. + Parameters to be passed to the logger. + The same instance so that multiple calls can be chained. + + Each file logger will be declared in the order added. + The first file logger will match up to the /fl parameter. + The next nine (max) file loggers will match up to the /fl1 through /fl9 respectively. + + + + + Adds a file logger with all the default settings. + + The settings. + The same instance so that multiple calls can be chained. + + Each file logger will be declared in the order added. + The first file logger will match up to the /fl parameter. + The next nine (max) file loggers will match up to the /fl1 through /fl9 respectively. + + + + + Adds a custom logger. + + The settings. + The assembly containing the logger. Should match the format {AssemblyName[,StrongName] | AssemblyFile} + The class implementing the logger. Should match the format [PartialOrFullNamespace.]LoggerClassName. If the assembly contains only one logger, class does not need to be specified. + Parameters to be passed to the logger. + The same instance so that multiple calls can be chained. + + + + Disables the default console logger, and not log events to the console. + + The settings. + The same instance so that multiple calls can be chained. + + + + Sets the warning code to treats as an error. + + The settings. + The warning code to treat as an error. + The same instance so that multiple calls can be chained. + + When a warning is treated as an error the target will continue to execute as if it was a warning but the overall build will fail. + + + + + Sets the warning code to treats as a message. + + The settings. + The warning code to treat as a message. + The same instance so that multiple calls can be chained. + + + + Sets how all warnings should be treated. + + The settings. + How all warning should be treated. + The same instance so that multiple calls can be chained. + + + + Sets the configuration. + + The settings. + The configuration. + The same instance so that multiple calls can be chained. + + + + Sets the version. + + The settings. + The version. + The same instance so that multiple calls can be chained. + + Version will override VersionPrefix and VersionSuffix if set. + This may also override version settings during packaging. + + + + + Sets the file version. + + The settings. + The file version. + The same instance so that multiple calls can be chained. + + + + Sets the informational version. + + The settings. + The informational version. + The same instance so that multiple calls can be chained. + + + + Suppress warning CS7035. + This is useful when using semantic versioning and either the file or informational version + doesn't match the recommended format. + The recommended format is: major.minor.build.revision where + each is an integer between 0 and 65534 (inclusive). + + The settings. + The same instance so that multiple calls can be chained. + + + + Sets the version prefix. + + The settings. + The version prefix. + The same instance so that multiple calls can be chained. + + + + Sets the version Suffix. + + The settings. + The version prefix. + The same instance so that multiple calls can be chained. + + + + Adds a framework to target. + + The settings. + The framework to target. + The same instance so that multiple calls can be chained. + + For list of target frameworks see https://docs.microsoft.com/en-us/dotnet/standard/frameworks. + + + + + Sets a target operating systems where the application or assembly will run. + + The settings. + The runtime id of the operating system. + The same instance so that multiple calls can be chained. + + For list of runtime ids see https://docs.microsoft.com/en-us/dotnet/core/rid-catalog. + + + + + Contains functionality related to MSBuild arguments. + + + + + Adds MSBuild arguments + + Argument builder. + MSBuild settings to add. + The environment. + Throws if 10 or more file loggers specified. + + + + Represents how the console color should behave in a console. + + + + + Use the normal console color behaviour. + + + + + Use the default console color for all logging messages. + + + + + Use ANSI console colors even if console does not support it + + + + + Represents the Distributed Logging Model with a central logger and forwarding logger. + + + + + Gets or sets the logger to use as the central logger. + + + + + Gets or sets the logger to use as the forwarding logger. + + + + + Represents the settings for a file logger. + + + + + Gets or sets the path to the log file into which the build log is written. + + + An empty string will use msbuild.log, in the current directory. + + + + + Gets or sets a value indicating whether the build log is appended to the log file or overwrites it. + + + + + Gets or sets the encoding for the file (for example, UTF-8, Unicode, or ASCII). + + + + + Represents the logging output level for a MSBuild logger. + + + + + Show the error and warning summary at the end. + + + + + Show only warnings summary at the end. + + + + + Show only errors summary at the end. + + + + + Represents the common settings for a logger. + + + + + Gets or sets a value indicating whether to show the time that’s spent in tasks, targets, and projects. + + + + + Gets or sets a value indicating whether to hide the error and warning summary at the end. + + + + + Gets or sets value that indicates the level of summary output at the end for the logger. + + Default is to show errors and summary. + + + + Gets or sets a value indicating whether to hide the list of items and properties that would appear at the start of each project build if the verbosity level is set to diagnostic. + + + + + Gets or sets a value indicating whether to show TaskCommandLineEvent messages. + + + + + Gets or sets a value indicating whether to show the timestamp as a prefix to any message. + + + + + Gets or sets a value indicating whether to show the event Id for each started event, finished event, and message. + + + + + Gets or sets a value indicating whether to not align the text to the size of the console buffer. + + + + + Gets or sets value that indicates the type of console color to use for all logging messages. + + + + + Gets or sets a value indicating whether to disable the multiprocessor logging style of output when running in non-multiprocessor mode. + + + + + Gets or sets a value that overrides the /verbosity setting for this logger. + + + + + Represents how all warnings should be treated as by MSBuild. + + + + + Use the default MSBuild behaviour. + + + + + Treat all warnings as low importance messages. + + + + + Treat all warnings as errors. + + + + + .NET Core nuget deleter, deletes or unlists a package from the server. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Delete the NuGet package using the specified name, version and settings. + + The name of the target package. + Version of the package. + The settings. + + + + Contains settings used by . + + + + + Gets or sets a value indicating the server URL. + + + Supported URLs for nuget.org include http://www.nuget.org, http://www.nuget.org/api/v3, + and http://www.nuget.org/api/v2/package. For private feeds, substitute the host name + (for example, %hostname%/api/v3). + + + + + Gets or sets a value indicating whether to prompt for user input or confirmations. + + + + + Gets or sets a value indicating the API key for the server. + + + + + Gets or sets a value indicating whether to force command-line output in English. + + + + + .NET Core nuget pusher, pushes a package and it's symbols to the server. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Push one or more NuGet package using the specified name, version and settings. + + The name of the target package. + The settings. + + + + Contains settings used by . + + + + + Gets or sets a value indicating the server URL. + + + This option is required unless DefaultPushSource config value is set in the NuGet config file. + + + + + Gets or sets a value indicating the symbol server URL. + + + + + Gets or sets a value indicating timeout for pushing to a server in seconds. + + Defaults to 300 seconds (5 minutes). Specifying 0 (zero seconds) applies the default value. + + + + + + Gets or sets a value indicating the API key for the server. + + + + + Gets or sets a value indicating the API key for the symbol server. + + + + + Gets or sets a value indicating whether buffering is disabled when pushing to an HTTP(S) server. + + + This decreases memory usage. + + + + + Gets or sets a value indicating whether symbols should be not be pushed if present. + + + + + Gets or sets a value indicating whether to force command-line output in English. + + + + + .NET Core project packer. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Pack the project using the specified path and settings. + + The target file path. + The settings. + + + + Contains settings used by . + + + + + Gets or sets the output directory. + + + + + Gets or sets the configuration under which to build. + + + + + Gets or sets the value that defines what `*` should be replaced with in version field in project.json. + + + + + Gets or sets a value indicating whether to not build project before packing. + + + + + Gets or sets a value indicating whether to ignore project to project references and only build the root project. + + + Requires .NET Core 2.x or newer. + + + + + Gets or sets a value indicating whether to not do implicit NuGet package restore. + This makes build faster, but requires restore to be done before build is executed. + + + Requires .NET Core 2.x or newer. + + + + + Gets or sets a value indicating whether to generate the symbols nupkg. + + + + + Gets or sets a value indicating whether to includes the source files in the NuGet package. + The sources files are included in the src folder within the nupkg. + + + + + Gets or sets a value indicating whether to set the serviceable flag in the package. + + + For more information, see https://aka.ms/nupkgservicing + + + + + Gets or sets additional arguments to be passed to MSBuild. + + + + + .NET Core project runner. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Publish the project using the specified path and settings. + + The target file path. + The settings. + + + + Contains settings used by . + + + + + Gets or sets the output directory. + + + + + Gets or sets the target runtime. + + + + + Gets or sets a specific framework to compile. + + + + + Gets or sets the configuration under which to build. + + + + + Gets or sets the value that defines what `*` should be replaced with in version field in project.json. + + + + + Gets or sets a value indicating whether to not to build the project before publishing. + This makes build faster, but requires build to be done before publish is executed. + + + Requires .NET Core 2.1 or newer. + + + + + Gets or sets a value indicating whether to ignore project to project references and only build the root project. + + + Requires .NET Core 2.x or newer. + + + + + Gets or sets a value indicating whether to not do implicit NuGet package restore. + This makes build faster, but requires restore to be done before build is executed. + + + Requires .NET Core 2.x or newer. + + + + + Gets or sets a value indicating whether to force all dependencies to be resolved even if the last restore was successful. This is equivalent to deleting project.assets.json. + + + Requires .NET Core 2.x or newer. + + + + + Gets or sets a value indicating whether Publish the .NET Core runtime with your application so the runtime doesn't need to be installed on the target machine. Defaults to 'true' if a runtime identifier is specified. + + + Requires .NET Core 2.x or newer. + + + + + Gets or sets the specified NuGet package sources to use during the restore. + + + Requires .NET Core 2.x or newer. + + + + + Gets or sets additional arguments to be passed to MSBuild. + + + + + .NET Core project restorer. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The cake log. + + + + Restore the project using the specified path and settings. + + List of projects and project folders to restore. Each value can be: a path to a project.json or global.json file, or a folder to recursively search for project.json files. + The settings. + + + + Contains settings used by . + + + + + Gets or sets the specified NuGet package sources to use during the restore. + + + + + Gets or sets the NuGet configuration file to use. + + + + + Gets or sets the directory to install packages in. + + + + + Gets or sets a value indicating whether to do not cache packages and http requests. + + + + + Gets or sets a value indicating whether to disable restoring multiple projects in parallel. + + + + + Gets or sets a value indicating whether to only warning failed sources if there are packages meeting version requirement. + + + + + Gets or sets the target runtime to restore packages for. + + + + + Gets or sets a value indicating whether to ignore project to project references and restore only the root project. + + + + + Gets or sets a value indicating whether to force all dependencies to be resolved even if the last restore was successful. + This is equivalent to deleting the project.assets.json file. + + Note: This flag was introduced with the .NET Core 2.x release. + + + + + Gets or sets additional arguments to be passed to MSBuild. + + + + + .NET Core project runner. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Runs the project using the specified path with arguments and settings. + + The target project path. + The arguments. + The settings. + + + + Contains settings used by . + + + + + Gets or sets a specific framework to compile. + + + + + Gets or sets the configuration under which to build. + + + + + Gets or sets a value indicating whether to not do implicit NuGet package restore. + This makes run faster, but requires restore to be done before run is executed. + + + + + Gets or sets a value indicating whether to not do implicit build. + This makes run faster, but requires build to be done before run is executed. + + + + + .NET Core project tester. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Tests the project using the specified path with arguments and settings. + + The target project path. + The settings. + + + + Contains settings used by . + + + + + Gets or sets the settings file to use when running tests. + + + + + Gets or sets the filter expression to filter out tests in the current project. + + + For more information on filtering support, see https://aka.ms/vstest-filtering + + + + + Gets or sets the path to use for the custom test adapter in the test run. + + + + + Gets or sets a logger for test results + + + + + Gets or sets the output directory. + + + + + Gets or sets the configuration under which to build. + + + + + Gets or sets specific framework to compile. + + + + + Gets or sets a value indicating whether to not build the project before testing. + + + + + Gets or sets a value indicating whether to not do implicit NuGet package restore. + This makes build faster, but requires restore to be done before build is executed. + + + Requires .NET Core 2.x or newer. + + + + + Gets or sets a file to write diagnostic messages to. + + + + + Gets or sets the results directory. This setting is only available from 2.0.0 upward. + + + + + .NET Core Extensibility Commands Runner. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Execute an assembly using arguments and settings. + + The target project path. + The command to execute. + The arguments. + The settings. + + + + Contains settings used by . + + + + + .NET Core VSTest tester. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Tests the project using the specified path with arguments and settings. + + A list of test files to run. + The settings. + + + + Contains settings used by . + + + + + Gets or sets the settings file to use when running tests. + + + + + Gets or sets the a list tests to run. + + + + + Gets or sets the path to use for the custom test adapter in the test run. + + + + + Gets or sets the target platform architecture to be used for test execution. + + + + + Gets or sets specific .Net Framework version to be used for test execution. + + + Valid values are ".NETFramework,Version=v4.6", ".NETCoreApp,Version=v1.0" etc. + Other supported values are Framework35, Framework40, Framework45 and FrameworkCore10. + + + + + Gets or sets a value indicating whether the tests should be executed in parallel. + + + By default up to all available cores on the machine may be used. The number of cores to use may be configured using a settings file. + + + + + Gets or sets the filter expression to run test that match. + + + For more information on filtering support, see https://aka.ms/vstest-filtering + + + + + Gets or sets a logger for test results. + + + + + Gets or sets the Process Id of the Parent Process responsible for launching current process. + + + + + Gets or sets the Port for socket connection and receiving the event messages. + + + + + Gets or sets a file to write diagnostic messages to. + + + + + Gets or sets a list of extra arguments that should be passed to adapter. + + + + + Initializes a new instance of the class. + + + + + Contains functionality related to ReSharper's dupFinder tool. + + In order to use the commands for this alias, include the following in your build.cake file to download and + install from NuGet.org, or specify the ToolPath within the class: + + #tool "nuget:?package=JetBrains.ReSharper.CommandLineTools" + + + + + + + Analyses the specified file with ReSharper's DupFinder. + The file can either be a solution/project or a source file. + + The context. + The file to analyze. + + + DupFinder("./src/MySolution.sln"); + + + + + + Analyses the specified file with ReSharper's DupFinder using the specified settings. + The file can either be a solution/project or a source file. + + The context. + The file to analyze. + The settings. + + + var buildOutputDirectory = Directory("./.build"); + var resharperReportsDirectory = buildOutputDirectory + Directory("_ReSharperReports"); + var rootDirectoryPath = MakeAbsolute(Context.Environment.WorkingDirectory); + + DupFinder("./src/MySolution.sln", new DupFinderSettings { + ShowStats = true, + ShowText = true, + ExcludePattern = new String[] + { + rootDirectoryPath + "/**/*Designer.cs", + }, + OutputFile = resharperReportsDirectory + File("dupfinder-output.xml"), + ThrowExceptionOnFindingDuplicates = true + }); + + + + + + Analyses the specified projects with ReSharper's DupFinder. + The files can either be solutions and projects or a source files. + + The context. + The files to analyze. + + + var projects = GetFiles("./src/**/*.csproj"); + DupFinder(projects); + + + + + + Analyses the specified projects with ReSharper's DupFinder using the specified settings. + The files can either be solutions and projects or a source files. + + The context. + The files to analyze. + The settings. + + + var buildOutputDirectory = Directory("./.build"); + var resharperReportsDirectory = buildOutputDirectory + Directory("_ReSharperReports"); + var rootDirectoryPath = MakeAbsolute(Context.Environment.WorkingDirectory); + + var projects = GetFiles("./src/**/*.csproj"); + DupFinder(projects, new DupFinderSettings { + ShowStats = true, + ShowText = true, + ExcludePattern = new String[] + { + rootDirectoryPath + "/**/*Designer.cs", + }, + OutputFile = resharperReportsDirectory + File("dupfinder-output.xml"), + ThrowExceptionOnFindingDuplicates = true + }); + + + + + + Analyses all files matching the specified pattern with ReSharper's DupFinder. + + The context. + The pattern. + + + DupFinder("*.cs"); + + + + + + Analyses all files matching the specified pattern with ReSharper's DupFinder, + using the specified settings. + + The context. + The pattern. + The settings. + + + var buildOutputDirectory = Directory("./.build"); + var resharperReportsDirectory = buildOutputDirectory + Directory("_ReSharperReports"); + + DupFinder("*.cs", new DupFinderSettings { + OutputFile = resharperReportsDirectory + File("dupfinder-output.xml"), + }); + + + + + + Runs ReSharper's DupFinder using the provided config file. + + The context. + The config file. + + + DupFinderFromConfig("./src/dupfinder.config"); + + + + + + DupFinder runner + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The logger. + + + + Analyses the specified files using the specified settings. + + The file paths. + The settings. + + + + Runs ReSharper's DupFinder using the provided config file. + + The config file. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Contains settings used by . + + + + + Gets or sets a value indicating whether the debug output should be enabled. + + + + + Gets or sets the complexity threshold for duplicate fragments. + Code fragment with lower complexity are discarded. + + + + + Gets or sets a value indicating whether to discard similar fields with different names. + + + + + Gets or sets a value indicating whether to discard similar lines of code with different literals. + + + + + Gets or sets a value indicating whether to discard similar local variables with different names. + + + + + Gets or sets a value indicating whether to discard similar types with different names. + + + + + Gets or sets a value indicating whether the process priority should be set to idle. + + + + + Gets or sets a list of keywords to exclude files that contain one of the keywords in their opening comments. + + + + + Gets or sets a list of keywords to exclude regions that contain one of the keywords in their message. + + + + + Gets or sets a lift of patterns which will be excluded from the analysis. + + + + + Gets or sets MsBuild properties. + + + + + Gets or sets a value indicating whether to normalize type names to the last subtype. + + + + + Gets or sets the directory where caches will be stored. + The default is %TEMP%. + + + + + Gets or sets the location DupFinder should write its output. + + The location DupFinder should write its output + + + + Gets or sets a value indicating whether to show CPU and memory usage statistics. + + + + + Gets or sets a value indicating whether to show duplicates text in the report. + + + + + Gets or sets a value indicating whether to throw an exception on finding duplicates + + + + + Contains functionality related to running Fixie tests. + + In order to use the commands for this alias, include the following in your build.cake file to download and + install from NuGet.org, or specify the ToolPath within the class: + + #tool "nuget:?package=Fixie" + + + + + + + Runs all Fixie tests in the assemblies matching the specified pattern. + + + + Fixie("./src/UnitTests/*.dll"); + + + The context. + The pattern. + + + + Runs all Fixie tests in the assemblies matching the specified pattern, + using the specified settings. + + + + Fixie("./src/UnitTests/*.dll", new FixieSettings { + NUnitXml = TestResult.xml + }); + + + The context. + The pattern. + The settings. + + + + Runs all Fixie tests in the specified assemblies. + + + + var assemblies = new [] { + "UnitTests1.dll", + "UnitTests2.dll" + }; + Fixie(assemblies); + + + The context. + The assemblies. + + + + Runs all Fixie tests in the specified assemblies. + + + + var assemblies = GetFiles("./src/UnitTests/*.dll"); + Fixie(assemblies); + + + The context. + The assemblies. + + + + Runs all Fixie tests in the specified assemblies, + using the specified settings. + + + + var assemblies = new [] { + "UnitTests1.dll", + "UnitTests2.dll" + }; + Fixie(assemblies, new FixieSettings { + NUnitXml = TestResult.xml + }); + + + The context. + The assemblies. + The settings. + + + + Runs all Fixie tests in the specified assemblies, + using the specified settings. + + + + var assemblies = GetFiles("./src/UnitTests/*.dll"); + Fixie(assemblies, new FixieSettings { + NUnitXml = TestResult.xml + }); + + + The context. + The assemblies. + The settings. + + + + The Fixie test runner. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The globber. + + + + Runs the tests in the specified assemblies, using the specified settings. + + The assembly paths. + The settings. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Contains settings used by . + + + + + Gets or sets the file to be used to output NUnit style of XML results. + + + The name of the file to write NUnit style of results. + + + + + Gets or sets the file to be used to output xUnit style of XML results. + + + The name of the file to write xUnit style of results. + + + + + Gets or sets the the option to force TeamCity-formatted output on or off. + + + The value of TeamCity-formatted output. Either "on" or "off". + + + + + Gets the collection of Options as KeyValuePairs. + + + The collection of keys and values. + + + + + Contains functionality related to Fixie settings. + + + + + Adds an option to the settings. + + The settings. + The option name. + The option values. + The same instance so that multiple calls can be chained. + + + + Contains functionality related to GitLink version 3. + + In order to use the commands for this alias, include the following in your build.cake file to download and + install from NuGet.org, or specify the ToolPath within the class: + + #tool "nuget:?package=gitlink" + + + + + + + Update the pdb file to link all sources. + This will allow anyone to step through the source code while debugging without a symbol source server. + + The context. + The PDB File to analyze. + + + GitLink3("C:/temp/solution/bin/my.pdb"); + + + + + + Update the pdb file to link all sources. + This will allow anyone to step through the source code while debugging without a symbol source server. + + The context. + The PDB File to analyze. + The settings. + + + GitLink3("C:/temp/solution/bin/my.pdb", new GitLink3Settings { + RepositoryUrl = "http://mydomain.com", + ShaHash = "abcdef" + }); + + + + + + Update the pdb files to link all sources. + This will allow anyone to step through the source code while debugging without a symbol source server. + + The context. + The PDB File collection to analyze. + + + GitLink3("C:/temp/solution/bin/**/*.pdb"); + + + + + + Update the pdb files to link all sources. + This will allow anyone to step through the source code while debugging without a symbol source server. + + The context. + The PDB File collection to analyze. + The settings. + + + GitLink3("C:/temp/solution/bin/**/*.pdb", new GitLink3Settings { + RepositoryUrl = "http://mydomain.com", + ShaHash = "abcdef" + }); + + + + + + GitLink runner + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Update pdb file to link all sources + + The path to the pdb file to link. + The settings. + + + + Update pdb files to link all sources + + The file path collection for the pdb files to link. + The settings. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Contains settings used by . + + + + + Gets or sets the Url to remote git repository. + + + + + Gets or sets the SHA-1 hash of the git commit to be used. + + + + + Gets or sets the path to the root of the git repository + + + + + Gets or sets a value indicating whether the Use PowerShell Command option should be enabled. + This option will use PowerShell instead of HTTP in SRCSRV to retreive the source code. + + + + + Gets or sets a value indicating whether the Skip Verify option should be enabled. + This option indicates whether verification of all source files are available in source control. + + + + + Contains functionality related to GitLink. + + In order to use the commands for this alias, include the following in your build.cake file to download and + install from NuGet.org, or specify the ToolPath within the class: + + #tool "nuget:?package=gitlink&version=2.4.0" + + + + + + + Update pdb files to link all sources. + This will allow anyone to step through the source code while debugging without a symbol source server. + + The context. + The Solution File to analyze. + + + GitLink("C:/temp/solution"); + + + + + + Update pdb files to link all sources, using specified settings. + This will allow anyone to step through the source code while debugging without a symbol source server. + + The context. + The path to the Root of the Repository to analyze. + The settings. + + + GitLink("C:/temp/solution", new GitLinkSettings { + RepositoryUrl = "http://mydomain.com", + Branch = "master", + ShaHash = "abcdef", + }); + + + + + + GitLink runner + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Update pdb files to link all sources. + + The path to the Root of the Repository to analyze. + The settings. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Contains settings used by . + + + + + Gets or sets the Url to remote git repository. + + + + + Gets or sets the Solution file name. + + + + + Gets or sets the name of the configuration. + + Default is Release + + + + Gets or sets the name of the platform. + + Default is AnyCPU + + + + Gets or sets the name of the branch to use on the remote repository. + + + + + Gets or sets the path to the GitLink log file. + + + + + Gets or sets the SHA-1 hash of the git commit to be used. + + + + + Gets or sets the directory where the PDB files are located. + + + + + Gets or sets a value indicating whether the Use PowerShell Command option should be enabled. + + + + + Gets or sets a value indicating whether the ErrorsAsWarnings option should be enabled. + + + + + Gets or sets a value indicating whether the Skip Verify option should be enabled. + + + + + Gets or sets a value indicating whether the debug output should be enabled. + + + + + Contains settings used by . + + + + + Gets or sets the path on which GitReleaseManager should be executed. + + + + + Gets or sets the path to the GitReleaseManager log file. + + + + + The GitReleaseManager Asset Adder used to add assets to a release. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Creates a Release using the specified and settings. + + The user name. + The password. + The owner. + The repository. + The tag name. + The assets to upload. + The settings. + + + + Contains settings used by . + + + + + Gets or sets the path on which GitReleaseManager should be executed. + + + + + Gets or sets the path to the GitReleaseManager log file. + + + + + The GitReleaseManager Milestone Closer used to close milestones. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Creates a Release using the specified settings. + + The user name. + The password. + The owner. + The repository. + The milestone. + The settings. + + + + Contains settings used by . + + + + + Gets or sets the milestone to be used when creating the release. + + + + + Gets or sets the name to be used when creating the release. + + + + + Gets or sets the location of a set of Release Notes to be used when creating the release. + + + + + Gets or sets a value indicating whether or not to create the release as a pre-release. + + + + + Gets or sets the Path(s) to the file(s) to include in the release. + + + + + Gets or sets the commit to tag. Can be a branch or SHA. Defaults to repository's default branch.. + + + + + Gets or sets the path on which GitReleaseManager should be executed. + + + + + Gets or sets the path to the GitReleaseManager log file. + + + + + The GitReleaseManager Release Creator used to create releases. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Creates a Release using the specified and settings. + + The user name. + The password. + The owner. + The repository. + The settings. + + + + The GitReleaseManager Release Publisher used to publish releases. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Creates a Release using the specified and settings. + + The user name. + The password. + The owner. + The repository. + The output path. + The settings. + + + + Contains settings used by . + + + + + Gets or sets the tag name to be used when exporting the release notes. + + + + + Gets or sets the path on which GitReleaseManager should be executed. + + + + + Gets or sets the path to the GitReleaseManager log file. + + + + + Contains functionality related to GitReleaseManager. + + In order to use the commands for this alias, include the following in your build.cake file to download and + install from NuGet.org, or specify the ToolPath within the appropriate settings class: + + #tool "nuget:?package=gitreleasemanager" + + + + + + + Creates a Package Release. + + The context. + The user name. + The password. + The owner. + The repository. + + + GitReleaseManagerCreate("user", "password", "owner", "repo"); + + + + + GitReleaseManagerCreate("user", "password", "owner", "repo"); + + + + + + Creates a Package Release using the specified settings. + + The context. + The user name. + The password. + The owner. + The repository. + The settings. + + + GitReleaseManagerCreate("user", "password", "owner", "repo", new GitReleaseManagerCreateSettings { + Milestone = "0.1.0", + Prerelease = false, + Assets = "c:/temp/asset1.txt,c:/temp/asset2.txt", + TargetCommitish = "master", + TargetDirectory = "c:/repo", + LogFilePath = "c:/temp/grm.log" + }); + + + + + GitReleaseManagerCreate("user", "password", "owner", "repo", new GitReleaseManagerCreateSettings { + Name = "0.1.0", + InputFilePath = "c:/repo/releasenotes.md", + Prerelease = false, + Assets = "c:/temp/asset1.txt,c:/temp/asset2.txt", + TargetCommitish = "master", + TargetDirectory = "c:/repo", + LogFilePath = "c:/temp/grm.log" + }); + + + + + + Add Assets to an existing release. + + The context. + The user name. + The password. + The owner. + The repository. + The tag name. + The assets. + + + GitReleaseManagerAddAssets("user", "password", "owner", "repo", "0.1.0", "c:/temp/asset1.txt,c:/temp/asset2.txt"); + + + + + + Add Assets to an existing release using the specified settings. + + The context. + The user name. + The password. + The owner. + The repository. + The tag name. + The assets. + The settings. + + + GitReleaseManagerAddAssets("user", "password", "owner", "repo", "0.1.0", "c:/temp/asset1.txt,c:/temp/asset2.txt" new GitReleaseManagerAddAssetsSettings { + TargetDirectory = "c:/repo", + LogFilePath = "c:/temp/grm.log" + }); + + + + + + Closes the milestone associated with a release. + + The context. + The user name. + The password. + The owner. + The repository. + The milestone. + + + GitReleaseManagerClose("user", "password", "owner", "repo", "0.1.0"); + + + + + + Closes the milestone associated with a release using the specified settings. + + The context. + The user name. + The password. + The owner. + The repository. + The milestone. + The settings. + + + GitReleaseManagerClose("user", "password", "owner", "repo", "0.1.0", new GitReleaseManagerCloseMilestoneSettings { + TargetDirectory = "c:/repo", + LogFilePath = "c:/temp/grm.log" + }); + + + + + + Publishes the release. + + The context. + The user name. + The password. + The owner. + The repository. + The tag name. + + + GitReleaseManagerPublish("user", "password", "owner", "repo", "0.1.0"); + + + + + + Publishes the release using the specified settings. + + The context. + The user name. + The password. + The owner. + The repository. + The tag name. + The settings. + + + GitReleaseManagerPublish("user", "password", "owner", "repo", "0.1.0", new GitReleaseManagerPublishSettings { + TargetDirectory = "c:/repo", + LogFilePath = "c:/temp/grm.log" + }); + + + + + + Exports the release notes. + + The context. + The user name. + The password. + The owner. + The repository. + The output file path. + + + GitReleaseManagerExport("user", "password", "owner", "repo", "c:/temp/releasenotes.md") + }); + + + + + + Exports the release notes using the specified settings. + + The context. + The user name. + The password. + The owner. + The repository. + The output file path. + The settings. + + + GitReleaseManagerExport("user", "password", "owner", "repo", "c:/temp/releasenotes.md", new GitReleaseManagerExportSettings { + TagName = "0.1.0", + TargetDirectory = "c:/repo", + LogFilePath = "c:/temp/grm.log" + }); + + + + + + Base class for all GitReleaseManager related tools. + + The settings type. + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + The GitReleaseManager Release Publisher used to publish releases. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Creates a Release using the specified and settings. + + The user name. + The password. + The owner. + The repository. + The tag name. + The settings. + + + + Contains settings used by . + + + + + Gets or sets the path on which GitReleaseManager should be executed. + + + + + Gets or sets the path to the GitReleaseManager log file. + + + + + Contains functionality related to GitReleaseNotes. + + In order to use the commands for this alias, include the following in your build.cake file to download and + install from NuGet.org, or specify the ToolPath within the class: + + #tool "nuget:?package=GitReleaseNotes" + + + + + + + Generates a set of release notes based on the commit history of the repository and specified settings. + + The context. + The output file. + The settings. + + + GitReleaseNotes("c:/temp/releasenotes.md", new GitReleaseNotesSettings { + WorkingDirectory = "c:/temp", + Verbose = true, + IssueTracker = IssueTracker.GitHub, + AllTags = true, + RepoUserName = "bob", + RepoPassword = "password", + RepoUrl = "http://myrepo.co.uk", + RepoBranch = "master", + IssueTrackerUrl = "http://myissuetracker.co.uk", + IssueTrackerUserName = "bob", + IssueTrackerPassword = "password", + IssueTrackerProjectId = "1234", + Categories = "Category1", + Version = "1.2.3.4", + AllLabels = true + }); + + + + + + The IssueTracker to be used. + + + + + Uses BitBucket as Issue Tracker. + + + + + Uses GitHub as Issue Tracker. + + + + + Uses Jira as Issue Tracker. + + + + + Uses YouTrack as Issue Tracker. + + + + + The GitReleaseNotes runner. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Runs GitVersion and processes the results. + + The output file. + The settings. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Contains settings used by . + + + + + Gets or sets a value indicating whether verbose logging is used. + + + + + Gets or sets the IssueTracker to use. + + + + + Gets or sets a value indicating whether all tags should be included in the releasenotes. + + If not specified then only the issues since that last tag are included. + + + + Gets or sets the username to use when accessing repository. + + + + + Gets or sets the password to use when accessing repository. + + + + + Gets or sets the token to use when accessing repository. + + To be used instead of username/password + + + + Gets or sets the Url to use when accessing repository. + + To be used instead of username/password + + + + Gets or sets the branch name to checkout any existing release notes file. + + To be used instead of username/password + + + + Gets or sets the Url to the Issue Tracker. + + To be used instead of username/password + + + + Gets or sets the username to use when accessing issue tracker. + + + + + Gets or sets the password to use when accessing issue tracker. + + + + + Gets or sets the token to use when accessing issue tracker. + + To be used instead of username/password + + + + Gets or sets the Project Id to use when accessing issue tracker. + + + + + Gets or sets the Jql query for closed issues you would like included if mentioned. + + + + + Gets or sets a value which allows additional labels to be treated as categories. + + + + + Gets or sets a value which specifies the version to publish. + + + + + Gets or sets a value indicating whether all labels should be included in the releasenotes. + + If not specified then only the defaults (bug, enhancement, feature) are included. + + + + GitVersion information + + + + + Gets or sets the major version. + + + + + Gets or sets the minor version. + + + + + Gets or sets the patch version. + + + + + Gets or sets the pre-release tag. + + + + + Gets or sets the pre-release tag with dash. + + + + + Gets or sets the pre-release label. + + + + + Gets or sets the pre-release number. + + + + + Gets or sets the build metadata. + + + + + Gets or sets the build metadata padded. + + + + + Gets or sets the major version. + + + + + Gets or sets the major, minor, and path. + + + + + Gets or sets the Semantic Version. + + + + + Gets or sets the legacy Semantic Version. + + + + + Gets or sets the padded legacy Semantic Version. + + + + + Gets or sets the assembly Semantic Version. + + + + + Gets or sets the assembly semantic file version. + + + + + Gets or sets the full Semantic Version. + + + + + Gets or sets the informational version. + + + + + Gets or sets the branch name. + + + + + Gets or sets the git sha. + + + + + Gets or sets the nuget version for v2. + + + + + Gets or sets the nuget version. + + + + + Gets or sets the commits since version source + + + + + Gets or sets the commits since version source padded + + + + + Gets or sets the commit date + + + + + Contains functionality related to GitVersion. + + In order to use the commands for this alias, include the following in your build.cake file to download and + install from NuGet.org, or specify the ToolPath within the class: + + #tool "nuget:?package=GitVersion.CommandLine" + + + + + + + Retrieves the GitVersion output. + + The context. + The git version info. + + Update the assembly info files for the project. + Cake task: + + + { + GitVersion(new GitVersionSettings { + UpdateAssemblyInfo = true + }); + }); + ]]> + + Get the git version info for the project using a dynamic repository. + Cake task: + + + { + var result = GitVersion(new GitVersionSettings { + UserName = "MyUser", + Password = "MyPassword, + Url = "http://git.myhost.com/myproject.git" + Branch = "develop" + Commit = EnviromentVariable("MY_COMMIT") + }); + // Use result for building nuget packages, setting build server version, etc... + }); + ]]> + + + + + + Retrieves the GitVersion output. + + The context. + The GitVersion settings. + The git version info. + + Update the assembly info files for the project. + Cake task: + + + { + GitVersion(new GitVersionSettings { + UpdateAssemblyInfo = true + }); + }); + ]]> + + Get the git version info for the project using a dynamic repository. + Cake task: + + + { + var result = GitVersion(new GitVersionSettings { + UserName = "MyUser", + Password = "MyPassword, + Url = "http://git.myhost.com/myproject.git" + Branch = "develop" + Commit = EnviromentVariable("MY_COMMIT") + }); + // Use result for building nuget packages, setting build server version, etc... + }); + ]]> + + + + + + The git version output type. + + + + + Outputs to the stdout using json. + + + + + Outputs to the stdout in a way usuable by a detected buildserver. + + + + + The GitVersion runner. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The log. + + + + Runs GitVersion and processes the results. + + The settings. + A task with the GitVersion results. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Contains settings used by . + + + + + Gets or sets the path for the git repository to use. + + + + + Gets or sets the output type. + + + + + Gets or sets a value indicating whether to update all the assemblyinfo files. + + + + + Gets or sets whether to update all the assemblyinfo files. + + + + + Gets or sets whether to only show a specific variable. + + + + + Gets or sets the username for the target repository. + + + + + Gets or sets the password for the target repository. + + + + + Gets or sets the git url to use if using dynamic repositories. + + + + + Gets or sets the branch to use if using dynamic repositories. + + + + + Gets or sets the branch to use if using dynamic repositories. + + + + + Gets or sets a value indicating whether to fetch repository information from remote when calculating version. + + If your CI server clones the entire repository you can set this to 'true' to prevent GitVersion attempting any remote repository fetching + + + + Gets or sets the dynamic repository path. Defaults to %TEMP%. + + + + + Gets or sets the path to the log file. + + + + + Contains functionality related to ILRepack. + + In order to use the commands for this alias, include the following in your build.cake file to download and + install from NuGet.org, or specify the ToolPath within the class: + + #tool "nuget:?package=ILRepack" + + + + + + + Merges the specified assemblies. + + The context. + The output file. + The primary assembly. + The assembly paths. + + + var assemblyPaths = GetFiles("./**/Cake.*.dll"); + ILRepack("./MergedCake.exe", "./Cake.exe", assemblyPaths); + + + + + + Merges the specified assemblies. + + The context. + The output file. + The primary assembly. + The assembly paths. + The settings. + + + var assemblyPaths = GetFiles("./**/Cake.*.dll"); + ILRepack( + "./MergedCake.exe", + "./Cake.exe", + assemblyPaths, + new ILRepackSettings { Internalize = true }); + + + + + + The ILMerge runner. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Merges the specified assemblies. + + The output assembly path. + The primary assembly path. + The assembly paths. + The settings. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the name of the tool executable. + + The tool executable name. + + + + Contains settings used by . + + + + + Gets or sets a keyfile to sign the output assembly + + The keyfile. + + + + Gets or sets a file to enable logging to (no logging if null or empty) + + The log file. + + + + Gets or sets the target assembly version. + + The version. + + + + Gets or sets a value indicating whether to merge types with identical names into one + + true if types with identical names should be merged into one; otherwise, false. + + + + Gets or sets a value indicating whether to disable symbol file generation + + true if debug symbols should be disabled; otherwise, false. + + + + Gets or sets a value indicating whether to copy assembly attributes (by default only the primary assembly attributes are copied) + + true if assembly attributes should be copied; otherwise, false. + + + + Gets or sets the assembly file to take attributes from + + The assembly file to take attributes from. + + + + Gets or sets a value indicating whether to allow multiple attributes (if type allows) + + true if multiple attributes should be allowed; otherwise, false. + + + + Gets or sets the specify target assembly kind (library, exe, winexe supported, default is same as first assembly) + + The kind of the target assembly to create. + + + + Gets or sets the target platform (v1, v1.1, v2, v4 supported) + + The target platform. + + + + Gets or sets a value indicating whether to merge XML documentation as well + + true if xml documents should be merged; otherwise, false. + + + + Gets or sets the paths to search directories for referenced assemblies (can be specified multiple times) + + The libs. + + + + Gets or sets a value indicating whether to set all types but the ones from the first assembly 'internal' + + + true if types in assemblies other than the primary assembly should + have their visibility modified to internal; otherwise, false. + + + + + Gets or sets a value indicating whether to set the key, but don't sign the assembly + + true if assembly should be delay signed; otherwise, false. + + + + Gets or sets the specified type for being duplicated in input assemblies + + The type to allow duplication of. + + + + Gets or sets a value indicating whether to duplicate resources in output assembly (by default they're ignored) + + true if duplicate resources should be allowed in the output assembly; otherwise, false. + + + + Gets or sets a value indicating whether to allow assemblies with Zero PeKind (but obviously only IL will get merged) + + true if assemblies with Zero PeKind should be allowed; otherwise, false. + + + + Gets or sets a value indicating whether to allow (and resolve) file wildcards (e.g. `*`.dll) in input assemblies + + true if file wildcards should be allowed in input assembly paths; otherwise, false. + + + + Gets or sets a value indicating whether to use as many CPUs as possible to merge the assemblies + + true if merging should use as many CPUs as possible in parallel; otherwise, false. + + + + Gets or sets a value indicating whether to pause execution once completed (good for debugging) + + true if execution should pause once completed; otherwise, false. + + + + Gets or sets a value indicating whether to show more logs + + true if more logs should be output during execution; otherwise, false. + + + + Contains functionality related to Inno Setup. + + In order to use the commands for this alias, Inno Setup will need to be installed on the machine where + the Cake script is being executed. See this page for information + on how to download/install. + + + + + + Compiles the given Inno Setup script using the default settings. + + The context. + The path to the .iss script file to compile. + + + InnoSetup("./src/Cake.iss"); + + + + + + Compiles the given Inno Setup script using the given . + + The context. + The path to the .iss script file to compile. + The to use. + + + InnoSetup("./src/Cake.iss", new InnoSetupSettings { + OutputDirectory = outputDirectory + }); + + + + + + Represents the possible quiet modes when compiling an Inno Setup script. + + + + + Quiet mode disabled. This is the default value. + + + + + Quiet mode. Only error messages are printed. + + + + + Quiet mode with progress. Same as quiet mode, but also displays progress. + + + + + The runner which executes Inno Setup. + + + + + Initializes a new instance of the class. + + The file system. + The registry. + The environment. + The process runner. + The tool locator. + + + + Runs iscc.exe with the specified script files and settings. + + The script file (.iss) to compile. + The settings. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Gets alternative file paths which the tool may exist in + + The settings. + The default tool path. + + + + Contains settings used by the . + + + + + Gets or sets the script compiler defines. Emulates #define public preprocessor directive. + + + + + Gets or sets whether or not the compiler should generate output (/O+ and /O- command line options, + overrides the script's Output attribute). + + + + + Gets or sets the output directory (/O<path> command line option, overrides the script's OutputDir + attribute). + + + + + Gets or sets the output base file name (/F<filename> command line option, overrides the script's + OutputBaseFilename attribute). + + + + + Gets or sets the script compiler's quiet mode (/Q and /Qp command line options). + + + + + Initializes a new instance of the class with the default settings. + + + + + Contains functionality related to ReSharper's InspectCode tool. + + In order to use the commands for this alias, include the following in your build.cake file to download and + install from NuGet.org, or specify the ToolPath within the class: + + #tool "nuget:?package=JetBrains.ReSharper.CommandLineTools" + + + + + + + Analyses the specified solution with Resharper's InspectCode. + + The context. + The solution. + + + InspectCode("./src/MySolution.sln"); + + + + + + Analyses the specified solution with Resharper's InspectCode, + using the specified settings. + + The context. + The solution. + The settings. + + + var buildOutputDirectory = Directory("./.build"); + var resharperReportsDirectory = buildOutputDirectory + Directory("_ReSharperReports"); + + var msBuildProperties = new Dictionary<string, string>(); + msBuildProperties.Add("configuration", configuration); + msBuildProperties.Add("platform", "AnyCPU"); + + InspectCode("./MySolution.sln", new InspectCodeSettings { + SolutionWideAnalysis = true, + Profile = "./MySolution.sln.DotSettings", + MsBuildProperties = msBuildProperties, + OutputFile = resharperReportsDirectory + File("inspectcode-output.xml"), + ThrowExceptionOnFindingViolations = true + }); + + + + + + Runs ReSharper's InspectCode using the specified config file. + + The context. + The config file. + + + InspectCodeFromConfig("./src/inspectcode.config"); + + + + + + InspectCode runner + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The logger. + + + + Analyses the specified solution, using the specified settings. + + The solution. + The settings. + + + + Runs ReSharper's InspectCode using the provided config file. + + The config file. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Contains settings used by . + + + + + Gets or sets the location InspectCode should write its output. + + The location that InspectCode should write its output + + + + Gets or sets a value indicating whether enable solution-wide analysis should be forced. + Default value is false. + + + true if solution-wide analysis should be enabled by force; otherwise, fault. + + + + + Gets or sets a value indicating whether disable solution-wide analysis should be forced. + Default value is false + + + true if solution-wide analysis should be disabled by force; otherwise, fault. + + + + + Gets or sets a filter to analyze only particular project(s) instead of the whole solution. + Supports wildcards. + + The filter to analyze only particular projects(s). + + + + Gets or sets MSBuild properties. + + The MSBuild properties to override + + + + Gets or sets a list of Resharper extensions which will be used. + + + + + Gets or sets the directory where caches will be stored. + The default is %TEMP%. + + The directory where caches will be stored. + + + + Gets or sets a value indicating whether the debug output should be enabled. + + + true if the debug output should be enabled; otherwise, false. + + + + + Gets or sets a value indicating whether all global, solution and project settings should be ignored. + Alias for disabling the settings layers GlobalAll, GlobalPerProduct, SolutionShared, SolutionPersonal, ProjectShared and ProjectPersonal. + + + + + Gets or sets a list of InspectCodeSettings which will be disabled. + + + + + Gets or sets the path to the file to use custom settings from. + + + + + Gets or sets a value indicating whether to throw an exception on finding violations + + + + + Represents Resharper's settings layers. + + + + + SettingsLayer: GlobalAll. + + + + + SettingsLayer: GlobalPerProduct. + + + + + SettingsLayer: SolutionShared. This layer is saved in %SolutionName%.sln.DotSettings + + + + + SettingsLayer: SolutionPersonal. This layer is saved in %SolutionName%.sln.DotSettings.user. + + + + + SettingsLayer: ProjectShared. This layer is saved in %ProjectName%.csproj.DotSettings. + + + + + SettingsLayer: ProjectPersonal. This layer is saved in %ProjectName%.csproj.DotSettings.user. + + + + + Contains functionality related to running Machine.Specifications tests. + + In order to use the commands for this alias, include the following in your build.cake file to download and + install from NuGet.org, or specify the ToolPath within the class: + + #tool "nuget:?package=mspec.runner.console" + + + + + + + Runs all MSpec tests in the assemblies matching the specified pattern. + + The context. + The pattern. + + + MSpec("./src/**/bin/Release/*.Tests.dll"); + + + + + + Runs all MSpec tests in the assemblies matching the specified pattern. + + The context. + The pattern. + The settings. + + + MSpec("./src/**/bin/Release/*.Tests.dll", + new MSpecSettings { + Parallelism = ParallelismOption.All, + HtmlReport = true, + NoAppDomain = true, + OutputDirectory = "./build" + }); + + + + + + Runs all MSpec tests in the specified assemblies. + + The context. + The assemblies. + + + MSpec(new []{ + "./src/Cake.Common.Tests/bin/Release/Cake.Common.Tests.dll", + "./src/Cake.Core.Tests/bin/Release/Cake.Core.Tests.dll", + "./src/Cake.NuGet.Tests/bin/Release/Cake.NuGet.Tests.dll", + "./src/Cake.Tests/bin/Release/Cake.Tests.dll" + }); + + + + + + Runs all MSpec tests in the specified assemblies. + + The context. + The assemblies. + + + var testAssemblies = GetFiles("./src/**/bin/Release/*.Tests.dll"); + MSpec(testAssemblies); + + + + + + Runs all MSpec tests in the specified assemblies. + + The context. + The assemblies. + The settings. + + + MSpec(new []{ + "./src/Cake.Common.Tests/bin/Release/Cake.Common.Tests.dll", + "./src/Cake.Core.Tests/bin/Release/Cake.Core.Tests.dll", + "./src/Cake.NuGet.Tests/bin/Release/Cake.NuGet.Tests.dll", + "./src/Cake.Tests/bin/Release/Cake.Tests.dll" + }, + new MSpecSettings { + Parallelism = ParallelismOption.All, + HtmlReport = true, + NoAppDomain = true, + OutputDirectory = "./build" + }); + + + + + + Runs all MSpec tests in the specified assemblies. + + The context. + The assemblies. + The settings. + + + var testAssemblies = GetFiles("./src/**/bin/Release/*.Tests.dll"); + MSpec(testAssemblies, + new MSpecSettings { + Parallelism = ParallelismOption.All, + HtmlReport = true, + NoAppDomain = true, + OutputDirectory = "./build" + }); + + + + + + The MSpec unit test runner. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Runs the tests in the specified assemblies, using the specified settings. + + The assembly paths. + The settings. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Contains settings used by . + + + + + Gets or sets the path to the filter file specifying contexts to execute(full type name, one per line). Takes precedence over + tags + + + + + Gets or sets a value indicating whether reporting for TeamCity CI integration(also auto - detected) + + + true to turn on TeamCity service messages; otherwise, false. + + + + + Gets or sets a value indicating whether to suppress colored console output + + + true disable color output; otherwise, false. + + + + + Gets or sets a value indicating whether an XML report should be generated. + + + true if an XML report should be generated; otherwise, false. + + + + + Gets or sets a value indicating whether an HTML report should be generated. + + + true if an HTML report should be generated; otherwise, false. + + + + + Gets or sets the name that should be used for the HTML and XML reports. + + The custom report name. + + + + Gets or sets Executes all specifications in contexts with these comma delimited tags. Ex. - i "foo,bar,foo_bar" + + + + + Gets or sets Exclude specifications in contexts with these comma delimited tags. Ex. - x "foo,bar,foo_bar" + + + + + Gets or sets a value indicating whether to show time-related information in HTML output + + + + + Gets or sets a value indicating whether to suppress progress output(print fatal errors, failures and summary) + + + + + Gets or sets a value indicating whether to print dotted progress output + + + + + Gets or sets a value indicating whether to wait 15 seconds for debugger to be attached + + + + + Gets or sets a value indicating whether to disable TeamCity autodetection + + + + + Gets or sets a value indicating whether to enable reporting for AppVeyor CI integration(also auto - detected) + + + + + Gets or sets a value indicating whether disable AppVeyor autodetection + + + + + Gets or sets output directory for reports + + + + + Gets or sets a value indicating whether to use X86 + + + + + The runner which executes NSIS. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Runs makensis.exe with the specified script files and settings. + + The script file (.nsi) to compile. + The settings. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Contains settings used by the . + + + + + Gets or sets the script compiler defines. + + + + + Gets or sets a value indicating whether to disable current directory change to that of the script file. + + + + + Gets or sets a value indicating whether to disable inclusion of the nsisconf.nsh file. + + + + + Contains functionality related to NSIS. + + In order to use the commands for this alias, NSIS will need to be installed on the machine where + the Cake script is being executed. See this page for information + on how to download/install. + + + + + + Compiles the given NSIS script using the default settings. + + The context. + The path to the .nsi script file to compile. + + + MakeNSIS("./src/Cake.nsi"); + + + + + + Compiles the given NSIS script using the given . + + The context. + The path to the .nsi script file to compile. + The to use. + + + MakeNSIS("./src/Cake.nsi", new MakeNSISSettings { + NoConfig = true + }); + + + + + + Contains functionality related to OpenCover. + + In order to use the commands for this alias, include the following in your build.cake file to download and + install from NuGet.org, or specify the ToolPath within the class: + + #tool "nuget:?package=OpenCover" + + + + + + + Runs OpenCover + for the specified action and settings. + + The context. + The action to run OpenCover for. + The OpenCover output file. + The settings. + + + OpenCover(tool => { + tool.XUnit2("./**/App.Tests.dll", + new XUnit2Settings { + ShadowCopy = false + }); + }, + new FilePath("./result.xml"), + new OpenCoverSettings() + .WithFilter("+[App]*") + .WithFilter("-[App.Tests]*")); + + + + + + Represents the logging output level for OpenCover. + + + + + Logs info messages and above (default) + + + + + This log level disables logging + + + + + Logs fatal messages + + + + + Logs error messages and above + + + + + Logs warn messages and above + + + + + Logs debug messages and above + + + + + Logs verbose messages and above + + + + + Logs all messages + + + + + The OpenCover runner. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Runs OpenCover with the specified settings. + + The context. + The action. + The output file path. + The settings. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Contains settings used by . + + + + + Gets the filters. + This represents the -filter option. + + The filters. + + + + Gets attribute filters used to exclude classes or methods. + This represents the -excludebyattribute option. + + The excluded attributes. + + + + Gets file filters used to excluded classes or methods. + This represents the -excludebyfile option. + + The excluded file filters. + + + + Gets or sets a value indicating whether or not auto-implemented properties should be skipped. + + + + + Gets or sets the register option + + + + + Gets or sets the Return target code offset to be used + + + + + Gets or sets a value indicating whether the OldStyle option for OpenCover should be used + + + + + Gets or sets a value indicating whether to merge the results with an existing file + + + + + Gets a list of directories where assemblies being loaded from will be ignored. + + + + + Gets or sets the log level of OpenCover. + + + + + Gets or sets a value indicating whether to merge the coverage results for an assembly + regardless of where it was loaded assuming it has the same file-hash in each location. + + + + + Gets or sets a value indicating whether the default filters should be applied or not. + + + + + Gets a list of directories with alternative locations to look for PDBs. + + + + + Gets or sets a value indicating whether if the value provided in the target parameter + is the name of a service rather than a name of a process. + + + + + Gets or sets a value indicating the path to the target directory. + If the target already contains a path, this parameter can be used + as additional path where PDBs may be found. + + + + + Initializes a new instance of the class. + + + + + Contains extensions for . + + + + + Adds the filter. + + The settings. + The filter. + The same instance so that multiple calls can be chained. + + + + Exclude a class or method by filter + that match attributes that have been applied. + + The settings. + The filter. + The same instance so that multiple calls can be chained. + + + + Exclude a class (or methods) by filter that match the filenames. + + The settings. + The filter. + The same instance so that multiple calls can be chained. + + + + Contains functionality related to ReportGenerator. + + In order to use the commands for this alias, include the following in your build.cake file to download and + install from NuGet.org, or specify the ToolPath within the class: + + #tool "nuget:?package=ReportGenerator" + + + + + + + Converts the coverage report specified by the glob pattern into human readable form. + + The context. + The glob pattern. + The output directory. + + + ReportGenerator("c:/temp/coverage/*.xml", "c:/temp/output"); + + + + + + Converts the coverage report specified by the glob pattern into human readable form using the specified settings. + + The context. + The glob pattern. + The output directory. + The settings. + + + ReportGenerator("c:/temp/coverage/*.xml", "c:/temp/output", new ReportGeneratorSettings(){ + ToolPath = "c:/tools/reportgenerator.exe" + }); + + + + + + Converts the specified coverage report into human readable form. + + The context. + The coverage report. + The output directory. + + + ReportGenerator("c:/temp/coverage/report.xml", "c:/temp/output"); + + + + + + Converts the specified coverage report into human readable form using the specified settings. + + The context. + The coverage report. + The output directory. + The settings. + + + ReportGenerator("c:/temp/coverage.xml", "c:/temp/output", new ReportGeneratorSettings(){ + ToolPath = "c:/tools/reportgenerator.exe" + }); + + + + + + Converts the specified coverage reports into human readable form. + + The context. + The coverage reports. + The output directory. + + + ReportGenerator(new[] { "c:/temp/coverage1.xml", "c:/temp/coverage2.xml" }, "c:/temp/output"); + + + + + + Converts the specified coverage reports into human readable form using the specified settings. + + The context. + The coverage reports. + The output directory. + The settings.> + + + ReportGenerator(new[] { "c:/temp/coverage1.xml", "c:/temp/coverage2.xml" }, "c:/temp/output", new ReportGeneratorSettings(){ + ToolPath = "c:/tools/reportgenerator.exe" + }); + + + + + + Represents ReportGenerator's output formats + + + + + Badge report. + + + + + Html report. + + + + + Html summary report. + + + + + Latex report. + + + + + Latex summary report. + + + + + Text summary report. + + + + + Xml report. + + + + + Xml summary report. + + + + + ReportGenerator runner. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Converts the specified coverage reports into human readable form according to the specified settings. + + The coverage reports. + The output directory. + The settings. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Contains settings used by . + + + + + Gets or sets the list of coverage reports that should be parsed. + + + + + Gets or sets the directories which contain the corresponding source code. + The source files are used if coverage report contains classes without path information. + + + + + Gets or sets the directory for storing persistent coverage information. + Can be used in future reports to show coverage evolution. + + + + + Gets or sets the list of assemblies that should be included or excluded in the report. + Exclusion filters take precedence over inclusion filters. + Wildcards are allowed. + + + + + Gets or sets the list of classes that should be included or excluded in the report. + Exclusion filters take precedence over inclusion filters. + Wildcards are allowed. + + + + + Gets or sets the verbosity level of the log messages. + + + + + Represents ReportGenerator's logging verbosity. + + + + + Verbosity: Verbose. + + + + + Verbosity: Info. + + + + + Verbosity: Error. + + + + + Contains functionality related to ReportUnit. + + In order to use the commands for this alias, include the following in your build.cake file to download and + install from NuGet.org, or specify the ToolPath within the class: + + #tool "nuget:?package=ReportUnit" + + + + + + + Converts the reports in the specified directory into human readable form. + + The context. + The input folder. + + Provide only an input folder, which will causes ReportUnit to search entire directory for report files. + Cake task: + + ReportUnit("c:/temp"); + + + + + + Converts the reports in the specified directory into human readable form. + + The context. + The input folder. + The ReportUnit settings. + + Provide an input folder and custom ToolPath, which will causes ReportUnit to search entire directory for report files. + Cake task: + + ReportUnit("c:/temp", new ReportUnitSettings(){ + ToolPath = "c:/tools/reportunit.exe" + }); + + + + + + Converts the reports in the specified directory into human readable form and outputs to specified folder. + + The context. + The input folder. + The output folder. + The ReportUnit settings. + + Provide both input and output folder, which will causes ReportUnit to search entire directory for report files, and output the results to specified location. + Cake task: + + ReportUnit("c:/temp/input", "c:/temp/output"); + + + + + + Converts the single specified report into human readable form and outputs to specified file. + + The context. + The input file. + The output file. + + Provide both input and output file, which will causes ReportUnit to transform only the specific file, and output to the specified location. + Cake task: + + ReportUnit("c:/temp/input", "c:/temp/output"); + + + + + + Converts the single specified report into human readable form and outputs to specified file. + + The context. + The input file. + The output file. + The ReportUnit settings. + + Provide both input and output file, which will causes ReportUnit to transform only the specific file, and output to the specified location. Also use a custom path for the reportunit.exe. + Cake task: + + ReportUnit("c:/temp/input", "c:/temp/output", new ReportUnitSettings(){ + ToolPath = "c:/tools/reportunit.exe" + }); + + + + + + ReportUnit runner. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Converts the reports from specified folder into human readable form according to the specified settings. + + The input folder. + The output folder. + The ReportUnit settings. + + + + Converts the specified report into human readable form according to the specified settings. + + The input file. + The output file. + The ReportUnit settings. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Contains settings used by . + + + + + Contains functionality related to SpecFlow. + + In order to use the commands for this alias, include the following in your build.cake file to download and + install from NuGet.org, or specify the ToolPath within the appropriate settings class: + + #tool "nuget:?package=SpecFlow" + + + + + + + Creates a report that shows the usage and binding status of the steps for the entire project. + You can use this report to find both unused code in the automation layer and scenario steps that have no definition yet. + See SpecFlow Documentation for more information. + + The context. + The path of the project file containing the feature files. + + + + Creates a report that shows the usage and binding status of the steps for the entire project. + You can use this report to find both unused code in the automation layer and scenario steps that have no definition yet. + See SpecFlow Documentation for more information. + + The context. + The path of the project file containing the feature files. + The settings. + + + + Creates a formatted HTML report of a test execution. + The report contains a summary about the executed tests and the result and also a detailed report for the individual scenario executions. + See SpecFlow Documentation for more information. + + The context. + The action to run SpecFlow for. Supported actions are: MSTest, NUnit3 and XUnit2 + The path of the project file containing the feature files. + + + + Creates a formatted HTML report of a test execution. + The report contains a summary about the executed tests and the result and also a detailed report for the individual scenario executions. + See SpecFlow Documentation for more information. + + The context. + The action to run SpecFlow for. Supported actions are: MSTest, NUNit, NUNit3, XUnit and XUnit2 + The path of the project file containing the feature files. + The settings. + + + + Contains settings used by . + + + + + Gets or sets the generated Output File. Optional. + Default: TestResult.html + + + + + Gets or sets the custom XSLT file to use, defaults to built-in stylesheet if not provided. Optional. + Default: not specified + + + + + Base class for all SpecFlow related tools + + The settings type + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Appends the SpecFlowSettings arguments to builder. + + The settings. + The argument builder. + + + + SpecFlow StepDefinition execution report runner. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Runs SpecFlow StepDefinitionReport with the specified settings. + + The project file path. + The settings. + + + + Contains settings used by . + + + + + Gets or sets the path for the compiled SpecFlow project. Optional. + Default: bin\Debug + + + + + SpecFlow MSTest execution report runner. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Runs SpecFlow Test Execution Report with the specified settings. + + The context. + The action. + The project file path. + The settings. + + + + Contains settings used by . + + + + + Gets or sets a value indicating whether exceptions from the + intercepted action should be rethrown after report generation + + + + + Contains functionality related to TextTransform. + + In order to use the commands for this alias, include the following in your build.cake file to download and + install from NuGet.org, or specify the ToolPath within the class: + + #tool "nuget:?package=Mono.TextTransform" + + + + + + + Transform a text template. + + + + // Transform a .tt template. + var transform = File("./src/Cake/Transform.tt"); + TransformTemplate(transform); + + + The context. + The source file. + + + + Transform a text template. + + + + // Transform a .tt template. + var transform = File("./src/Cake/Transform.tt"); + TransformTemplate(transform, new TextTransformSettings { OutputFile="./src/Cake/Transform.cs" }); + + + The context. + The source file. + The settings. + + + + The Text Transform runner. + + + + + Runs Text Transform with the specified files and settings. + + The source file. + The settings. + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Contains settings used by . + + + + + Gets or sets the assembly used for compiling and running the text template. + + + The assembly. + + + + + Gets or sets the output file for the transform. + + + The output file. + + + + + Gets or sets namespace that is used for compiling the text template. + + + The namespace. + + + + + Gets or sets a directory that contains the text templates sourced in the specified text template. + + + + + Gets or sets a directory to search for assemblies specified within the text template. + + + The reference path. + + + + + Contains functionality related to running VSTest unit tests. + + + + + Runs all VSTest unit tests in the assemblies matching the specified pattern. + + + + VSTest("./Tests/*.UnitTests.dll"); + + + The context. + The pattern. + + + + Runs all VSTest unit tests in the assemblies matching the specified pattern. + + + + VSTest("./Tests/*.UnitTests.dll", new VSTestSettings() { Logger = VSTestLogger.Trx }); + + + The context. + The pattern. + The settings. + + + + Runs all VSTest unit tests in the specified assemblies. + + + + var paths = new List<FilePath>() { "./assemblydir1", "./assemblydir2" }; + VSTest(paths); + + + The context. + The assembly paths. + + + + Runs all VSTest unit tests in the specified assemblies. + + + + var paths = new List<FilePath>() { "./assemblydir1", "./assemblydir2" }; + VSTest(paths, new VSTestSettings() { InIsolation = true }); + + + The context. + The assembly paths. + The settings. + + + + Target .NET Framework version to be used for test execution. + + + + + Use default .NET Framework version. + + + + + .NET Framework version: 3.5. + + + + + .NET Framework version: 4.0. + + + + + .NET Framework version: 4.5. + + + + + Target platform architecture to be used for test execution. + + + + + Use default platform architecture. + + + + + Platform architecture: x86. + + + + + Platform architecture: x64. + + + + + Platform architecture: ARM. + + + + + The VSTest unit test runner. + Used by Visual Studio 2012 and newer. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Runs the tests in the specified assembly. + + The assembly path. + The settings. + + + + Gets the name of the tool. + + The tool name. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Gets alternative file paths which the tool may exist in + + The settings. + The default tool path. + + + + Contains settings used by . + + + + + Gets or sets the settings filename to be used to control additional settings such as data collectors. + + + + + Gets or sets a value indicating whether the tests are executed in parallel. By default up to all available cores on the machine may be used. The number of cores to use may be configured using a settings file. + + + + + Gets or sets a value indicating whether to enable data diagnostic adapter 'CodeCoverage' in the test run. Default settings are used if not specified using settings file. + + + + + Gets or sets a value indicating whether to run tests within the vstest.console.exe process. + This makes vstest.console.exe process less likely to be stopped on an error in the tests, but tests might run slower. + Defaults to false. + + + true if running in isolation; otherwise, false. + + + + + Gets or sets a value overriding whether VSTest will use or skip the VSIX extensions installed (if any) in the test run. + + + + + Gets or sets a value that makes VSTest use custom test adapters from a given path (if any) in the test run. + + + + + Gets or sets the target platform architecture to be used for test execution. + + + + + Gets or sets the target .NET Framework version to be used for test execution. + + + + + Gets or sets an expression to run only tests that match, of the format <property>Operator<value>[|&<Expression>] + where Operator is one of =, != or ~ (Operator ~ has 'contains' + semantics and is applicable for string properties like DisplayName). + Parenthesis () can be used to group sub-expressions. + Examples: Priority=1 + (FullyQualifiedName~Nightly|Name=MyTestMethod) + + + + + Gets or sets a path which makes VSTest write diagnosis trace logs to specified file. + + + + + Gets or sets the name of your logger. Possible values: + - A blank string (or null): no logger + - "trx": Visual Studio's built-in logger + - "AppVeyor": AppVeyor's custom logger which is available only when building your solution on the AppVeyor platform + - any custom value: the name of your custom logger + + + + + Contains functionality related to VSTest settings. + + + + + Do not Log. + + The settings. + The same instance so that multiple calls can be chained. + + + + Log to a trx file. + + The settings. + The same instance so that multiple calls can be chained. + + + + Log to the AppVeyor logger (which is only available when building your solution on the AppVeyor platform). + + The settings. + The same instance so that multiple calls can be chained. + + + + Log to a custom logger. + + The settings. + The name of the logger + The same instance so that multiple calls can be chained. + + + + The VSWhere tool that finds all instances regardless if they are complete. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Finds all instances regardless if they are complete. + + The settings. + Installation paths for all instances. + + + + Contains settings used by . + + + + + The VSWhere tool that returns only the newest version and last installed. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Returns only the newest version and last installed. + + The settings. + Installation path of the newest or last install. + + + + Contains settings used by . + + + + + The VSWhere tool that finds Visual Studio products. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Also searches Visual Studio 2015 and older products. Information is limited. + + The settings. + Installation paths for all instances. + + + + Contains settings used by . + + + + + Gets or sets a value indicating whether to return only the newest version and last installed. + + true to find the newest version or last installed; otherwise, false. + + + + Gets the workload(s) or component(s) required when finding instances, immutable to always be empty per documentation. + + + + + The VSWhere tool that finds Visual Studio products. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Finds one ore more products. + + The settings. + Installation paths for all instances. + + + + Contains settings used by . + + + + + Gets or sets the products to find. Defaults to Community, Professional, and Enterprise. Specify "*" by itself to search all product instances installed. + + + + + Contains functionality related to running VSWhere tool. + + In order to use the commands for this alias, include the following in your build.cake file to download and + install from NuGet.org, or specify the ToolPath within the settings class: + + #tool "nuget:?package=vswhere" + + + + + + + Gets the legacy Visual Studio product installation paths. + + The context. + Get the latest version. + The Visual Studio installation path. + + + var legacyInstallationPath = VSWhereLegacy(true); + + + + + + Gets the legacy Visual Studio product installation paths. + + The context. + The settings. + The Visual Studio installation paths. + + + var legacyInstallationPaths = VSWhereLegacy(new VSWhereLegacySettings()); + + + + + + Gets the latest Visual Studio product installation path. + + The context. + The Visual Studio installation path. + + + var latestInstallationPath = VSWhereLatest(); + + + + + + Gets the latest Visual Studio product installation path. + + The context. + The settings. + The Visual Studio installation path. + + + var latestInstallationPath = VSWhereLatest(new VSWhereLatestSettings { Requires = "'Microsoft.Component.MSBuild" }); + + + + + + Gets all Visual Studio product installation paths. + + The context. + The Visual Studio installation paths. + + + var latestInstallationPaths = VSWhereAll(); + + + + + + Gets all Visual Studio product installation paths. + + The context. + The settings. + The Visual Studio installation paths. + + + var latestInstallationPaths = VSWhereAll(new VSWhereAllSettings { Requires = "'Microsoft.Component.MSBuild" }); + + + + + + Gets Visual Studio product installation paths. + + The context. + The products to find. + The Visual Studio installation paths. + + + var latestInstallationPaths = VSWhereProducts("Microsoft.VisualStudio.Product.BuildTools"); + + + + + + Gets Visual Studio product installation paths. + + The context. + The products to find. + The settings. + The Visual Studio installation paths. + + + var latestInstallationPaths = VSWhereProducts("Microsoft.VisualStudio.Product.BuildTools", new VSWhereProductSettings { Requires = "'Microsoft.Component.MSBuild" }); + + + + + + Base class for all settings for VSWhere tools. + + + + + Gets or sets the workload(s) or component(s) required when finding instances. + + + + + Gets or sets version range for instances to find. Example: ["15.0","16.0"] will find versions 15.*. + + + + + Gets or sets the name of the property to return. Defaults to "value" format. + + + + + Gets or sets a value indicating whether VSWhere should include prerelease installations + + + + + Initializes a new instance of the class. + + + + + Base class for all VSWhere related tools. + Used to locate Visual Studio. + + The settings type. + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator service. + + + + Gets the name of the tool. + + The tool name. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Gets alternative file paths which the tool may exist in + + The settings. + The default tool path. + + + + Runs VSWhere with supplied arguments and parses installation paths + + The settings. + The process argument builder. + The parsed file paths. + + + + Adds common arguments to the process builder. + + The settings. + The process argument builder. + The process argument builder. + + + + Represent release notes. + + + + + Gets the version. + + The version. + + + + Gets the release notes. + + The release notes. + + + + Gets the raw text of the line that was extracted from. + + The raw text of the Version line. + + + + Initializes a new instance of the class. + + The version. + The notes. + The raw text of the version line. + + + + Contains functionality related to release notes. + + + + + Parses all release notes. + + The context. + The file path. + All release notes. + + + var releaseNotes = ParseAllReleaseNotes("./ReleaseNotes.md"); + foreach(var releaseNote in releaseNotes) + { + Information("Version: {0}", releaseNote.Version); + foreach(var note in releaseNote.Notes) + { + Information("\t{0}", note); + } + } + + + + + + Parses the latest release notes. + + The context. + The file path. + The latest release notes. + + + var releaseNote = ParseReleaseNotes("./ReleaseNotes.md"); + Information("Version: {0}", releaseNote.Version); + foreach(var note in releaseNote.Notes) + { + Information("\t{0}", note); + } + + + + + + The release notes parser. + + + + + Initializes a new instance of the class. + + + + + Parses all release notes. + + The content. + All release notes. + + + + Represents a calculated file hash. + + + + + Initializes a new instance of the class. + + The file path. + The computed hash. + The algorithm used. + + + + Gets the algorithm used for the hash computation. + + + + + Gets the for the file. + + + + + Gets the raw computed hash. + + + + + Convert the file hash to a hexadecimal string. + + A hexadecimal string representing the computed hash. + + + + Represents a file hash operation. + + + + + Initializes a new instance of the class. + + The file system. + + + + Calculates the hash for a file using the given algorithm. + + The file path. + The algorithm to use. + A instance representing the calculated hash. + + + + The hash algorithm to use for a specific operation. + + + + + The MD5 hash algorithm. + + + + + The SHA256 hash algorithm. + + + + + The SHA512 hash algorithm. + + + + + Contains security related functionality, such as calculating file + hashes. + + + + + Calculates the hash for a given file using the default (SHA256) algorithm. + + The context. + The file path. + A instance representing the calculated hash. + + + Information( + "Cake executable file SHA256 hash: {0}", + CalculateFileHash("Cake.exe").ToHex()); + + + + + + Calculates the hash for a given file. + + The context. + The file path. + The hash algorithm to use. + A instance representing the calculated hash. + + + Information( + "Cake executable file MD5 hash: {0}", + CalculateFileHash("Cake.exe", HashAlgorithm.MD5).ToHex()); + + + + + + Speficies how will an XmlReader handle DTDs in the XML document. + + + + + The XmlReader will throw an exception when it finds a 'DOCTYPE' markup. + + + + + The DTD will be ignored. Any reference to a general entity in the XML document + will cause an exception (except for the predefined entities < > & " and '). + The DocumentType node will not be reported. + + + + + The DTD will be parsed and fully processed (entities expanded, default attributes added etc.) + + + + + Contains functionality related to XML XPath queries. + + + + + Gets the value of a target node. + + The value found at the given XPath query. + The context. + The target file. + The xpath of the node to get. + + + string autoFacVersion = XmlPeek("./src/Cake/packages.config", "/packages/package[@id='Autofac']/@version"); + + + + + + Get the value of a target node. + + The value found at the given XPath query. + The context. + The target file. + The xpath of the nodes to set. + Additional settings to tweak Xml Peek behavior. + + + XML document: + + + + + ]]> + + XmlPeek usage: + + string version = XmlPeek("./pastery.xml", "/pastery:pastery/pastery:cake/@price", + new XmlPeekSettings { + Namespaces = new Dictionary<string, string> {{ "pastery", "https://cakebuild.net/pastery" }} + }); + string unknown = XmlPeek("./pastery.xml", "/pastery:pastery/pastery:cake/@recipe", + new XmlPeekSettings { + Namespaces = new Dictionary<string, string> {{ "pastery", "https://cakebuild.net/pastery" }}, + SuppressWarning = true + }); + + + + + + Gets the value of a target node. + + The value found at the given XPath query (or the first, if multiple eligible nodes are found). + The source xml to transform. + The xpath of the nodes to set. + Additional settings to tweak Xml Peek behavior. + + + + Gets a XmlReaderSettings from a XmlPeekSettings + + The xml reader settings. + Additional settings to tweak Xml Peek behavior. + + + + Contains settings for + + + + + Gets or sets namespaces to include for xpath recognition. + + + + + Gets or sets a value indicating whether to preserve white space. + + + + + Gets or sets a value indicating whether to suppress the xpath not found warning. + + + + + Gets or sets a value that determines the processing of DTDs. + + + + + Initializes a new instance of the class. + + + + + Contains functionality related to XML XSL transformation. + + + + + Set the value of, or remove, target nodes. + + The context. + The target file. + The xpath of the nodes to set. + The value to set too. Leave blank to remove the selected nodes. + + + Change the server setting in the configuration from testhost.somecompany.com + to productionhost.somecompany.com. + + XML file: + + + + + + + + ]]> + + Cake Task: + + + { + var file = File("test.xml"); + XmlPoke(file, "/configuration/appSettings/add[@key = 'server']/@value", "productionhost.somecompany.com"); + }); + ]]> + + + + + Modify the noNamespaceSchemaLocation in an XML file. + + XML file: + + + + + ]]> + + Cake Task: + + + { + var file = File("test.xml"); + XmlPoke(file, "/Commands/@xsi:noNamespaceSchemaLocation", "d:\\Commands.xsd", new XmlPokeSettings { + Namespaces = new Dictionary { + { /* Prefix */ "xsi", /* URI */ "http://www.w3.org/2001/XMLSchema-instance" } + } + }); + }); + ]]> + + + + + Remove an app setting from a config file. + + XML file: + + + + + + + + + ]]> + + Cake Task: + + + { + var file = File("test.xml"); + XmlPoke(file, "/configuration/appSettings/add[@testing]", null); + }); + ]]> + + + + Credit to NAnt for the original example. + http://nant.sourceforge.net/release/latest/help/tasks/xmlpoke.html + + + + + Set the value of, or remove, target nodes. + + The context. + The target file. + The xpath of the nodes to set. + The value to set too. Leave blank to remove the selected nodes. + Additional settings to tweak Xml Poke behavior. + + + Change the server setting in the configuration from testhost.somecompany.com + to productionhost.somecompany.com. + + XML file: + + + + + + + + ]]> + + Cake Task: + + + { + var file = File("test.xml"); + XmlPoke(file, "/configuration/appSettings/add[@key = 'server']/@value", "productionhost.somecompany.com"); + }); + ]]> + + + + + Modify the noNamespaceSchemaLocation in an XML file. + + XML file: + + + + + ]]> + + Cake Task: + + + { + var file = File("test.xml"); + XmlPoke(file, "/Commands/@xsi:noNamespaceSchemaLocation", "d:\\Commands.xsd", new XmlPokeSettings { + Namespaces = new Dictionary { + { /* Prefix */ "xsi", /* URI */ "http://www.w3.org/2001/XMLSchema-instance" } + } + }); + }); + ]]> + + + + + Remove an app setting from a config file. + + XML file: + + + + + + + + + ]]> + + Cake Task: + + + { + var file = File("test.xml"); + XmlPoke(file, "/configuration/appSettings/add[@testing]", null); + }); + ]]> + + + + Credit to NAnt for the original example. + http://nant.sourceforge.net/release/latest/help/tasks/xmlpoke.html + + + + + Set the value of, or remove, target nodes. + + The context. + The source xml to transform. + The xpath of the nodes to set. + The value to set too. Leave blank to remove the selected nodes. + Resulting XML. + + + Change the server setting in the configuration from testhost.somecompany.com + to productionhost.somecompany.com. + + XML string: + + + + + + + + ]]> + + Cake Task: + + + { + var result = XmlPokeString(xmlString, "/configuration/appSettings/add[@key = 'server']/@value", "productionhost.somecompany.com"); + }); + ]]> + + + + + Modify the noNamespaceSchemaLocation in an XML file. + + XML string: + + + + + ]]> + + Cake Task: + + + { + var result = XmlPokeString(xmlString, "/Commands/@xsi:noNamespaceSchemaLocation", "d:\\Commands.xsd", new XmlPokeSettings { + Namespaces = new Dictionary { + { /* Prefix */ "xsi", /* URI */ "http://www.w3.org/2001/XMLSchema-instance" } + } + }); + }); + ]]> + + + + + Remove an app setting from a config file. + + XML string: + + + + + + + + + ]]> + + Cake Task: + + + { + var result = XmlPokeString(xmlString, "/configuration/appSettings/add[@testing]", null); + }); + ]]> + + + + Credit to NAnt for the original example. + http://nant.sourceforge.net/release/latest/help/tasks/xmlpoke.html + + + + + Set the value of, or remove, target nodes. + + The context. + The source xml to transform. + The xpath of the nodes to set. + The value to set too. Leave blank to remove the selected nodes. + Additional settings to tweak Xml Poke behavior. + Resulting XML. + + + Change the server setting in the configuration from testhost.somecompany.com + to productionhost.somecompany.com. + + XML string: + + + + + + + + ]]> + + Cake Task: + + + { + var result = XmlPokeString(xmlString, "/configuration/appSettings/add[@key = 'server']/@value", "productionhost.somecompany.com"); + }); + ]]> + + + + + Modify the noNamespaceSchemaLocation in an XML file. + + XML string: + + + + + ]]> + + Cake Task: + + + { + var result = XmlPokeString(xmlString, "/Commands/@xsi:noNamespaceSchemaLocation", "d:\\Commands.xsd", new XmlPokeSettings { + Namespaces = new Dictionary { + { /* Prefix */ "xsi", /* URI */ "http://www.w3.org/2001/XMLSchema-instance" } + } + }); + }); + ]]> + + + + + Remove an app setting from a config file. + + XML string: + + + + + + + + + ]]> + + Cake Task: + + + { + var result = XmlPokeString(xmlString, "/configuration/appSettings/add[@testing]", null); + }); + ]]> + + + + Credit to NAnt for the original example. + http://nant.sourceforge.net/release/latest/help/tasks/xmlpoke.html + + + + + Set the value of, or remove, target nodes. + + The source xml to transform. + The destination to write too. + The xpath of the nodes to set. + The value to set too. Leave blank to remove the selected nodes. + Additional settings to tweak Xml Poke behavior. + + + + Gets a XmlReaderSettings from a XmlPokeSettings + + The xml reader settings. + Additional settings to tweak Xml Poke behavior. + + + + Gets a XmlWriterSettings from a XmlPokeSettings + + Additional settings to tweak Xml Poke behavior. + The xml writer settings. + + + + Contains settings for + + + + + Gets or sets a value indicating whether to preserve white space. + + + + + Gets or sets namespaces to include for xpath recognition. + + + + + Gets or sets the type of text encoding to use. + + + + + Gets or sets a value that determines the processing of DTDs. + + + + + Initializes a new instance of the class. + + + + + Provides functionality to perform XML transformation + + + + + Performs XML XSL transformation + + XML style sheet. + XML data. + Transformed XML string. + + + + Performs XML XSL transformation + + XML style sheet. + XML data. + Settings for result file xml transformation. + Transformed XML string. + + + + Performs XML XSL transformation + + The file system. + Path to xml style sheet. + Path xml data. + Transformation result path. + + + + Performs XML XSL transformation + + The file system. + Path to xml style sheet. + Path xml data. + Transformation result path. + Settings for result file xml transformation. + + + + Performs XML XSL transformation + + XML style sheet. + XML data. + Transformation result. + Optional settings for result file xml writer + + + + Performs XML XSL transformation + + XML style sheet. + XML data. + Transformation result. + + + + Contains functionality related to XML XSL transformation. + + + + + Performs XML XSL transformation + + The context. + XML style sheet. + XML data. + Transformed XML string. + + + This example code will convert xml to a new xml strucure using XmlTransform alias. + + + + + + + + "; + + string xml = @" + + + "; + + var priceTag = XmlTransform(xsl, xml); + ]]> + + Result: + + 1.62]]> + + + + + + Performs XML XSL transformation + + The context. + XML style sheet. + XML data. + Optional settings for result file xml writer + Transformed XML string. + + + This example code will convert specific part of xml to plaintext using XmlTransform alias. + + + + + "; + + string xml = @" + + + "; + + var text = XmlTransform(xsl, xml, new XmlTransformationSettings { + ConformanceLevel = System.Xml.ConformanceLevel.Fragment, Encoding = Encoding.ASCII }); + ]]> + + + + + + Performs XML XSL transformation + + The context. + Path to xml style sheet. + Path xml data. + Transformation result path, will overwrite if exists. + + + This example code will convert the Cake nuspec into html using the XmlTransform alias. + XML stylesheet: + + + + + + + + <xsl:for-each select="package/p:metadata"> + <xsl:value-of select="p:id"/> + </xsl:for-each> + + + + +

+ +

+

Description

+ +
+

Files

+
    + +
  • +
    +
+ + +
+
+ ]]> +
+ XmlTransform usage: + + XmlTransform("./nuspec.xsl", "./nuspec/Cake.nuspec", "./Cake.htm"); + +
+
+ + + Performs XML XSL transformation + + The context. + Path to xml style sheet. + Path xml data. + Transformation result path. + Optional settings for result file xml writer + + + This example code will convert the Cake nuspec into html using the XmlTransform alias, + specifying that result should be indented and using Unicode encoding. + XML stylesheet: + + + + + + + + <xsl:for-each select="package/p:metadata"> + <xsl:value-of select="p:id"/> + </xsl:for-each> + + + + +

+ +

+

Description

+ +
+

Files

+
    + +
  • +
    +
+ + +
+
+ ]]> +
+ XmlTransform usage: + + XmlTransform("./nuspec.xsl", "./nuspec/Cake.nuspec", "./Cake.htm", + new XmlTransformationSettings { Indent = true, Encoding = Encoding.Unicode}); + +
+
+ + + Contains settings for + + + + + Gets or sets a value indicating whether overwriting existing file is permitted + + + + + Gets or sets a value indicating whether the XML writer should check to ensure that all characters in the document conform to the "2.2 Characters" section of the W3C XML 1.0 Recommendation. + + + + + Gets or sets a value indicating level of conformance that the XmlWriter checks the XML output for. + + + + + Gets or sets a value indicating whether the XmlWriter does not escape URI attributes. + + + + + Gets or sets the type of text encoding to use. + + + + + Gets or sets a value indicating whether to indent elements. + + + + + Gets or sets the character string to use when indenting. This setting is used when the Indent property is set to true. + + + + + Gets or sets a value that indicates whether the XmlWriter should remove duplicate namespace declarations when writing XML content. The default behavior is for the writer to output all namespace declarations that are present in the writer's namespace resolver. + + + + + Gets or sets the character string to use for line breaks. + + + + + Gets or sets a value indicating whether to normalize line breaks in the output. + + + + + Gets or sets a value indicating whether to write attributes on a new line. + + + + + Gets or sets a value indicating whether to omit an XML declaration. + + + + + Gets or sets a value indicating whether the XmlWriter will add closing tags to all unclosed element tags when the Close method is called + + + + + Initializes a new instance of the class. + + +
+
diff --git a/integration-test/tools/Cake.CoreCLR/Cake.Core.xml b/integration-test/tools/Cake.CoreCLR/Cake.Core.xml new file mode 100644 index 0000000..d206bb7 --- /dev/null +++ b/integration-test/tools/Cake.CoreCLR/Cake.Core.xml @@ -0,0 +1,6416 @@ + + + + Cake.Core + + + + + An attribute used to mark script aliases. + + + + + An attribute used for documentation of alias methods/properties. + + + + + Gets the category name. + + The category name. + + + + Initializes a new instance of the class. + + The category name. + + + + An attribute used to mark script method aliases. + + + + + An attribute used to identify a module implementation in an assembly. + + + + + Gets the module type. + + The module type. + + + + Initializes a new instance of the class. + + The module type. + + + + An attribute used to hint Cake about additional namespaces that need + to be imported for an alias to work. This attribute can mark an + extension method, the extension method class, or the assembly to provide a global set of imports + + + + + Gets the namespace. + + The namespace. + + + + Initializes a new instance of the class. + + The namespace. + + + + An attribute used to mark script property aliases. + + + + + Gets or sets a value indicating whether the result of the property alias method should be cached. + Indicates . + + + true if cache; otherwise, false. + + + + + This namespace contain attributes used by + the Cake engine and addins. + + + + + The default console implementation. + + + + + Gets or sets the foreground color. + + The foreground color. + + + + Gets or sets the background color. + + The background color. + + + + Writes the text representation of the specified array of objects to the + console output using the specified format information. + + A composite format string + An array of objects to write using format. + + + + Writes the text representation of the specified array of objects, followed + by the current line terminator, to the console output using the specified + format information. + + A composite format string + An array of objects to write using format. + + + + Writes the text representation of the specified array of objects to the + console error output using the specified format information. + + A composite format string + An array of objects to write using format. + + + + Writes the text representation of the specified array of objects, followed + by the current line terminator, to the console error output using the + specified format information. + + A composite format string + An array of objects to write using format. + + + + Sets the foreground and background console colors to their defaults. + + + + + Implementation of . + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The globber. + The log. + The arguments. + The process runner. + The registry. + The tool locator. + The data service. + + + + Gets the file system. + + + The file system. + + + + + Gets the environment. + + + The environment. + + + + + Gets the globber. + + + The globber. + + + + + Gets the log. + + + The log. + + + + + Gets the arguments. + + + The arguments. + + + + + Gets the process runner. + + + The process runner. + + + + + Gets the registry. + + + The registry. + + + + + Gets the tool locator. + + + The tool locator. + + + + + Gets the data context resolver. + + + + + Adapter to ensure correct conversion of Cake Context in derived classes. + + + + + Initializes a new instance of the class. + + The Cake Context + + + + Gets the file system. + + + The file system. + + + + + Gets the environment. + + + The environment. + + + + + Gets the globber. + + + The globber. + + + + + Gets the log. + + + The log. + + + + + Gets the arguments. + + + The arguments. + + + + + Gets the process runner. + + + The process runner. + + + + + Gets the registry. + + + The registry. + + + + + Gets the tool locator. + + + The tool locator. + + + + + Gets the data context resolver. + + + + + The Cake execution engine. + + + + + Gets all registered tasks. + + The registered tasks. + + + + Raised during setup before any tasks are run. + + + + + Raised during teardown after all other tasks have been run. + + + + + Raised before each task is run. + + + + + Raised after each task has been run. + + + + + Initializes a new instance of the class. + + The data service. + The log. + + + + Creates and registers a new Cake task. + + The name of the task. + + A used to configure the task. + + + + + Allows registration of an action that's executed before any tasks are run. + If setup fails, no tasks will be executed but teardown will be performed. + + The action to be executed. + + + + Allows registration of an action that's executed before any tasks are run. + If setup fails, no tasks will be executed but teardown will be performed. + + The data type. + The action to be executed. + + + + Allows registration of an action that's executed after all other tasks have been run. + If a setup action or a task fails with or without recovery, the specified teardown action will still be executed. + + The action to be executed. + + + + Allows registration of an action that's executed after all other tasks have been run. + If a setup action or a task fails with or without recovery, the specified teardown action will still be executed. + + The data type. + The action to be executed. + + + + Allows registration of an action that's executed before each task is run. + If the task setup fails, the task will not be executed but the task's teardown will be performed. + + The action to be executed. + + + + Allows registration of an action that's executed before each task is run. + If the task setup fails, the task will not be executed but the task's teardown will be performed. + + The data type. + The action to be executed. + + + + Allows registration of an action that's executed after each task has been run. + If a task setup action or a task fails with or without recovery, the specified task teardown action will still be executed. + + The action to be executed. + + + + Allows registration of an action that's executed after each task has been run. + If a task setup action or a task fails with or without recovery, the specified task teardown action will still be executed. + + The data type. + The action to be executed. + + + + Runs the specified target. + + The context. + The execution strategy. + The execution settings. + The resulting report. + + + + Represents the environment Cake operates in. + + + + + Gets or sets the working directory. + + The working directory. + + + + Gets the application root path. + + The application root path. + + + + Gets the platform Cake is running on. + + The platform Cake is running on. + + + + Gets the runtime Cake is running in. + + The runtime Cake is running in. + + + + Initializes a new instance of the class. + + The platform. + The runtime. + The log. + + + + Gets a special path. + + The path. + + A to the special path. + + + + + Gets an environment variable. + + The variable. + + The value of the environment variable. + + + + + Gets all environment variables. + + The environment variables as IDictionary<string, string> + + + + Gets whether or not the current operative system is 64 bit. + + + Whether or not the current operative system is 64 bit. + + + + + Determines whether the current machine is running Unix. + + + Whether or not the current machine is running Unix. + + + + + Gets the application root path. + + + The application root path. + + + + + Represent errors that occur during script execution. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message that describes the error. + + + + Initializes a new instance of the class. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Represents the platform that Cake is running on. + + + + + Gets the platform family. + + The platform family. + + + + Gets a value indicating whether or not the current platform is 64 bit. + + + true if current platform is 64 bit; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Contains information about tasks that were executed in a script. + + + + + Gets a value indicating whether the report is empty. + + + true if this report is empty; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Adds a task result to the report. + + The task. + The span. + + + + Adds a task result to the report with a specific category. + + The task. + The category. + The span. + + + + Adds a skipped task result to the report. + + The task. + + + + Adds a delegated task result to the report. + + The task. + The span. + + + + Adds a task result to the report. + + The task. + The category. + The span. + The execution status. + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Represents an entry in a . + + + + + Gets the task name. + + The name. + + + + Gets the task category. + + The category. + + + + Gets the duration the task ran for. + + The duration the task ran for. + + + + Gets the task execution status. + + The execution status. + + + + Initializes a new instance of the class. + + The name of the task. + The task category. + The duration. + + + + Initializes a new instance of the class. + + The name of the task. + The task category. + The duration. + The execution status. + + + + Represents a Cake report entry category. + + + + + Represents a normal task. + + + + + Represent a setup task. + + + + + Represent a teardown task. + + + + + The default report printer. + + + + + Initializes a new instance of the class. + + The console. + The context. + + + + Writes the specified report to a target. + + The report to write. + + + + Represents the runtime that Cake is running in. + + + + + Gets the build-time .NET framework version that is being used. + + + + + Gets the current executing .NET Runtime. + + The target framework. + + + + Gets the version of Cake executing the script. + + + + + Gets a value indicating whether we're running on CoreClr. + + + true if we're runnning on CoreClr; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + A represents a unit of work. + + + + + Gets the name of the task. + + The name of the task. + + + + Gets or sets the description of the task. + + The description of the task. + + + + Gets the task's dependencies. + + The task's dependencies. + + + + Gets the tasks that the task want to be a dependency of. + + The tasks that the task want to be a dependency of. + + + + Gets the task's criterias. + + The task's criterias. + + + + Gets or sets the error handler. + + The error handler. + + + + Gets or sets the error reporter. + + + + + Gets or sets the finally handler. + + + + + Gets the task's actions. + + The task's actions. + + + + Gets the task's actions that are run at execution time to additionally populate . + + The task's delayed actions actions. + + + + Gets or sets a value indicating whether gets the task's state if it will defer exceptions until the end of the task. + + The task's defer exceptions state. + + + + Initializes a new instance of the class. + + The name of the task. + + + + Executes the task using the specified context. + + The context. + Returned Task + + + + Contains extension methods for . + + + + + Adds a criteria that has to be fulfilled for the task to run. + + The task builder. + The criteria. + The same instance so that multiple calls can be chained. + + + + Adds a criteria that has to be fulfilled for the task to run. + + The task builder. + The criteria. + The message to display if the task was skipped due to the provided criteria. + The same instance so that multiple calls can be chained. + + + + Adds a criteria that has to be fulfilled for the task to run. + The criteria is evaluated when traversal of the graph occurs. + + The task builder. + The criteria. + The same instance so that multiple calls can be chained. + + + + Adds a criteria that has to be fulfilled for the task to run. + The criteria is evaluated when traversal of the graph occurs. + + The task builder. + The criteria. + The message to display if the task was skipped due to the provided criteria. + The same instance so that multiple calls can be chained. + + + + Adds a criteria that has to be fulfilled for the task to run. + The criteria is evaluated when traversal of the graph occurs. + + The task builder. + The criteria. + The same instance so that multiple calls can be chained. + + + + Adds a criteria that has to be fulfilled for the task to run. + The criteria is evaluated when traversal of the graph occurs. + + The task builder. + The criteria. + The message to display if the task was skipped due to the provided criteria. + The same instance so that multiple calls can be chained. + + + + Adds a criteria that has to be fulfilled for the task to run. + The criteria is evaluated when traversal of the graph occurs. + + The type of the data context. + The task builder. + The criteria. + The same instance so that multiple calls can be chained. + + + + Adds a criteria that has to be fulfilled for the task to run. + The criteria is evaluated when traversal of the graph occurs. + + The type of the data context. + The task builder. + The criteria. + The message to display if the task was skipped due to the provided criteria. + The same instance so that multiple calls can be chained. + + + + Creates a dependency between two tasks. + + The task builder. + The name of the dependent task. + The same instance so that multiple calls can be chained. + + + + Creates a dependency between two tasks. + + The task builder. + The name of the dependent task. + The same instance so that multiple calls can be chained. + + + + Makes the task a dependency of another task. + + The task builder. + The name of the task the current task will be a dependency of. + The same instance so that multiple calls can be chained. + + + + Defers all exceptions until after all actions for this task have completed + + The task builder. + The same instance so that multiple calls can be chained. + + + + Adds an indication to the task that a thrown exception will not halt the script execution. + + The task builder. + The same instance so that multiple calls can be chained. + + + + Adds an error handler to be executed if an exception occurs in the task. + + The builder. + The error handler. + The same instance so that multiple calls can be chained. + + + + Adds an error handler to be executed if an exception occurs in the task. + + The builder. + The error handler. + The same instance so that multiple calls can be chained. + + + + Adds a finally handler to be executed after the task have finished executing. + + The builder. + The finally handler. + The same instance so that multiple calls can be chained. + + + + Adds an error reporter for the task to be executed when an exception is thrown from the task. + This action is invoked before the error handler, but gives no opportunity to recover from the error. + + The builder. + The finally handler. + The same instance so that multiple calls can be chained. + + + + Adds an action to be executed when the task is invoked. + + The task builder. + The action. + The same instance so that multiple calls can be chained. + + + + Adds an action to be executed when the task is invoked. + + The type of the data context. + The task builder. + The action. + The same instance so that multiple calls can be chained. + + + + Adds an action to be executed when the task is invoked. + + The task builder. + The action. + The same instance so that multiple calls can be chained. + + + + Adds an action to be executed when the task is invoked. + + The task builder. + The action. + The same instance so that multiple calls can be chained. + + + + Adds an action to be executed when the task is invoked. + + The task builder. + The action. + The same instance so that multiple calls can be chained. + + + + Adds an action to be executed when the task is invoked. + + The type of the data context. + The task builder. + The action. + The same instance so that multiple calls can be chained. + + + + Adds an action to be executed when the task is invoked. + + The type of the data context. + The task builder. + The action. + The same instance so that multiple calls can be chained. + + + + Adds an action to be executed when the task is invoked. + + The type of the data context. + The task builder. + The action. + The same instance so that multiple calls can be chained. + + + + Adds an action to be executed foreach item in the list. + + The item type. + The task builder. + The items. + The action. + The same instance so that multiple calls can be chained. + + + + Adds an action to be executed foreach item in the list. + + The type of the data context. + The item type. + The task builder. + The items. + The action. + The same instance so that multiple calls can be chained. + + + + Adds an action to be executed foreach item in the list. + + The type of the data context. + The item type. + The task builder. + The items. + The action. + The same instance so that multiple calls can be chained. + + + + Adds an action to be executed foreach item in the list. + + The item type. + The task builder. + The items. + The action. + The same instance so that multiple calls can be chained. + + + + Adds an action to be executed foreach item returned by the items function. + This method will be executed the first time the task is executed. + + The item type. + The task builder. + The items. + The action. + The same instance so that multiple calls can be chained. + + + + Adds an action to be executed foreach item returned by the items function. + This method will be executed the first time the task is executed. + + The type of the data context. + The item type. + The task builder. + The items. + The action. + The same instance so that multiple calls can be chained. + + + + Adds an action to be executed foreach item returned by the items function. + This method will be executed the first time the task is executed. + + The type of the data context. + The item type. + The task builder. + The items. + The action. + The same instance so that multiple calls can be chained. + + + + Adds an action to be executed foreach item returned by the items function. + This method will be executed the first time the task is executed. + + The item type. + The task builder. + The items. + The action. + The same instance so that multiple calls can be chained. + + + + Adds a description to the task. + + The task builder. + The description. + The same instance so that multiple calls can be chained. + + + + Allows configuration to be performed for a registered . + + + + + Gets a read-only representation of the task being configured. + + + + + Represents a Cake task criteria. + + + + + Gets the criteria's predicate. + + The criteria's predicate. + + + + Gets the criteria's message. + + The criteria's message. + + + + Initializes a new instance of the class. + + The criteria's predicate. + The criteria's message if skipped. + is null. + + + + Represents a task dependency. + + + + + Gets the name of the dependency. + + + + + Gets a value indicating whether or not the dependency is required. + + + + + Initializes a new instance of the class. + + The name of the task. + Whether or not the dependency is required. + is null. + + + + The execution status of a . + + + + + The task was executed. + + + + + The task delegated execution. + + + + + The task was skipped. + + + + + Contains extension methods for . + + + + + Adds the dependency to the task's dependencies. + + The task. + The name of the dependency . + Whether or not the dependency is required. + The task already has the dependency. + + + + Adds the dependee to the task's dependees. + + The task. + The name of the dependee. + Whether or not the dependee is required. + The task already is a dependee. + + + + Adds the criteria to the task's criterias. + + The task. + The criteria's predicate. + The criteria's message if skipped. + + + + Sets the task's error handler. + + The task. + The error handler. + There can only be one error handler per task. + is null. + + + + Sets the task's error reporter. + + The task. + The error reporter. + There can only be one error reporter per task. + is null. + + + + Sets the task's finally handler. + + The task. + The finally handler. + There can only be one finally handler per task. + is null. + + + + Adds the action to the task's actions. + + The task. + The action. + is null. + + + + Adds the action to the task's delayed actions. + + The task. + The action. + is null. + + + + Sets the task's defer exceptions state. + + The task. + The defer exceptions state. + + + + Represents a container registry used to register types and instances with Cake. + + + + + Registers a type with the container registry. + + The implementation type to register. + A registration builder used to configure the registration. + + + + Registers an instance with the container registry. + + The instance's implementation type to register. + The instance to register. + A registration builder used to configure the registration. + + + + Represents a module responsible for + registering types and instances. + + + + + Performs custom registrations in the provided registrar. + + The container registrar. + + + + Represents a registration builder for a container. + + + + + Adds a registration type to the configuration. + + The registration type. + The same instance so that multiple calls can be chained. + + + + Adds a registration type that matches the implementation type. + + The same instance so that multiple calls can be chained. + + + + Configure the component so that every dependent component + gets the same, shared instance. This is the default lifetime scope. + + The same instance so that multiple calls can be chained. + + + + Configure the component so that every dependent component + gets a new, unique instance. + + The same instance so that multiple calls can be chained. + + + + Contains extension methods for . + + + + + Registers a type with the container registrar. + + The implementation type to register. + The container registrar. + A registration builder used to configure the registration. + + + + Adds a registration type to an existing registration builder. + + The registration type. + The registration builder. + The same instance so that multiple calls can be chained. + + + + The default implementation of the Cake configuration. + + + + + Initializes a new instance of the class. + + The initial configuration table. + + + + Gets the value that corresponds to the specified configuration key. + + The configuration key. + The value for the specified configuration key, or null if key doesn't exists. + + + + Implementation of the Cake configuration provider. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + + + + Creates a configuration from the provided arguments. + + The directory to look for the configuration file. + The arguments. + The created configuration. + + + + Represents the Cake configuration. + + + + + Gets the value that corresponds to the specified key. + + The key. + The value for the specified key, or null if key doesn't exists. + + + + The default execution strategy. + + + + + Initializes a new instance of the class. + + The log. + + + + Performs the setup. + + The action. + The context. + + + + Performs the teardown. + + The action. + The context. + + + + Executes the specified task. + + The task to execute. + The context. + Returned Task + + + + Skips the specified task. + + The task to skip. + The criteria that caused the task to be skipped. + + + + Executes the error reporter. + + The action. + The exception. + + + + Executes the error handler. + + The action. + The exception. + + + + Invokes the finally handler. + + The action. + + + + Performs the specified setup action before each task is invoked. + + The action. + The context. + + + + Performs the specified teardown action after each task is invoked. + + The action. + The context. + + + + The default Cake build log. + + + + + Gets or sets the verbosity. + + The verbosity. + + + + Initializes a new instance of the class. + + The console. + The verbosity. + + + + Writes the text representation of the specified array of objects to the + log using the specified verbosity, log level and format information. + + The verbosity. + The log level. + A composite format string. + An array of objects to write using format. + + + + Represents a log. + + + + + Gets or sets the verbosity. + + The verbosity. + + + + Writes the text representation of the specified array of objects to the + log using the specified verbosity, log level and format information. + + The verbosity. + The log level. + A composite format string. + An array of objects to write using format. + + + + Delegate representing lazy log action. + + Proxy to log. + + + + Delegate representing lazy log entry. + + A composite format string. + An array of objects to write using format. + + + + Contains extension methods for . + + + + + Writes an error message to the log using the specified format information. + + The log. + A composite format string. + An array of objects to write using format. + + + + Writes an error message to the log using the specified verbosity and format information. + + The log. + The verbosity. + A composite format string. + An array of objects to write using format. + + + + Writes an error message to the log using the specified verbosity and log message action. + Evaluates log message only if the verbosity is equal to or more verbose than the log's verbosity. + + The log. + The verbosity. + The log action. + + + + Writes an error message to the log using the specified log message action. + Evaluates log message only if the verbosity is equal to or more verbose than the log's verbosity. + + The log. + The log action. + + + + Writes an error message to the log using the specified value. + + The log. + The value. + + + + Writes an error message to the log using the specified string value. + + The log. + The value. + + + + Writes a warning message to the log using the specified format information. + + The log. + A composite format string. + An array of objects to write using format. + + + + Writes a warning message to the log using the specified verbosity and format information. + + The log. + The verbosity. + A composite format string. + An array of objects to write using format. + + + + Writes a warning message to the log using the specified log message action. + Evaluates log message only if the verbosity is equal to or more verbose than the log's verbosity. + + The log. + The log action. + + + + Writes a warning message to the log using the specified verbosity and log message action. + Evaluates log message only if the verbosity is equal to or more verbose than the log's verbosity. + + The log. + The verbosity. + The log action. + + + + Writes an warning message to the log using the specified value. + + The log. + The value. + + + + Writes an warning message to the log using the specified string value. + + The log. + The value. + + + + Writes an informational message to the log using the specified format information. + + The log. + A composite format string. + An array of objects to write using format. + + + + Writes an informational message to the log using the specified verbosity and format information. + + The log. + The verbosity. + A composite format string. + An array of objects to write using format. + + + + Writes an informational message to the log using the specified verbosity and log message action. + Evaluates log message only if the verbosity is equal to or more verbose than the log's verbosity. + + The log. + The verbosity. + The log action. + + + + Writes an informational message to the log using the specified log message action. + Evaluates log message only if the verbosity is equal to or more verbose than the log's verbosity. + + The log. + The log action. + + + + Writes an informational message to the log using the specified value. + + The log. + The value. + + + + Writes an informational message to the log using the specified string value. + + The log. + The value. + + + + Writes a verbose message to the log using the specified format information. + + The log. + A composite format string. + An array of objects to write using format. + + + + Writes a verbose message to the log using the specified verbosity and format information. + + The log. + The verbosity. + A composite format string. + An array of objects to write using format. + + + + Writes a verbose message to the log using the specified log message action. + Evaluates log message only if the verbosity is equal to or more verbose than the log's verbosity. + + The log. + The log action. + + + + Writes a verbose message to the log using the specified verbosity and log message action. + Evaluates log message only if the verbosity is equal to or more verbose than the log's verbosity. + + The log. + The verbosity. + The log action. + + + + Writes a verbose message to the log using the specified value. + + The log. + The value. + + + + Writes a verbose message to the log using the specified string value. + + The log. + The value. + + + + Writes a debug message to the log using the specified format information. + + The log. + A composite format string. + An array of objects to write using format. + + + + Writes a debug message to the log using the specified verbosity and format information. + + The log. + The verbosity. + A composite format string. + An array of objects to write using format. + + + + Writes a debug message to the log using the specified log message action. + Evaluates log message only if the verbosity is equal to or more verbose than the log's verbosity. + + The log. + The log action. + + + + Writes a debug message to the log using the specified verbosity and log message action. + Evaluates log message only if the verbosity is equal to or more verbose than the log's verbosity. + + The log. + The verbosity. + The log action. + + + + Writes a debug message to the log using the specified value. + + The log. + The value. + + + + Writes a debug message to the log using the specified string value. + + The log. + The value. + + + + Writes a message to the log using the specified verbosity, log level and log action delegate. + Evaluates log message only if the verbosity is equal to or more verbose than the log's verbosity. + + The log. + The verbosity. + The log level. + The log action. + + + + Represents a log level. + + + + + Severe errors that cause premature termination. + + + + + Other runtime errors or unexpected conditions. + + + + + Use of deprecated APIs, poor use of API, 'almost' errors, other runtime + situations that are undesirable or unexpected, but not necessarily "wrong". + + + + + Interesting runtime events. + + + + + Detailed information on the flow through the system. + + + + + Most detailed information. + + + + + A log that discards messages written to it. + + + + + Gets or sets the verbosity. + + The verbosity. + + + + Writes the text representation of the specified array of objects to the + log using the specified verbosity, log level and format information. + + The verbosity. + The log level. + A composite format string. + An array of objects to write using format. + + + + Represents verbosity. + + + + + Quiet verbosity. + + + + + Minimal verbosity. + + + + + Normal verbosity. + + + + + Verbose verbosity. + + + + + Diagnostic verbosity. + + + + + This namespace contain types that + enable you to implement custom logging support + and interact with build logs. + + + + + Contains settings related to execution of the script. + + + + + Gets the target to be executed. + + + + + Gets a value indicating whether or not to use the target exclusively. + + + + + Sets the target to be executed. + + The target. + The same instance so that multiple calls can be chained. + + + + Whether or not to use the target exclusively. + + The same instance so that multiple calls can be chained. + + + + Contains extension methods for . + + + + + Gets the tool directory path. + + The Cake configuration. + The default root path. + The environment. + The tool directory path. + + + + Gets the module directory path. + + The Cake configuration. + The default root path. + The environment. + The module directory path. + + + + Contains extension methods for . + + + + + Determines whether the specified platform is a Unix platform. + + The platform. + true if the platform is a Unix platform; otherwise false. + + + + Contains extension methods for . + + + + + Writes an empty line to the console output. + + The console to write to. + + + + Writes an empty line to the console error output. + + The console to write to. + + + + Contains extensions for . + + + + + Gets directories matching the specified filter and scope, with option to exclude hidden directories. + + The directory. + The filter. + The search scope. + Predicate used to filter directories based on file system information. + The directories matching the specified filter, scope and predicate. + + + + Gets directories matching the specified filter and scope, with option to exclude hidden directories. + + The directory. + The filter. + The search scope. + Predicate used to filter directories based on file system information. + Callback if directory gets filtered by . + The directories matching the specified filter, scope and predicate. + + + + Gets files matching the specified filter and scope. + + The directory. + The filter. + The search scope. + Predicate used to filter files based on file system information. + The files matching the specified filter, scope and predicate. + + + + Gets files matching the specified filter and scope. + + The directory. + The filter. + The search scope. + Predicate used to filter files based on file system information. + Callback if file gets filtered by . + The files matching the specified filter, scope and predicate. + + + + Contains extension methods for . + + + + + Gets the signature for a method. + + The method. + if set to true, include method namespace. + if set to true, include parameter namespace. + The method signature. + + + + Gets the full name of a method. + + The method to get the full name for. + The full name. + + + + Gets the namespace of the method. + + The method. + The namespace of the method. + + + + Contains extension methods for . + + + + + Appends the specified text to the argument builder. + + The builder. + The text to be appended. + The same instance so that multiple calls can be chained. + + + + Prepend the specified text to the argument builder. + + The builder. + The text to be prepended. + The same instance so that multiple calls can be chained. + + + + Formats and appends the specified text to the argument builder. + + The builder. + A composite format string. + An object array that contains zero or more objects to format. + The same instance so that multiple calls can be chained. + or is null. + is invalid.-or- The index of a format item is less than zero, or greater than or equal to the length of the array. + + + + Formats and prepends the specified text to the argument builder. + + The builder. + A composite format string. + An object array that contains zero or more objects to format. + The same instance so that multiple calls can be chained. + or is null. + is invalid.-or- The index of a format item is less than zero, or greater than or equal to the length of the array. + + + + Quotes and appends the specified text to the argument builder. + + The builder. + The text to be quoted and appended. + The same instance so that multiple calls can be chained. + + + + Quotes and prepends the specified text to the argument builder. + + The builder. + The text to be quoted and prepended. + The same instance so that multiple calls can be chained. + + + + Formats, quotes and appends the specified text to the argument builder. + + The builder. + A composite format string to be quoted and appended. + An object array that contains zero or more objects to format. + The same instance so that multiple calls can be chained. + or is null. + is invalid.-or- The index of a format item is less than zero, or greater than or equal to the length of the array. + + + + Formats, quotes and prepends the specified text to the argument builder. + + The builder. + A composite format string to be quoted and prepended. + An object array that contains zero or more objects to format. + The same instance so that multiple calls can be chained. + or is null. + is invalid.-or- The index of a format item is less than zero, or greater than or equal to the length of the array. + + + + Quotes and appends the specified argument to the argument builder. + + The builder. + The argument to be quoted and appended. + The same instance so that multiple calls can be chained. + + + + Quotes and prepends the specified argument to the argument builder. + + The builder. + The argument to be quoted and prepended. + The same instance so that multiple calls can be chained. + + + + Appends the specified secret text to the argument builder. + + The builder. + The secret text to be appended. + The same instance so that multiple calls can be chained. + + + + Prepends the specified secret text to the argument builder. + + The builder. + The secret text to be prepended. + The same instance so that multiple calls can be chained. + + + + Formats and appends the specified secret text to the argument builder. + + The builder. + A composite format string for the secret text to be appended. + An object array that contains zero or more objects to format. + The same instance so that multiple calls can be chained. + or is null. + is invalid.-or- The index of a format item is less than zero, or greater than or equal to the length of the array. + The same instance so that multiple calls can be chained. + + + + Formats and prepend the specified secret text to the argument builder. + + The builder. + A composite format string for the secret text to be prepended. + An object array that contains zero or more objects to format. + The same instance so that multiple calls can be chained. + or is null. + is invalid.-or- The index of a format item is less than zero, or greater than or equal to the length of the array. + The same instance so that multiple calls can be chained. + + + + Appends the specified secret text to the argument builder. + + The builder. + The secret argument to be appended. + The same instance so that multiple calls can be chained. + + + + Prepend the specified secret text to the argument builder. + + The builder. + The secret argument to be prepended. + The same instance so that multiple calls can be chained. + + + + Quotes and appends the specified secret text to the argument builder. + + The builder. + The secret text to be quoted and appended. + The same instance so that multiple calls can be chained. + + + + Quotes and prepends the specified secret text to the argument builder. + + The builder. + The secret text to be quoted and prepended. + The same instance so that multiple calls can be chained. + + + + Formats, quotes and appends the specified secret text to the argument builder. + + The builder. + A composite format string for the secret text to be quoted and appended. + An object array that contains zero or more objects to format. + The same instance so that multiple calls can be chained. + or is null. + is invalid.-or- The index of a format item is less than zero, or greater than or equal to the length of the array. + The same instance so that multiple calls can be chained. + + + + Formats, quotes and prepends the specified secret text to the argument builder. + + The builder. + A composite format string for the secret text to be quoted and prepended. + An object array that contains zero or more objects to format. + The same instance so that multiple calls can be chained. + or is null. + is invalid.-or- The index of a format item is less than zero, or greater than or equal to the length of the array. + The same instance so that multiple calls can be chained. + + + + Quotes and appends the specified secret text to the argument builder. + + The builder. + The secret argument to be appended. + The same instance so that multiple calls can be chained. + + + + Quotes and prepends the specified secret text to the argument builder. + + The builder. + The secret argument to be prepended. + The same instance so that multiple calls can be chained. + + + + Appends the specified switch to the argument builder. + + The builder. + The switch preceding the text. + The text to be appended. + The same instance so that multiple calls can be chained. + + + + Prepend the specified switch to the argument builder. + + The builder. + The switch preceding the text. + The text to be prepended. + The same instance so that multiple calls can be chained. + + + + Appends the specified switch to the argument builder. + + The builder. + The switch preceding the text. + The separator between the switch and argument. + The text to be appended. + The same instance so that multiple calls can be chained. + + + + Prepend the specified switch to the argument builder. + + The builder. + The switch preceding the text. + The separator between the switch and argument. + The text to be prepended. + The same instance so that multiple calls can be chained. + + + + Quotes and appends the specified text to the argument builder. + + The builder. + The switch preceding the text. + The text to be quoted and appended. + The same instance so that multiple calls can be chained. + + + + Quotes and prepends the specified text to the argument builder. + + The builder. + The switch preceding the text. + The text to be quoted and prepended. + The same instance so that multiple calls can be chained. + + + + Quotes and appends the specified text to the argument builder. + + The builder. + The switch preceding the text. + The separator between the switch and argument. + The text to be quoted and appended. + The same instance so that multiple calls can be chained. + + + + Quotes and prepends the specified text to the argument builder. + + The builder. + The switch preceding the text. + The separator between the switch and argument. + The text to be quoted and prepended. + The same instance so that multiple calls can be chained. + + + + Quotes and appends the specified argument to the argument builder. + + The builder. + The switch preceding the text. + The argument to be quoted and appended. + The same instance so that multiple calls can be chained. + + + + Quotes and prepends the specified argument to the argument builder. + + The builder. + The switch preceding the text. + The argument to be quoted and prepended. + The same instance so that multiple calls can be chained. + + + + Quotes and appends the specified argument to the argument builder. + + The builder. + The switch preceding the text. + The separator between the switch and argument. + The argument to be quoted and appended. + The same instance so that multiple calls can be chained. + + + + Quotes and prepends the specified argument to the argument builder. + + The builder. + The switch preceding the text. + The separator between the switch and argument. + The argument to be quoted and prepended. + The same instance so that multiple calls can be chained. + + + + Appends the specified secret text to the argument builder. + + The builder. + The switch preceding the text. + The secret text to be appended. + The same instance so that multiple calls can be chained. + + + + Prepend the specified secret text to the argument builder. + + The builder. + The switch preceding the text. + The secret text to be prepended. + The same instance so that multiple calls can be chained. + + + + Appends the specified secret text to the argument builder. + + The builder. + The switch preceding the text. + The separator between the switch and argument + The secret text to be appended. + The same instance so that multiple calls can be chained. + + + + Prepend the specified secret text to the argument builder. + + The builder. + The switch preceding the text. + The separator between the switch and argument + The secret text to be prepended. + The same instance so that multiple calls can be chained. + + + + Appends the specified secret text to the argument builder. + + The builder. + The switch preceding the text. + The secret argument to be appended. + The same instance so that multiple calls can be chained. + + + + Prepend the specified secret text to the argument builder. + + The builder. + The switch preceding the text. + The secret argument to be prepended. + The same instance so that multiple calls can be chained. + + + + Appends the specified secret text to the argument builder. + + The builder. + The switch preceding the text. + The separator between the switch and argument + The secret argument to be appended. + The same instance so that multiple calls can be chained. + + + + Prepend the specified secret text to the argument builder. + + The builder. + The switch preceding the text. + The separator between the switch and argument + The secret argument to be prepended. + The same instance so that multiple calls can be chained. + + + + Quotes and appends the specified secret text to the argument builder. + + The builder. + The switch preceding the text. + The secret text to be quoted and appended. + The same instance so that multiple calls can be chained. + + + + Quotes and prepend the specified secret text to the argument builder. + + The builder. + The switch preceding the text. + The secret text to be quoted and prepended. + The same instance so that multiple calls can be chained. + + + + Quotes and appends the specified secret text to the argument builder. + + The builder. + The switch preceding the text. + The separator between the switch and argument. + The secret text to be quoted and appended. + The same instance so that multiple calls can be chained. + + + + Quotes and prepends the specified secret text to the argument builder. + + The builder. + The switch preceding the text. + The separator between the switch and argument. + The secret text to be quoted and prepended. + The same instance so that multiple calls can be chained. + + + + Quotes and appends the specified secret text to the argument builder. + + The builder. + The switch preceding the text. + The secret argument to be appended. + The same instance so that multiple calls can be chained. + + + + Quotes and prepends the specified secret text to the argument builder. + + The builder. + The switch preceding the text. + The secret argument to be prepended. + The same instance so that multiple calls can be chained. + + + + Quotes and appends the specified secret text to the argument builder. + + The builder. + The switch preceding the text. + The separator between the switch and argument + The secret argument to be appended. + The same instance so that multiple calls can be chained. + + + + Quotes and prepend the specified secret text to the argument builder. + + The builder. + The switch preceding the text. + The separator between the switch and argument + The secret argument to be prepended. + The same instance so that multiple calls can be chained. + + + + Indicates whether a is null or renders empty. + + The builder. + true if refers to a null or empty ; + false if the refers to non null or empty + + + + Copies all the arguments of the source to target . + + The argument builder to copy from.. + The argument builder to copy to. + + + + Contains extension methods for . + + + + + Starts a process using the specified information. + + The process runner. + The file name such as an application or document with which to start the process. + A process handle. + + + + Contains extension methods for . + + + + + Sets the arguments for the process + + The settings. + The action used to set arguments. + The same instance so that multiple calls can be chained. + + + + Sets the working directory for the process to be started. + + The process settings. + The working directory for the process to be started. + The same instance so that multiple calls can be chained. + + + + Sets a value indicating whether the output of an application is written to the stream. + + The process settings. + true if output should be written to ; otherwise, false. The default is false. + The same instance so that multiple calls can be chained. + + + + Sets the optional timeout for process execution + + The process settings. + The timeout duration + The same instance so that multiple calls can be chained. + + + + Contains extension methods for . + + + + + Quotes the specified . + + The string to quote. + A quoted string. + + + + Unquote the specified . + + The string to unquote. + An unquoted string. + + + + Splits the into lines. + + The string to split. + The lines making up the provided string. + + + + Normalizes the line endings in a . + + The string to normalize line endings in. + A with normalized line endings. + + + + Contains extension methods for . + + + + + Determines whether the specified is static. + + The type. + Whether or not the specified type is static + + + + Gets the full name of a . + + The type. + if set to true then namespace is included. + The full name of a type + + + + Gets whether or not a given is a subclass of an raw/open generic. + + The type to check + The open generic to test + typeof(Nullable<int>).IsSubclassOfRawGeneric(typeof(Nullable<>)); + Returns true if the type is a subtype of a raw generic, else false + + + + Extensions for + + + + + Extracts query string of + + The URI + Collection of parameters and it's values + + + + Represents arguments passed to script. + + + + + Determines whether or not the specified argument exist. + + The argument name. + + true if the argument exist; otherwise false. + + + + + Gets an argument. + + The argument name. + The argument value. + + + + Represents a context for scripts and script aliases. + + + + + Gets the file system. + + The file system. + + + + Gets the environment. + + The environment. + + + + Gets the globber. + + The globber. + + + + Gets the log. + + The log. + + + + Gets the arguments. + + The arguments. + + + + Gets the process runner. + + The process runner. + + + + Gets the registry. + + The registry. + + + + Gets the tool locator. + + The tool locator. + + + + Gets the data context resolver. + + + + + Represents a data context resolver. + + + + + Gets the data of the specified type. + + The data type. + The value of the data. + + + + Represents a data context service. + + + + + Adds the data of the specified type. + + The data type. + The value of the data. + + + + Represents the Cake engine. + + + + + Gets all registered tasks. + + The registered tasks. + + + + Raised during setup before any tasks are run. + + + + + Raised during teardown after all other tasks have been run. + + + + + Raised before each task is run. + + + + + Raised after each task has been run. + + + + + Registers a new task. + + The name of the task. + A . + + + + Allows registration of an action that's executed before any tasks are run. + If setup fails, no tasks will be executed but teardown will be performed. + + The action to be executed. + + + + Allows registration of an action that's executed before any tasks are run. + If setup fails, no tasks will be executed but teardown will be performed. + + The data type. + The action to be executed. + + + + Allows registration of an action that's executed after all other tasks have been run. + If a setup action or a task fails with or without recovery, the specified teardown action will still be executed. + + The action to be executed. + + + + Allows registration of an action that's executed after all other tasks have been run. + If a setup action or a task fails with or without recovery, the specified teardown action will still be executed. + + The data type. + The action to be executed. + + + + Runs the specified target using the specified . + + The context. + The execution strategy. + The execution settings. + The resulting report. + + + + Allows registration of an action that's executed before each task is run. + If the task setup fails, the task will not be executed but the task's teardown will be performed. + + The action to be executed. + + + + Allows registration of an action that's executed before each task is run. + If the task setup fails, the task will not be executed but the task's teardown will be performed. + + The data type. + The action to be executed. + + + + Allows registration of an action that's executed after each task has been run. + If a task setup action or a task fails with or without recovery, the specified task teardown action will still be executed. + + The action to be executed. + + + + Allows registration of an action that's executed after each task has been run. + If a task setup action or a task fails with or without recovery, the specified task teardown action will still be executed. + + The data type. + The action to be executed. + + + + Represents the environment Cake operates in. + + + + + Gets or sets the working directory. + + The working directory. + + + + Gets the application root path. + + The application root path. + + + + Gets a special path. + + The path. + A to the special path. + + + + Gets an environment variable. + + The variable. + The value of the environment variable. + + + + Gets all environment variables. + + The environment variables as IDictionary<string, string> + + + + Gets the platform Cake is running on. + + The platform Cake is running on. + + + + Gets the runtime Cake is running in. + + The runtime Cake is running in. + + + + Gets whether or not the current operative system is 64 bit. + + Whether or not the current operative system is 64 bit. + + + + Determines whether the current machine is running Unix. + + Whether or not the current machine is running Unix. + + + + Gets the application root path. + + The application root path. + + + + Extension methods for ICakeEnvironment + + + + + Expands the environment variables in the text. Variables shoud be quoted with %. + + The cake environment interface + A string containing the names of zero or more environment variables. + A string with each environment variable replaced by its value. + + + + Represents the platform that Cake is running on. + + + + + Gets the platform family. + + The platform family. + + + + Gets a value indicating whether or not the current operative system is 64 bit. + + + true if current operative system is 64 bit; otherwise, false. + + + + + Represents a report printer. + + + + + Writes the specified report to a target. + + The report to write. + + + + Represents the runtime that Cake is running in. + + + + + Gets the build-time .NET framework version that is being used. + + + + + Gets the current executing .NET Runtime. + + The target framework. + + + + Gets the version of Cake executing the script. + + The Cake.exe version. + + + + Gets a value indicating whether we're running on CoreClr. + + + true if we're runnning on CoreClr; otherwise, false. + + + + + Provides descriptive properties about a cake task. + + + + + Gets the name of the task. + + The name of the task. + + + + Gets the description of the task. + + The description of the task. + + + + Gets the task's dependencies. + + The task's dependencies. + + + + Gets the tasks that the task want to be a dependency of. + + The tasks that the task want to be a dependency of. + + + + Represents console output. + + + + + Gets or sets the foreground color. + + The foreground color + + + + Gets or sets the background color. + + The background color + + + + Writes the text representation of the specified array of objects to the + console output using the specified format information. + + A composite format string + An array of objects to write using format. + + + + Writes the text representation of the specified array of objects, followed + by the current line terminator, to the console output using the specified + format information. + + A composite format string + An array of objects to write using format. + + + + Writes the text representation of the specified array of objects to the + console error output using the specified format information. + + A composite format string + An array of objects to write using format. + + + + Writes the text representation of the specified array of objects, followed + by the current line terminator, to the console error output using the + specified format information. + + A composite format string + An array of objects to write using format. + + + + Sets the foreground and background console colors to their defaults. + + + + + Represents a task execution strategy. + + + + + Performs the setup. + + The action. + The context. + + + + Performs the teardown. + + The action. + The context. + + + + Executes the specified task. + + The task to execute. + The context. + Returned Task + + + + Skips the specified task. + + The task to skip. + The criteria that caused the task to be skipped. + + + + Executes the error reporter. + + The action. + The exception. + + + + Executes the error handler. + + The action. + The exception. + + + + Invokes the finally handler. + + The action. + + + + Performs the specified setup action before each task is invoked. + + The action. + The context. + + + + Performs the specified teardown action after each task is invoked. + + The action. + The context. + + + + Represents a quoted argument. + + + + + Initializes a new instance of the class. + + The argument. + + + + Render the arguments as a . + Sensitive information will be included. + + A string representation of the argument. + + + + Renders the argument as a . + Sensitive information will be redacted. + + A safe string representation of the argument. + + + + Returns a that represents the current object. + + A string that represents the current object. + + + + Represents a secret argument. + + + + + Initializes a new instance of the class. + + The argument. + + + + Render the arguments as a . + The secret text will be included. + + A string representation of the argument. + + + + Renders the argument as a . + The secret text will be redacted. + + A safe string representation of the argument. + + + + Returns a that represents the current object. + + A string that represents the current object. + + + + Represents a argument preceded by a switch. + + + + + Initializes a new instance of the class. + + The switch. + The argument. + The separator between the and the . + + + + Render the arguments as a . + Sensitive information will be included. + + + A string representation of the argument. + + + + + Renders the argument as a . + The secret text will be redacted. + + A safe string representation of the argument. + + + + Returns a string that represents the current object. + + + A string that represents the current object. + + + + + Represents a text argument. + + + + + Initializes a new instance of the class. + + The text. + + + + Render the arguments as a . + Sensitive information will be included. + + + A string representation of the argument. + + + + + Renders the argument as a . + Sensitive information will be redacted. + + + A safe string representation of the argument. + + + + + Returns a that represents the current object. + + A string that represents the current object. + + + + This namespace contain types + used to compose process arguments in a safe way. + + + + + Represents a directory path. + + + + + Initializes a new instance of the class. + + The path. + + + + Gets the name of the directory. + + The directory name. + + If this is passed a file path, it will return the file name. + This is by-and-large equivalent to how DirectoryInfo handles this scenario. + If we wanted to return the *actual* directory name, we'd need to pull in IFileSystem, + and do various checks to make sure things exists. + + + + + Combines the current path with the file name of a . + + The path. + A combination of the current path and the file name of the provided . + + + + Combines the current path with a . + The provided must be relative. + + The path. + A combination of the current path and the provided . + + + + Combines the current path with another . + The provided must be relative. + + The path. + A combination of the current path and the provided . + + + + Makes the path absolute to another (absolute) path. + + The path. + An absolute path. + + + + Makes the path absolute (if relative) using the current working directory. + + The environment. + An absolute path. + + + + Collapses a containing ellipses. + + A collapsed . + + + + Performs an implicit conversion from to . + + The path. + A . + + + + Performs a conversion from to . + + The path. + A . + + + + Get the relative path to another directory. + + The target directory path. + A . + + + + Get the relative path to another file. + + The target file path. + A . + + + + A collection of . + + + + + Gets the number of directories in the collection. + + The number of directories in the collection. + + + + Initializes a new instance of the class. + + The comparer. + + + + Initializes a new instance of the class. + + The paths. + The comparer. + is null. + + + + Adds the specified path to the collection. + + The path to add. + + true if the path was added; false if the path was already present. + + + + + Adds the specified paths to the collection. + + The paths to add. + + + + Removes the specified path from the collection. + + The path to remove. + + true if the path was removed; false if the path was not found in the collection. + + + + + Removes the specified paths from the collection. + + The paths to remove. + + + Adds a path to the collection. + The collection. + The path to add. + A new that contains the provided path as + well as the paths in the original collection. + + + Adds multiple paths to the collection. + The collection. + The paths to add. + A new with the content of both collections. + + + + Removes a path from the collection. + + The collection. + The path to remove. + A new that do not contain the provided path. + + + + Removes multiple paths from the collection. + + The collection. + The paths to remove. + A new that do not contain the provided paths. + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through a collection. + + + An that can be used to iterate through the collection. + + + + + Contains extension methods for . + + + + + Opens the file using the specified options. + + The file. + The mode. + A to the file. + + + + Opens the file using the specified options. + + The file. + The mode. + The access. + A to the file. + + + + Opens the file for reading. + + The file. + A to the file. + + + + Opens the file for writing. + If the file already exists, it will be overwritten. + + The file to be opened. + A to the file. + + + + Enumerates line in file + + The file to be read from. + The encoding that is applied to the content of the file. + A of file line content + + + + Represents a file path. + + + + + Gets a value indicating whether this path has a file extension. + + + true if this file path has a file extension; otherwise, false. + + + + + Initializes a new instance of the class. + + The path. + + + + Gets the directory part of the path. + + The directory part of the path. + + + + Gets the filename. + + The filename. + + + + Gets the filename without its extension. + + The filename without its extension. + + + + Gets the file extension. + + The file extension. + + + + Changes the file extension of the path. + + The new extension. + A new with a new extension. + + + + Appends a file extension to the path. + + The extension. + A new with an appended extension. + + + + Makes the path absolute (if relative) using the current working directory. + + The environment. + An absolute path. + + + + Makes the path absolute (if relative) using the specified directory path. + + The path. + An absolute path. + + + + Collapses a containing ellipses. + + A collapsed . + + + + Performs an implicit conversion from to . + + The path. + A . + + + + Performs a conversion from to . + + The path. + A . + + + + Get the relative path to another directory. + + The target directory path. + A . + + + + Get the relative path to another file. + + The target file path. + A . + + + + A collection of . + + + + + Gets the number of files in the collection. + + The number of files in the collection. + + + + Initializes a new instance of the class. + + The comparer. + + + + Initializes a new instance of the class. + + The paths. + The comparer. + + + + Adds the specified path to the collection. + + The path to add. + + true if the path was added; false if the path was already present. + + + + + Adds the specified paths to the collection. + + The paths to add. + + + + Removes the specified path from the collection. + + The path to remove. + + true if the path was removed; false if the path was not found in the collection. + + + + + Removes the specified paths from the collection. + + The paths to remove. + + + Adds a path to the collection. + The collection. + The path to add. + A new that contains the provided path as + well as the paths in the original collection. + + + Adds multiple paths to the collection. + The collection. + The paths to add. + A new with the content of both collections. + + + + Removes a path from the collection. + + The collection. + The path to remove. + A new that do not contain the provided path. + + + + Removes multiple paths from the collection. + + The collection. + The paths to remove. + A new that do not contain the provided paths. + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through a collection. + + + An that can be used to iterate through the collection. + + + + + A physical file system implementation. + + + + + Gets a instance representing the specified path. + + The path. + A instance representing the specified path. + + + + Gets a instance representing the specified path. + + The path. + A instance representing the specified path. + + + + Contains extensions for . + + + + + Determines if a specified exist. + + The file system. + The path. + Whether or not the specified file exist. + + + + Determines if a specified exist. + + The file system. + The path. + Whether or not the specified directory exist. + + + + The file system globber. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + + + + Returns instances matching the specified pattern. + + The pattern to match. + The predicate used to filter directories based on file system information. + + instances matching the specified pattern. + + + + + Contains extensions for . + + + + + Gets all files matching the specified pattern. + + The globber. + The pattern. + The files matching the specified pattern. + + + + Gets all directories matching the specified pattern. + + The globber. + The pattern. + The directories matching the specified pattern. + + + + Returns instances matching the specified pattern. + + The globber. + The pattern to match. + + instances matching the specified pattern. + + + + + Gets the next GlobToken from the context + + The Peek'd token + + + + Accepts the current GlobToken and loads the next into CurrentToken + + + + + Accepts the CurrentToken if it is of the specified TokenKind(s), and fetches the next token. + + The types of acceptable + + + + Gets the next token from the pattern. + + The next GlobToken. + + + + Peeks the next token from the pattern. + + The peek'd GlobToken. + + + + Loads the tokens into the token queue. + + A queue of tokens representing the pattern. + + + + Searches the private dictionary for a set of tokens matching the current (and future) character position(s). + Performs a greedy match of the keys in the dictionary against the remaining pattern. + + The GlobTokenKind associated with the mathing entry, or GlobTokenKind.Identifier if none were found. + + + + Determine what GlobTokenKind a period represents given the context + + The appropriate GlobTokenKind depending on the next character + + + + Represents a directory. + + + + + Gets the path to the directory. + + The path. + + + + Creates the directory. + + + + + Moves the directory to the specified destination path. + + The destination path. + + + + Deletes the directory. + + Will perform a recursive delete if set to true. + + + + Gets directories matching the specified filter and scope. + + The filter. + The search scope. + Directories matching the filter and scope. + + + + Gets files matching the specified filter and scope. + + The filter. + The search scope. + Files matching the specified filter and scope. + + + + Represents a file. + + + + + Gets the path to the file. + + The path. + + + + Gets the length of the file. + + The length of the file. + + + + Gets or sets the file attributes. + + The file attributes. + + + + Copies the file to the specified destination path. + + The destination path. + Will overwrite existing destination file if set to true. + + + + Moves the file to the specified destination path. + + The destination path. + + + + Deletes the file. + + + + + Opens the file using the specified options. + + The file mode. + The file access. + The file share. + A to the file. + + + + Represents a file system. + + + + + Gets a instance representing the specified path. + + The path. + A instance representing the specified path. + + + + Gets a instance representing the specified path. + + The path. + A instance representing the specified path. + + + + Represents an entry in the file system + + + + + Gets the path to the entry. + + The path. + + + + Gets a value indicating whether this exists. + + + true if the entry exists; otherwise, false. + + + + + Gets a value indicating whether this is hidden. + + + true if the entry is hidden; otherwise, false. + + + + + Represents a file system globber. + + + + + Returns instances matching the specified pattern. + + The pattern to match. + The predicate used to filter directories based on file system information. + + instances matching the specified pattern. + + + + + Represents a process. + + + + + Waits for the process to exit. + + + + + Waits for the process to exit with possible timeout for command. + + The amount of time, in milliseconds, to wait for the associated process to exit. The maximum is the largest possible value of a 32-bit integer, which represents infinity to the operating system. + true if the associated process has exited; otherwise, false. + + + + Gets the exit code of the process. + + The exit code of the process. + + + + Get the standard error of process. + + Returns process error output if RedirectStandardError is true + + + + Get the standard output of process + + Returns process output if RedirectStandardOutput is true + + + + Immediately stops the associated process. + + + + + Represents a process argument. + + + + + Render the arguments as a . + Sensitive information will be included. + + A string representation of the argument. + + + + Renders the argument as a . + Sensitive information will be redacted. + + A safe string representation of the argument. + + + + Represents a process runner. + + + + + Starts a process using the specified information. + + The file name such as an application or document with which to start the process. + The information about the process to start. + A process handle. + + + + Represents the Windows registry. + + + + + Gets a registry key representing HKEY_LOCAL_MACHINE. + + + A registry key representing HKEY_LOCAL_MACHINE. + + + + + Represents a Windows registry key. + + + + + Gets all sub keys. + + All sub keys. + + + + Opens the sub key with the specified name. + + The name of the key. + The sub key with the specified name + + + + Gets the value of the key. + + The name of the key. + The value of the key. + + + + Represents a NuGet path resolver. + + + + + Resolves the path to nuget.exe. + + The path to nuget.exe. + + + + Contains NuGet path resolver functionality + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The tool locator. + + + + Resolves the path to nuget.exe. + + The path to nuget.exe. + + + + This namespace contain types + related to NuGet functionality. + + + + + Provides properties and instance methods for working with paths. + This class must be inherited. + + + + + Gets the full path. + + The full path. + + + + Gets a value indicating whether this path is relative. + + + true if this path is relative; otherwise, false. + + + + + Gets the segments making up the path. + + The segments making up the path. + + + + Initializes a new instance of the class. + + The path. + + + + Returns a that represents this path. + + + A that represents this instance. + + + + + Compares instances. + + + + + The default path comparer. + + + + + Gets a value indicating whether comparison is case sensitive. + + + true if comparison is case sensitive; otherwise, false. + + + + + Initializes a new instance of the class. + + if set to true, comparison is case sensitive. + + + + Initializes a new instance of the class. + + The environment. + + + + Determines whether the specified instances are equal. + + The first to compare. + The second to compare. + + True if the specified instances are equal; otherwise, false. + + + + + Returns a hash code for the specified . + + The path. + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Utility for building process arguments. + + + + + Gets the number of arguments contained in the . + + + + + Initializes a new instance of the class. + + + + + Clears all arguments from the builder. + + + + + Appends an argument. + + The argument. + + + + Prepends an argument. + + The argument. + + + + Renders the arguments as a . + Sensitive information will be included. + + A string representation of the arguments. + + + + Renders the arguments as a . + Sensitive information will be redacted. + + A safe string representation of the arguments. + + + + Tries to filer any unsafe arguments from string + + unsafe source string. + Filtered string. + + + + Performs an implicit conversion from to . + + The text value to convert. + A . + + + + Performs a conversion from to . + + The text value to convert. + A . + + + + Returns an enumerator that iterates through the collection. + + + An enumerator that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through a collection. + + + An that can be used to iterate through the collection. + + + + + Responsible for starting processes. + + + + + Initializes a new instance of the class. + + The environment. + The log. + + + + Starts a process using the specified information. + + The file name such as an application or document with which to start the process. + The information about the process to start. + A process handle. + + + + Specifies a set of values that are used to start a process. + + + + + Gets or sets the set of command-line arguments to use when starting the application. + + The set of command-line arguments to use when starting the application. + + + + Gets or sets the working directory for the process to be started. + + The working directory for the process to be started. + + + + Gets or sets a value indicating whether or not to opt out of using + an explicit working directory for the process. + + + + + Gets or sets a value indicating whether the error output of an application is written to the standard error stream. + + true if error output should be redirected; false if error output should be written to the standard error stream. The default is false. + + + + Gets or sets a value indicating whether the output of an application is written to the standard output stream. + + true if output should be redirected; false if output should be written to the standard output stream. The default is false. + + + + Gets or sets optional timeout, in milliseconds, to wait for the associated process to exit. The maximum is the largest possible value of a 32-bit integer, which represents infinity to the operating system. + + + + + Gets or sets a value indicating whether process output will be suppressed. + + + true if process output will be suppressed; otherwise, false. + + + + + Gets or sets search paths for files, directories for temporary files, application-specific options, and other similar information. + + + + StartProcess("cmd", new ProcessSettings{ + Arguments = "/c set", + EnvironmentVariables = new Dictionary<string, string>{ + { "CI", "True" }, + { "TEMP", MakeAbsolute(Directory("./Temp")).FullPath } + } + }); + + + + + + Represents a search scope. + + + + + The current directory. + + + + + The current directory and child directories. + + + + + Represents a special path. + + + + + The directory that serves as a common repository for application-specific + data for the current roaming user. + + + + + The directory that serves as a common repository for application-specific + data that is used by all users. + + + + + The directory that serves as a common repository for application-specific + data that is used by the current, non-roaming user. + + + + + The Program Files folder. + + + + + The Program Files (X86) folder. + + + + + The Windows folder. + + + + + The current user's temporary folder. + + + + + Represents an Windows implementation of . + + + + + Gets the LocalMachine . + + + + + This namespace contain fundamental types that support + input and output, including the ability to read and write data + to streams and to interact with the file system. + + + + + Acts as a context providing info about the overall build before its started. + + + + + Gets target / initating task. + + + + + Gets all registered tasks that are going to be executed. + + + + + Acts as a context providing info about a before its invocation. + + + + + Gets the describing the that has just been invoked. + + + The task. + + + + + Acts as a context providing info about a following its invocation. + + + + + Gets the describing the that has just been invoked. + + + The task. + + + + + Gets the duration of the 's execution. + + + The duration of the 's execution. + + + + + Gets a value indicating whether this was skipped (not executed). + + + true if skipped; otherwise, false. + + + + + Acts as a context providing info about the overall build following its completion. + + + + + Gets a value indicating whether this build was successful. + + + true if successful; otherwise false. + + + + + Gets the exception that was thrown by the target. + + + + + The module responsible for registering + default types in the Cake.Core assembly. + + + + + Performs custom registrations in the provided registrar. + + The container registrar. + + + + Represents an installer for a specific package. + + + + + Determines whether this instance can install the specified resource. + + The package resource. + The package type. + + true if this installer can install the + specified resource; otherwise false. + + + + + Installs the specified resource at the given location. + + The package resource. + The package type. + The location where to install the resource. + The installed files. + + + + Represents an URI resource. + + + + + Gets the original string. + + The original string. + + + + Gets the scheme. + + The scheme. + + + + Gets the address. + + The address. + + + + Gets the parameters. + + The parameters. + + + + Gets the package. + + The package. + + + + Initializes a new instance of the class. + + The URI. + + + + Initializes a new instance of the class. + + The URI. + Package query string parameter is missing.;uri + + + + Represents a package type. + + + + + Represents an unspecified package type. + + + + + Represents an addin. + + + + + Represents a tool. + + + + + Represents a module. + + + + + Represents a platform family. + + + + + The platform family is unknown. + + + + + Represents the Windows platform family. + + + + + Represents the Linux platform family. + + + + + Represents the OSX platform family. + + + + + The current Runtime Cake is executing on. + + + + + Full Framework or Mono. + + + + + .NET Core 2. + + + + + The namespace contains fundamental classes and + base classes for Cake and the Cake scripting environment. + + + + + This namespace contain types + related to script processing and execution. + + + + + This namespace contain types + related to script processing. + + + + + Abstract line processor. + + + + + Processes the specified line. + + The analyzer. + The line. + The replacement for line, null if no replacement + true if the line was processed + by this processor; otherwise false. + + + + Splits the specified line into tokens. + + The line to split. + The parts that make up the line. + + + + Represents a load directive provider. + + + + + Indicates whether or not this provider can load the specified . + + The context. + The reference to the code to load. + true if the provider can load the reference; otherwise false. + + + + Loads the specified . + + The context. + The reference to load. + + + + Represents a resource to load via the #load directive. + + + + + Gets the original string. + + The original string. + + + + Gets the scheme. + + The scheme. + + + + Gets the address. + + The address. + + + + Gets the parameters. + + The parameters. + + + + Initializes a new instance of the class. + + The URI. + + + + Represents the script analyzer responsible for + parsing and analyzing scripts. + + + + + Analyzes the specified script path. + + The path to the script to analyze. + The script analysis result. + + + + Represents the context used by the . + + + + + Gets the path to the initial script being executed. + + + + + Gets the current script being processed. + + The current script being processed. + + + + Processes the specified script path using the same context. + + The script path to process. + + + + Adds a script line to the result. + + The script line to add. + + + + Adds a script error to the result. + + The script error to add. + + + + Represents information about a script. + + + + + Gets the script path. + + The script path. + + + + Gets the includes. + + The includes. + + + + Gets the referenced script assemblies. + + The referenced script assemblies. + + + + Gets all namespaces referenced by the script. + + The namespaces referenced by the script. + + + + Gets all using aliases defined by the scripts. + + The using aliases defined by the script. + + + + Gets all types referenced with the using static directive. + + The fully qualified type names referenced by using static in the script. + + + + Gets the defines directives defined by the scripts. + + The defines. + + + + Gets the tools. + + The tools. + + + + Gets the addins. + + The addins. + + + + Gets the modules. + + The modules. + + + + The script analyzer. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The log. + The load directive providers. + + + + Analyzes the specified script path. + + The path to the script to analyze. + The script analysis result. + + + + Represents a script analysis error. + + + + + Gets the file containing the error. + + + + + Gets the line number for the error. + + + + + Gets the error message. + + + + + Initializes a new instance of the class. + + The file containing the error. + The line number for the error. + The error message. + + + + Represents a script analysis result. + + + + + Gets the analyzed script. + + The script. + + + + Gets the merged script lines. + + The merged script lines. + + + + Gets all references. + + The references. + + + + Gets all the namespaces. + + The namespaces. + + + + Gets the using aliases. + + The using aliases. + + + + Gets all types referenced with the using static directive. + + + + + Gets the defines. + + The defines. + + + + Gets the addins. + + The addins. + + + + Gets the tools. + + The tools. + + + + Gets the modules. + + The modules. + + + + Gets a value indicating whether to analysis succeded without errors. + + + + + Gets the list of analyzer errors. + + + + + Initializes a new instance of the class. + + The script. + The merged script lines. + The analyzer errors. + + + + Responsible for generating generic parameter constraints on generated generic methods + + + + + Responsible for generating script method aliases. + + + + + Generates a script method alias from the specified method. + The provided method must be an extension method for + and it must be decorated with the . + + The method to generate the code for. + The generated code. + + + + Responsible for generating parameter tokens in method alias generation + + + + + Provides support for cleaning parameter names consisting of reserved keywords + + + + + Responsible for generating script property aliases. + + + + + Generates a script property alias from the specified method. + The provided method must be an extension method for + and it must be decorated with the . + + The method to generate the code for. + The generated code. + + + + Represents a script alias generator. + + + + + Finds script aliases in the provided assemblies. + + The assemblies to find script aliases in. + The script aliases that were found. + + + + Represents the script conventions used by Cake. + + + + + Gets the default namespaces. + + A list containing all default namespaces. + + + + Gets the default assemblies. + + The root to where to find Cake related assemblies. + A list containing all default assemblies. + + + + Represents a script engine. + + + + + Creates a new script session. + + The host. + A new script session. + + + + Represents a script host that works as a context for scripts. + + + + + Gets the context. + + The context. + + + + Gets all registered tasks. + + The registered tasks. + + + + Registers a new task. + + The name of the task. + A . + + + + Allows registration of an action that's executed before any tasks are run. + If setup fails, no tasks will be executed but teardown will be performed. + + The action to be executed. + + + + Allows registration of an action that's executed before any tasks are run. + If setup fails, no tasks will be executed but teardown will be performed. + + The action to be executed. + The data type. + + + + Allows registration of an action that's executed after all other tasks have been run. + If a setup action or a task fails with or without recovery, the specified teardown action will still be executed. + + The action to be executed. + + + + Allows registration of an action that's executed after all other tasks have been run. + If a setup action or a task fails with or without recovery, the specified teardown action will still be executed. + + The action to be executed. + The data type. + + + + Allows registration of an action that's executed before each task is run. + If the task setup fails, its task will not be executed but the task teardown will be performed. + + The action to be executed. + + + + Allows registration of an action that's executed before each task is run. + If the task setup fails, its task will not be executed but the task teardown will be performed. + + The data type. + The action to be executed. + + + + Allows registration of an action that's executed after each task has been run. + If a task setup action or a task fails with or without recovery, the specified task teardown action will still be executed. + + The action to be executed. + + + + Allows registration of an action that's executed after each task has been run. + If a task setup action or a task fails with or without recovery, the specified task teardown action will still be executed. + + The data type. + The action to be executed. + + + + Runs the specified target. + + The target to run. + The resulting report. + + + + Runs the specified target. + + The target to run. + The resulting report. + + + + Represents a script processor. + + + + + Installs the addins. + + The addins to install. + The install path. + A list containing file paths to installed addin assemblies. + + + + Installs the tools. + + The tools to install. + The install path. + + + + Installs the modules. + + The modules to install. + The install path. + + + + Represents a script runner responsible for running scripts. + + + + + Runs the script using the specified script host. + + The script host. + The script path. + The arguments. + + + + Represents a script session. + + + + + Adds a reference path to the session. + + The reference path. + + + + Adds an assembly reference to the session. + + The assembly reference. + + + + Imports a namespace to the session. + + The namespace to import. + + + + Executes the specified script. + + The script to execute. + + + + Represents a script. + + + + + Gets the namespaces imported via the using statement. + + The namespaces. + + + + Gets the script lines. + + + The lines. + + + + + Gets the aliases. + + The aliases. + + + + Gets the using alias directives. + + The using alias directives. + + + + Gets the using static directives. + + The using static directives. + + + + Gets the defines. + + The defines. + + + + Initializes a new instance of the class. + + The namespaces. + The scrip lines. + The script aliases. + The using alias directives. + The using static directives. + The defines. + + + + Represents a script alias. + + + + + Gets the name of the alias. + + The name. + + + + Gets the method associated with the alias. + + The method associated with the alias. + + + + Gets the alias type. + + The alias type. + + + + Gets all namespaces that the alias need to be imported. + + + The namespaces that the alias need to be imported. + + + + + Initializes a new instance of the class. + + The method associated with the alias. + The alias type. + The namespaces that the alias need to be imported. + + + + The script alias finder. + + + + + Initializes a new instance of the class. + + The log. + + + + Finds script aliases in the provided assemblies. + + The assemblies to find script aliases in. + The script aliases that were found. + + + + Represents a script alias type. + + + + + Represents an unknown script alias type. + + + + + Represents a script alias method. + + + + + Represents a script alias property. + + + + + The script conventions used by Cake. + + + + + Initializes a new instance of the class. + + The file system. + The assembly loader. + + + + Gets the default namespaces. + + A list containing all default namespaces. + + + + Gets the default assemblies. + + The root to where to find Cake related assemblies. + A list containing all default assemblies. + + + + The script host works as a context for scripts. + + + + + Gets the engine. + + The engine. + + + + Gets the context. + + The context. + + + + Gets the settings. + + The settings. + + + + Initializes a new instance of the class. + + The engine. + The context. + + + + Gets all registered tasks. + + The registered tasks. + + + + Registers a new task. + + The name of the task. + A . + + + + Allows registration of an action that's executed before any tasks are run. + If setup fails, no tasks will be executed but teardown will be performed. + + The action to be executed. + + + Setup(context => { + context.Log.Information("Hello World!"); + }); + + + + + + Allows registration of an action that's executed before any tasks are run. + If setup fails, no tasks will be executed but teardown will be performed. + + The data type. + The action to be executed. + + + Setup<Foo>(context => { + return new Foo(); + }); + + + + + + Allows registration of an action that's executed after all other tasks have been run. + If a setup action or a task fails with or without recovery, the specified teardown action will still be executed. + + The action to be executed. + + + Teardown(context => { + context.Log.Information("Goodbye World!"); + }); + + + + + + Allows registration of an action that's executed after all other tasks have been run. + If a setup action or a task fails with or without recovery, the specified teardown action will still be executed. + + The data type. + The action to be executed. + + + Teardown((context, data) => { + context.Log.Information("Goodbye {0}!", data.Place); + }); + + + + + + Allows registration of an action that's executed before each task is run. + If the task setup fails, its task will not be executed but the task teardown will be performed. + + The action to be executed. + + + + Allows registration of an action that's executed before each task is run. + If the task setup fails, its task will not be executed but the task teardown will be performed. + + The data type. + The action to be executed. + + + + Allows registration of an action that's executed after each task has been run. + If a task setup action or a task fails with or without recovery, the specified task teardown action will still be executed. + + The action to be executed. + + + + Allows registration of an action that's executed after each task has been run. + If a task setup action or a task fails with or without recovery, the specified task teardown action will still be executed. + + The data type. + The action to be executed. + + + + Runs the specified target. + + The target to run. + The resulting report. + + + + Runs the specified target. + + The target to run. + The resulting report. + + + + Implementation of a script processor. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The log. + The tool locator. + The available package installers. + + + + Installs the addins. + + The addins to install. + The install path. + A list containing file paths to installed addin assemblies. + + + + Installs the tools. + + The tools to install. + The install path. + + + + Installs the modules. + + The modules to install. + The install path. + + + + Responsible for running scripts. + + + + + Initializes a new instance of the class. + + The environment. + The log. + The configuration. + The session factory. + The alias finder. + The script analyzer. + The script processor. + The script conventions. + The assembly loader. + + + + Runs the script using the specified script host. + + The script host. + The script. + The arguments. + + + + This namespace contain types + related to text processing and transformations. + + + + + Represents a text template. + + + + + Registers a key and an associated value. + + The key. + The value. + + + + Renders the text template using the registered tokens. + + The rendered template. + + + + Utility that that respect quotes when splitting a string. + + + + + Splits the provided string on spaces while respecting quoted strings. + + The string to split. + The split, individual parts. + + + + Provides template functionality for simple text transformations. + + + + + Initializes a new instance of the class. + + The template. + + + + Initializes a new instance of the class. + + The template. + The key placeholder. + + + + Registers a key and an associated value. + + The key. + The value. + + + + Renders the template using the registered tokens. + + The rendered template. + + + + This namespace contain base classes + and functionality related to tooling. + + + + + Represents a tool locator. + + + + + Registers the specified tool file path. + + The tool path. + + + + Resolves the path to the specified tool. + + The tool. + A path if the tool was found; otherwise null. + + + + Represents a tool repository. + + + + + Registers the specified path with the repository. + + The path to register. + + + + Resolves the specified tool. + + The tool to resolve. + The tool's file paths if any; otherwise null. + + + + Represents a tool resolution strategy. + + + + + Resolves the specified tool using the specified tool repository. + + The tool repository. + The tool. + The path to the tool; otherwise null. + + + + Base class for tools. + + The settings type. + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The globber. + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Runs the tool using the specified settings. + + The settings. + The arguments. + + + + Runs the tool using a custom tool path and the specified settings. + + The settings. + The arguments. + The process settings + If specified called after process exit + + + + Customized exit code handling. + Standard behavior is to fail when non zero. + + The process exit code + + + + Runs the tool using a custom tool path and the specified settings. + + The settings. + The arguments. + The process that the tool is running under. + + + + Runs the tool using a custom tool path and the specified settings. + + The settings. + The arguments. + The process settings + The process that the tool is running under. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Gets the working directory. + Defaults to the currently set working directory. + + The settings. + The working directory for the tool. + + + + Gets alternative file paths which the tool may exist in + + The settings. + The default tool path. + + + + Gets the environment variables. + + The settings. + The environment variables for the tool. + + + + Gets the resolved tool path. + + The settings. + The resolved tool path. + + + + Implementation of the tool locator. + + + + + Initializes a new instance of the class. + + The environment. + The tool repository. + The tool resolution strategy. + + + + Registers the specified tool file path. + + The tool path. + + + + Resolves the path to the specified tool. + + The tool. + A path if the tool was found; otherwise null. + + + + The tool repository. + + + + + Initializes a new instance of the class. + + The environment. + + + + Registers the specified path with the repository. + + The path to register. + + + + Resolves the specified tool. + + The tool to resolve. + + The tool's file paths if any; otherwise null. + + + + + Implementation of the default tool resolution strategy. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The globber. + The configuration. + + + + Resolves the specified tool using the specified tool repository. + + The tool repository. + The tool. + + The path to the tool; otherwise null. + + + + + Base class for tool settings. + + + + + Gets or sets the tool path. + + The tool path. + + + + Gets or sets optional timeout for tool execution. + + + + + Gets or sets the working directory for the tool process. + + The working directory for the tool process. + + + + Gets or sets a value indicating whether or not to opt out of using + an explicit working directory for the process. + + + + + Gets or sets the argument customization. + Argument customization is a way that lets you add, replace or reuse arguments passed to a tool. + This allows you to support new tool arguments, customize arguments or address potential argument issues. + + + Combining tool specific settings and tool arguments: + + NuGetAddSource("Cake", "https://www.myget.org/F/cake/api/v3/index.json", + new NuGetSourcesSettings { UserName = "user", Password = "incorrect", + ArgumentCustomization = args=>args.Append("-StorePasswordInClearText") + }); + + + + Setting multiple tool arguments: + + MSTest(pathPattern, new MSTestSettings() + { ArgumentCustomization = args=>args.Append("/detail:errormessage") + .Append("/resultsfile:TestResults.trx") }); + + + The delegate used to customize the . + + + + Gets or sets search paths for files, directories for temporary files, application-specific options, and other similar information. + + + + MSBuild("./src/Cake.sln", new MSBuildSettings { + EnvironmentVariables = new Dictionary<string, string>{ + { "TOOLSPATH", MakeAbsolute(Directory("./tools")).FullPath } + }}); + + + + + + This namespace contain base classes + and functionality related to tooling. + The content in this namespace has been obsoleted. + + + + + Base class for tools. + + The settings type. + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The globber. + + + + Runs the tool using the specified settings. + + The settings. + The arguments. + + + + Runs the tool using a custom tool path and the specified settings. + + The settings. + The arguments. + The tool path to use. + + + + Runs the tool using a custom tool path and the specified settings. + + The settings. + The arguments. + The tool path to use. + The process settings + If specified called after process exit + + + + Runs the tool using a custom tool path and the specified settings. + + The settings. + The arguments. + The process that the tool is running under. + + + + Runs the tool using a custom tool path and the specified settings. + + The settings. + The arguments. + The tool path to use. + The process that the tool is running under. + + + + Runs the tool using a custom tool path and the specified settings. + + The settings. + The arguments. + The tool path to use. + The process settings + The process that the tool is running under. + + + + Gets the tool path. + + The settings. + The provided tool path (if any). + The tool path. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Gets the working directory. + Defaults to the currently set working directory. + + The settings. + The working directory for the tool. + + + + Gets alternative file paths which the tool may exist in + + The settings. + The default tool path. + + + + Represents an assembly loader. + + + + + Loads an assembly from its assembly name. + + The assembly name. + The loaded assembly. + + + + Loads an assembly from the specified path. + + The assembly path to load. + If the assembly should be verified whether or not it will work properly with Cake or not. + The loaded assembly. + + + + Represents an assembly verifier. + + + + + Verifies an assembly. + + The target assembly. + + + + Acts as a context providing info about the overall build following its completion + + + + + Gets target / initating task. + + + + + Gets all registered tasks that are going to be executed. + + + + + Initializes a new instance of the class. + + The Cake context. + The target / initating task. + The tasks to execute. + + + + Event data for the event. + + + + + Gets the Cake context. + + + + + Initializes a new instance of the class. + + The context. + + + + Acts as a context providing info about a before its invocation. + + + + + Initializes a new instance of the class. + + The Cake Context. + The task. + + + + Gets the describing the that has just been invoked. + + + The task. + + + + + Event data for the event. + + + + + Gets the task setup context. + + + + + Initializes a new instance of the class. + + The task setup context. + + + + Acts as a context providing info about a following its invocation. + + + + + Initializes a new instance of the class. + + The Cake Context. + The task. + The duration of the task. + if set to true, the task was not executed. + + + + Gets the describing the that has just been invoked. + + + The task. + + + + + Gets the duration of the 's execution. + + + The duration of the 's execution. + + + + + Gets a value indicating whether the was skipped (not executed). + + + true if skipped; otherwise, false. + + + + + Event data for the event. + + + + + Gets the task teardown context. + + + + + Initializes a new instance of the class. + + The task teardown context. + + + + Acts as a context providing info about the overall build following its completion + + + + + Gets a value indicating whether this build was successful + + + true if successful; otherwise false. + + + + + Gets the exception that was thrown by the target. + + + + + Initializes a new instance of the class. + + The Cake context. + The exception that was thrown by the target. + + + + Event data for the event. + + + + + Gets the teardown context. + + + + + Initializes a new instance of the class. + + The teardown context. + + + diff --git a/integration-test/tools/Cake.CoreCLR/Cake.CoreCLR.nuspec b/integration-test/tools/Cake.CoreCLR/Cake.CoreCLR.nuspec new file mode 100644 index 0000000..31d5da4 --- /dev/null +++ b/integration-test/tools/Cake.CoreCLR/Cake.CoreCLR.nuspec @@ -0,0 +1,32 @@ + + + + Cake.CoreCLR + 0.30.0 + Patrik Svensson, Mattias Karlsson, Gary Ewan Park, Alistair Chapman, Martin Björkström, Dave Glick, Pascal Berger and contributors + Patrik Svensson, Mattias Karlsson, Gary Ewan Park, Alistair Chapman, Martin Björkström, Dave Glick, Pascal Berger and contributors + false + https://github.com/cake-build/cake/blob/develop/LICENSE + https://github.com/cake-build/cake + https://raw.githubusercontent.com/cake-build/graphics/master/png/cake-medium.png + The Cake script runner. + Cake (C# Make) is a build automation system with a C# DSL to do things like compiling code, copy files/folders, running unit tests, compress files and build NuGet packages. + 2067 Publish as .NET Core Global Tool. +2238 Add repository metadata to NuGet packages. +2234 Remove mono argument from Argument Parser. +2211 DotNetCorePublishSettings doesn't contain --no-build flag support introduced in .NET Core SDK 2.1. +2146 Enabling initializer syntax for all collection properties. +1401 Support for dotCover configuration file. +2233 Add bootstrap argument to Help Command. +2232 Add exclusive argument to Help Command. +2220 Incorrect documentation for InnoSetup Alias. +2228 CakeTaskExtensions are no longer accessible. +2224 Add option for ProcessSettings to opt out of working directory magic. +2214 Cake.CoreCLR can't handle whitespace in path. +2208 WithCriteria does not work with 'DryRun' (WhatIf flag). +2207 NuGet hang due to bug in NuGet 4.6.0. + Copyright (c) .NET Foundation and contributors + Cake Script Build + + + \ No newline at end of file diff --git a/integration-test/tools/Cake.CoreCLR/Cake.NuGet.xml b/integration-test/tools/Cake.CoreCLR/Cake.NuGet.xml new file mode 100644 index 0000000..ada36ef --- /dev/null +++ b/integration-test/tools/Cake.CoreCLR/Cake.NuGet.xml @@ -0,0 +1,114 @@ + + + + Cake.NuGet + + + + + The config key name for overriding the default nuget package source + + + + + The config key name for using the in process client for installing packages + + + + + The config key name for enabling loading of nuget package dependencies + + + + + The config key name for overriding the default nuget config file + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The content resolver. + The log. + the configuration + + + + Represents a file locator for NuGet packages that returns relevant + files for the current framework given the resource type. + + + + + Gets the relevant files for a NuGet package + given a path and a resource type. + + The path to search. + The package. + The resource type. + A collection of files. + + + + Represents a NuGet package installer. + + + + + The module responsible for registering + default types in the Cake.NuGet assembly. + + + + + Initializes a new instance of the class. + + The config. + + + + Performs custom registrations in the provided registrar. + + The container registrar. + + + + Installer for NuGet URI resources. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The NuGet tool resolver. + The content resolver. + The log. + The configuration. + + + + Determines whether this instance can install the specified resource. + + The package reference. + The package type. + + true if this installer can install the + specified resource; otherwise false. + + + + + Installs the specified resource at the given location. + + The package reference. + The package type. + The location where to install the package. + The installed files. + + + diff --git a/integration-test/tools/Cake.CoreCLR/Cake.deps.json b/integration-test/tools/Cake.CoreCLR/Cake.deps.json new file mode 100644 index 0000000..105fd8e --- /dev/null +++ b/integration-test/tools/Cake.CoreCLR/Cake.deps.json @@ -0,0 +1,2108 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v2.0", + "signature": "40efaa0824350847dfe1f3007cd5fb7c6746f7d7" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v2.0": { + "Cake/0.30.0": { + "dependencies": { + "Autofac": "4.6.2", + "Cake.Common": "0.30.0", + "Cake.Core": "0.30.0", + "Cake.NuGet": "0.30.0", + "Microsoft.CodeAnalysis.CSharp.Scripting": "2.8.2" + }, + "runtime": { + "Cake.dll": {} + } + }, + "Autofac/4.6.2": { + "dependencies": { + "System.ComponentModel": "4.0.1" + }, + "runtime": { + "lib/netstandard1.1/Autofac.dll": { + "assemblyVersion": "4.6.2.0", + "fileVersion": "4.6.2.0" + } + } + }, + "Microsoft.CodeAnalysis.Analyzers/1.1.0": {}, + "Microsoft.CodeAnalysis.Common/2.8.2": { + "dependencies": { + "Microsoft.CodeAnalysis.Analyzers": "1.1.0", + "System.AppContext": "4.3.0", + "System.Collections": "4.3.0", + "System.Collections.Concurrent": "4.3.0", + "System.Collections.Immutable": "1.3.1", + "System.Console": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Diagnostics.FileVersionInfo": "4.3.0", + "System.Diagnostics.StackTrace": "4.3.0", + "System.Diagnostics.Tools": "4.3.0", + "System.Dynamic.Runtime": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO.Compression": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Linq": "4.3.0", + "System.Linq.Expressions": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Metadata": "1.4.2", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Runtime.Numerics": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.X509Certificates": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Text.Encoding.CodePages": "4.3.0", + "System.Text.Encoding.Extensions": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0", + "System.Threading.Tasks.Parallel": "4.3.0", + "System.Threading.Thread": "4.3.0", + "System.ValueTuple": "4.3.0", + "System.Xml.ReaderWriter": "4.3.0", + "System.Xml.XDocument": "4.3.0", + "System.Xml.XPath.XDocument": "4.3.0", + "System.Xml.XmlDocument": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/Microsoft.CodeAnalysis.dll": { + "assemblyVersion": "2.8.0.0", + "fileVersion": "2.8.2.62916" + } + } + }, + "Microsoft.CodeAnalysis.CSharp/2.8.2": { + "dependencies": { + "Microsoft.CodeAnalysis.Common": "2.8.2" + }, + "runtime": { + "lib/netstandard1.3/Microsoft.CodeAnalysis.CSharp.dll": { + "assemblyVersion": "2.8.0.0", + "fileVersion": "2.8.2.62916" + } + } + }, + "Microsoft.CodeAnalysis.CSharp.Scripting/2.8.2": { + "dependencies": { + "Microsoft.CodeAnalysis.CSharp": "2.8.2", + "Microsoft.CodeAnalysis.Scripting.Common": "2.8.2" + }, + "runtime": { + "lib/netstandard1.3/Microsoft.CodeAnalysis.CSharp.Scripting.dll": { + "assemblyVersion": "2.8.0.0", + "fileVersion": "2.8.2.62916" + } + } + }, + "Microsoft.CodeAnalysis.Scripting.Common/2.8.2": { + "dependencies": { + "Microsoft.CodeAnalysis.Common": "2.8.2", + "System.AppContext": "4.3.0", + "System.Collections": "4.3.0", + "System.Collections.Immutable": "1.3.1", + "System.Diagnostics.Debug": "4.3.0", + "System.Diagnostics.StackTrace": "4.3.0", + "System.Diagnostics.Tools": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.Linq": "4.3.0", + "System.Linq.Expressions": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/Microsoft.CodeAnalysis.Scripting.dll": { + "assemblyVersion": "2.8.0.0", + "fileVersion": "2.8.2.62916" + } + } + }, + "Microsoft.DotNet.PlatformAbstractions/2.0.4": { + "dependencies": { + "System.AppContext": "4.3.0", + "System.Collections": "4.3.0", + "System.IO": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.Reflection.TypeExtensions": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Runtime.InteropServices.RuntimeInformation": "4.0.0" + }, + "runtime": { + "lib/netstandard1.3/Microsoft.DotNet.PlatformAbstractions.dll": { + "assemblyVersion": "2.0.4.0", + "fileVersion": "2.0.4.0" + } + } + }, + "Microsoft.Extensions.DependencyModel/2.0.4": { + "dependencies": { + "Microsoft.DotNet.PlatformAbstractions": "2.0.4", + "Newtonsoft.Json": "11.0.2", + "System.Diagnostics.Debug": "4.3.0", + "System.Dynamic.Runtime": "4.3.0", + "System.Linq": "4.3.0" + }, + "runtime": { + "lib/netstandard1.6/Microsoft.Extensions.DependencyModel.dll": { + "assemblyVersion": "2.0.4.0", + "fileVersion": "2.0.4.0" + } + } + }, + "Microsoft.NETCore.Targets/1.1.0": {}, + "Microsoft.Win32.Primitives/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "Microsoft.Win32.Registry/4.4.0": { + "dependencies": { + "System.Security.AccessControl": "4.4.0", + "System.Security.Principal.Windows": "4.4.0" + }, + "runtimeTargets": { + "runtime/unix/lib/_._": { + "rid": "unix", + "assetType": "runtime" + }, + "runtime/win/lib/_._": { + "rid": "win", + "assetType": "runtime" + } + } + }, + "Newtonsoft.Json/11.0.2": { + "runtime": { + "lib/netstandard2.0/Newtonsoft.Json.dll": { + "assemblyVersion": "11.0.0.0", + "fileVersion": "11.0.2.21924" + } + } + }, + "NuGet.Commands/4.7.0": { + "dependencies": { + "NuGet.Credentials": "4.7.0", + "NuGet.ProjectModel": "4.7.0" + }, + "runtime": { + "lib/netstandard1.6/NuGet.Commands.dll": { + "assemblyVersion": "4.7.0.5", + "fileVersion": "4.7.0.5148" + } + } + }, + "NuGet.Common/4.7.0": { + "dependencies": { + "NuGet.Frameworks": "4.7.0", + "System.Diagnostics.Process": "4.3.0", + "System.Threading.Thread": "4.3.0" + }, + "runtime": { + "lib/netstandard1.6/NuGet.Common.dll": { + "assemblyVersion": "4.7.0.5", + "fileVersion": "4.7.0.5148" + } + } + }, + "NuGet.Configuration/4.7.0": { + "dependencies": { + "NuGet.Common": "4.7.0", + "System.Security.Cryptography.ProtectedData": "4.3.0" + }, + "runtime": { + "lib/netstandard1.6/NuGet.Configuration.dll": { + "assemblyVersion": "4.7.0.5", + "fileVersion": "4.7.0.5148" + } + } + }, + "NuGet.Credentials/4.7.0": { + "dependencies": { + "NuGet.Protocol": "4.7.0", + "System.Runtime.Serialization.Formatters": "4.3.0" + }, + "runtime": { + "lib/netstandard1.6/NuGet.Credentials.dll": { + "assemblyVersion": "4.7.0.5", + "fileVersion": "4.7.0.5148" + } + } + }, + "NuGet.DependencyResolver.Core/4.7.0": { + "dependencies": { + "NuGet.LibraryModel": "4.7.0", + "NuGet.Protocol": "4.7.0" + }, + "runtime": { + "lib/netstandard1.6/NuGet.DependencyResolver.Core.dll": { + "assemblyVersion": "4.7.0.5", + "fileVersion": "4.7.0.5148" + } + } + }, + "NuGet.Frameworks/4.7.0": { + "runtime": { + "lib/netstandard1.6/NuGet.Frameworks.dll": { + "assemblyVersion": "4.7.0.5", + "fileVersion": "4.7.0.5148" + } + } + }, + "NuGet.LibraryModel/4.7.0": { + "dependencies": { + "NuGet.Common": "4.7.0", + "NuGet.Versioning": "4.7.0" + }, + "runtime": { + "lib/netstandard1.6/NuGet.LibraryModel.dll": { + "assemblyVersion": "4.7.0.5", + "fileVersion": "4.7.0.5148" + } + } + }, + "NuGet.PackageManagement.NetStandard/4.7.0": { + "dependencies": { + "NuGet.Commands": "4.7.0", + "NuGet.Resolver": "4.7.0" + }, + "runtime": { + "lib/netstandard1.6/NuGet.PackageManagement.dll": { + "assemblyVersion": "4.7.0.5", + "fileVersion": "4.7.0.0" + } + } + }, + "NuGet.Packaging/4.7.0": { + "dependencies": { + "Newtonsoft.Json": "11.0.2", + "NuGet.Packaging.Core": "4.7.0", + "System.Dynamic.Runtime": "4.3.0" + }, + "runtime": { + "lib/netstandard1.6/NuGet.Packaging.dll": { + "assemblyVersion": "4.7.0.5", + "fileVersion": "4.7.0.5148" + } + } + }, + "NuGet.Packaging.Core/4.7.0": { + "dependencies": { + "NuGet.Common": "4.7.0", + "NuGet.Versioning": "4.7.0" + }, + "runtime": { + "lib/netstandard1.6/NuGet.Packaging.Core.dll": { + "assemblyVersion": "4.7.0.5", + "fileVersion": "4.7.0.5148" + } + } + }, + "NuGet.ProjectModel/4.7.0": { + "dependencies": { + "NuGet.DependencyResolver.Core": "4.7.0", + "System.Dynamic.Runtime": "4.3.0", + "System.Threading.Thread": "4.3.0" + }, + "runtime": { + "lib/netstandard1.6/NuGet.ProjectModel.dll": { + "assemblyVersion": "4.7.0.5", + "fileVersion": "4.7.0.5148" + } + } + }, + "NuGet.Protocol/4.7.0": { + "dependencies": { + "NuGet.Configuration": "4.7.0", + "NuGet.Packaging": "4.7.0", + "System.Dynamic.Runtime": "4.3.0" + }, + "runtime": { + "lib/netstandard1.6/NuGet.Protocol.dll": { + "assemblyVersion": "4.7.0.5", + "fileVersion": "4.7.0.5148" + } + } + }, + "NuGet.Resolver/4.7.0": { + "dependencies": { + "NuGet.Protocol": "4.7.0" + }, + "runtime": { + "lib/netstandard1.6/NuGet.Resolver.dll": { + "assemblyVersion": "4.7.0.5", + "fileVersion": "4.7.0.5148" + } + } + }, + "NuGet.Versioning/4.7.0": { + "runtime": { + "lib/netstandard1.6/NuGet.Versioning.dll": { + "assemblyVersion": "4.7.0.5", + "fileVersion": "4.7.0.5148" + } + } + }, + "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "runtimeTargets": { + "runtime/debian.8-x64/native/_._": { + "rid": "debian.8-x64", + "assetType": "native" + } + } + }, + "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "runtimeTargets": { + "runtime/fedora.23-x64/native/_._": { + "rid": "fedora.23-x64", + "assetType": "native" + } + } + }, + "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "runtimeTargets": { + "runtime/fedora.24-x64/native/_._": { + "rid": "fedora.24-x64", + "assetType": "native" + } + } + }, + "runtime.native.System/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Targets": "1.1.0" + } + }, + "runtime.native.System.IO.Compression/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Targets": "1.1.0" + } + }, + "runtime.native.System.Net.Http/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Targets": "1.1.0" + } + }, + "runtime.native.System.Security.Cryptography.Apple/4.3.0": { + "dependencies": { + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" + } + }, + "runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "dependencies": { + "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + } + }, + "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "runtimeTargets": { + "runtime/opensuse.13.2-x64/native/_._": { + "rid": "opensuse.13.2-x64", + "assetType": "native" + } + } + }, + "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "runtimeTargets": { + "runtime/opensuse.42.1-x64/native/_._": { + "rid": "opensuse.42.1-x64", + "assetType": "native" + } + } + }, + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": { + "runtimeTargets": { + "runtime/osx.10.10-x64/native/_._": { + "rid": "osx.10.10-x64", + "assetType": "native" + } + } + }, + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "runtimeTargets": { + "runtime/osx.10.10-x64/native/_._": { + "rid": "osx.10.10-x64", + "assetType": "native" + } + } + }, + "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "runtimeTargets": { + "runtime/rhel.7-x64/native/_._": { + "rid": "rhel.7-x64", + "assetType": "native" + } + } + }, + "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "runtimeTargets": { + "runtime/ubuntu.14.04-x64/native/_._": { + "rid": "ubuntu.14.04-x64", + "assetType": "native" + } + } + }, + "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "runtimeTargets": { + "runtime/ubuntu.16.04-x64/native/_._": { + "rid": "ubuntu.16.04-x64", + "assetType": "native" + } + } + }, + "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "runtimeTargets": { + "runtime/ubuntu.16.10-x64/native/_._": { + "rid": "ubuntu.16.10-x64", + "assetType": "native" + } + } + }, + "System.AppContext/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + } + }, + "System.Buffers/4.3.0": { + "dependencies": { + "System.Diagnostics.Debug": "4.3.0", + "System.Diagnostics.Tracing": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Threading": "4.3.0" + } + }, + "System.Collections/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.Collections.Concurrent/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Diagnostics.Tracing": "4.3.0", + "System.Globalization": "4.3.0", + "System.Reflection": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.Collections.Immutable/1.3.1": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.Linq": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + } + }, + "System.ComponentModel/4.0.1": { + "dependencies": { + "System.Runtime": "4.3.0" + } + }, + "System.Console/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Targets": "1.1.0", + "System.IO": "4.3.0", + "System.Runtime": "4.3.0", + "System.Text.Encoding": "4.3.0" + } + }, + "System.Diagnostics.Debug/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.Diagnostics.FileVersionInfo/4.3.0": { + "dependencies": { + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Reflection.Metadata": "1.4.2", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.InteropServices": "4.3.0" + }, + "runtimeTargets": { + "runtime/unix/lib/_._": { + "rid": "unix", + "assetType": "runtime" + }, + "runtime/win/lib/_._": { + "rid": "win", + "assetType": "runtime" + } + } + }, + "System.Diagnostics.Process/4.3.0": { + "dependencies": { + "Microsoft.Win32.Primitives": "4.3.0", + "Microsoft.Win32.Registry": "4.4.0", + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Text.Encoding.Extensions": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0", + "System.Threading.Thread": "4.3.0", + "System.Threading.ThreadPool": "4.3.0", + "runtime.native.System": "4.3.0" + }, + "runtimeTargets": { + "runtime/linux/lib/_._": { + "rid": "linux", + "assetType": "runtime" + }, + "runtime/osx/lib/_._": { + "rid": "osx", + "assetType": "runtime" + }, + "runtime/win/lib/_._": { + "rid": "win", + "assetType": "runtime" + } + } + }, + "System.Diagnostics.StackTrace/4.3.0": { + "dependencies": { + "System.IO.FileSystem": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Metadata": "1.4.2", + "System.Runtime": "4.3.0" + } + }, + "System.Diagnostics.Tools/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.Diagnostics.Tracing/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.Dynamic.Runtime/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Linq": "4.3.0", + "System.Linq.Expressions": "4.3.0", + "System.ObjectModel": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Emit": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Reflection.TypeExtensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + } + }, + "System.Globalization/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.Globalization.Calendars/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Targets": "1.1.0", + "System.Globalization": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.IO/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.IO.Compression/4.3.0": { + "dependencies": { + "System.Buffers": "4.3.0", + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0", + "runtime.native.System": "4.3.0", + "runtime.native.System.IO.Compression": "4.3.0" + }, + "runtimeTargets": { + "runtime/unix/lib/_._": { + "rid": "unix", + "assetType": "runtime" + }, + "runtime/win/lib/_._": { + "rid": "win", + "assetType": "runtime" + } + } + }, + "System.IO.FileSystem/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Targets": "1.1.0", + "System.IO": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.IO.FileSystem.Primitives/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + } + }, + "System.Linq/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0" + } + }, + "System.Linq.Expressions/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Linq": "4.3.0", + "System.ObjectModel": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Emit": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Emit.Lightweight": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Reflection.TypeExtensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + } + }, + "System.ObjectModel/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Threading": "4.3.0" + } + }, + "System.Reflection/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Targets": "1.1.0", + "System.IO": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Reflection.Emit/4.3.0": { + "dependencies": { + "System.IO": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Reflection.Emit.ILGeneration/4.3.0": { + "dependencies": { + "System.Reflection": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Reflection.Emit.Lightweight/4.3.0": { + "dependencies": { + "System.Reflection": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Reflection.Extensions/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Targets": "1.1.0", + "System.Reflection": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Reflection.Metadata/1.4.2": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Collections.Immutable": "1.3.1", + "System.Diagnostics.Debug": "4.3.0", + "System.IO": "4.3.0", + "System.IO.Compression": "4.3.0", + "System.Linq": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Text.Encoding.Extensions": "4.3.0", + "System.Threading": "4.3.0" + } + }, + "System.Reflection.Primitives/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.Reflection.TypeExtensions/4.3.0": { + "dependencies": { + "System.Reflection": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Resources.ResourceManager/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Targets": "1.1.0", + "System.Globalization": "4.3.0", + "System.Reflection": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Runtime/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Targets": "1.1.0" + } + }, + "System.Runtime.Extensions/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.Runtime.Handles/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.Runtime.InteropServices/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Targets": "1.1.0", + "System.Reflection": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Handles": "4.3.0" + } + }, + "System.Runtime.InteropServices.RuntimeInformation/4.0.0": { + "dependencies": { + "System.Reflection": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Threading": "4.3.0", + "runtime.native.System": "4.3.0" + }, + "runtimeTargets": { + "runtime/unix/lib/_._": { + "rid": "unix", + "assetType": "runtime" + }, + "runtime/win/lib/_._": { + "rid": "win", + "assetType": "runtime" + } + } + }, + "System.Runtime.Numerics/4.3.0": { + "dependencies": { + "System.Globalization": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0" + } + }, + "System.Runtime.Serialization.Formatters/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Reflection": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Serialization.Primitives": "4.3.0" + } + }, + "System.Runtime.Serialization.Primitives/4.3.0": { + "dependencies": { + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Security.AccessControl/4.4.0": { + "dependencies": { + "System.Security.Principal.Windows": "4.4.0" + }, + "runtimeTargets": { + "runtime/unix/lib/_._": { + "rid": "unix", + "assetType": "runtime" + }, + "runtime/win/lib/_._": { + "rid": "win", + "assetType": "runtime" + } + } + }, + "System.Security.Cryptography.Algorithms/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Runtime.Numerics": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "runtime.native.System.Security.Cryptography.Apple": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + }, + "runtimeTargets": { + "runtime/osx/lib/_._": { + "rid": "osx", + "assetType": "runtime" + }, + "runtime/unix/lib/_._": { + "rid": "unix", + "assetType": "runtime" + }, + "runtime/win/lib/_._": { + "rid": "win", + "assetType": "runtime" + } + } + }, + "System.Security.Cryptography.Cng/4.3.0": { + "dependencies": { + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0" + }, + "runtimeTargets": { + "runtime/unix/lib/_._": { + "rid": "unix", + "assetType": "runtime" + }, + "runtime/win/lib/_._": { + "rid": "win", + "assetType": "runtime" + } + } + }, + "System.Security.Cryptography.Csp/4.3.0": { + "dependencies": { + "System.IO": "4.3.0", + "System.Reflection": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0" + }, + "runtimeTargets": { + "runtime/unix/lib/_._": { + "rid": "unix", + "assetType": "runtime" + }, + "runtime/win/lib/_._": { + "rid": "win", + "assetType": "runtime" + } + } + }, + "System.Security.Cryptography.Encoding/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Collections.Concurrent": "4.3.0", + "System.Linq": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + }, + "runtimeTargets": { + "runtime/unix/lib/_._": { + "rid": "unix", + "assetType": "runtime" + }, + "runtime/win/lib/_._": { + "rid": "win", + "assetType": "runtime" + } + } + }, + "System.Security.Cryptography.OpenSsl/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Runtime.Numerics": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + }, + "runtimeTargets": { + "runtime/unix/lib/_._": { + "rid": "unix", + "assetType": "runtime" + } + } + }, + "System.Security.Cryptography.Primitives/4.3.0": { + "dependencies": { + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.Security.Cryptography.ProtectedData/4.3.0": { + "dependencies": { + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0" + }, + "runtimeTargets": { + "runtimes/unix/lib/netstandard1.3/System.Security.Cryptography.ProtectedData.dll": { + "rid": "unix", + "assetType": "runtime", + "assemblyVersion": "4.0.1.0", + "fileVersion": "4.6.24705.1" + }, + "runtimes/win/lib/netstandard1.3/System.Security.Cryptography.ProtectedData.dll": { + "rid": "win", + "assetType": "runtime", + "assemblyVersion": "4.0.1.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Security.Cryptography.X509Certificates/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.Globalization.Calendars": "4.3.0", + "System.IO": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Runtime.Numerics": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Cng": "4.3.0", + "System.Security.Cryptography.Csp": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.OpenSsl": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0", + "runtime.native.System": "4.3.0", + "runtime.native.System.Net.Http": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + }, + "runtimeTargets": { + "runtime/unix/lib/_._": { + "rid": "unix", + "assetType": "runtime" + }, + "runtime/win/lib/_._": { + "rid": "win", + "assetType": "runtime" + } + } + }, + "System.Security.Principal.Windows/4.4.0": { + "runtimeTargets": { + "runtime/unix/lib/_._": { + "rid": "unix", + "assetType": "runtime" + }, + "runtime/win/lib/_._": { + "rid": "win", + "assetType": "runtime" + } + } + }, + "System.Text.Encoding/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.Text.Encoding.CodePages/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Reflection": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0" + }, + "runtimeTargets": { + "runtimes/unix/lib/netstandard1.3/System.Text.Encoding.CodePages.dll": { + "rid": "unix", + "assetType": "runtime", + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.6.24705.1" + }, + "runtimes/win/lib/netstandard1.3/System.Text.Encoding.CodePages.dll": { + "rid": "win", + "assetType": "runtime", + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Text.Encoding.Extensions/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0", + "System.Text.Encoding": "4.3.0" + } + }, + "System.Text.RegularExpressions/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + } + }, + "System.Threading/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.Threading.Tasks/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.Threading.Tasks.Extensions/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Runtime": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.Threading.Tasks.Parallel/4.3.0": { + "dependencies": { + "System.Collections.Concurrent": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Diagnostics.Tracing": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.Threading.Thread/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + } + }, + "System.Threading.ThreadPool/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0", + "System.Runtime.Handles": "4.3.0" + } + }, + "System.ValueTuple/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Xml.ReaderWriter/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Text.Encoding.Extensions": "4.3.0", + "System.Text.RegularExpressions": "4.3.0", + "System.Threading.Tasks": "4.3.0", + "System.Threading.Tasks.Extensions": "4.3.0" + } + }, + "System.Xml.XDocument/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Diagnostics.Tools": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Reflection": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0", + "System.Xml.ReaderWriter": "4.3.0" + } + }, + "System.Xml.XmlDocument/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0", + "System.Xml.ReaderWriter": "4.3.0" + } + }, + "System.Xml.XPath/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0", + "System.Xml.ReaderWriter": "4.3.0" + } + }, + "System.Xml.XPath.XDocument/4.3.0": { + "dependencies": { + "System.Diagnostics.Debug": "4.3.0", + "System.Linq": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0", + "System.Xml.ReaderWriter": "4.3.0", + "System.Xml.XDocument": "4.3.0", + "System.Xml.XPath": "4.3.0" + } + }, + "Cake.Common/0.30.0": { + "dependencies": { + "Cake.Core": "0.30.0" + }, + "runtime": { + "Cake.Common.dll": {} + } + }, + "Cake.Core/0.30.0": { + "dependencies": { + "Microsoft.Extensions.DependencyModel": "2.0.4", + "Microsoft.Win32.Registry": "4.4.0", + "Newtonsoft.Json": "11.0.2" + }, + "runtime": { + "Cake.Core.dll": {} + } + }, + "Cake.NuGet/0.30.0": { + "dependencies": { + "Cake.Core": "0.30.0", + "Newtonsoft.Json": "11.0.2", + "NuGet.Frameworks": "4.7.0", + "NuGet.PackageManagement.NetStandard": "4.7.0", + "NuGet.ProjectModel": "4.7.0", + "NuGet.Versioning": "4.7.0" + }, + "runtime": { + "Cake.NuGet.dll": {} + } + } + } + }, + "libraries": { + "Cake/0.30.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Autofac/4.6.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-wKI7F6+n45gqfq0T8FuB3hFzaCkuegiFo5in6uB1y2Ai9ZYcjue8yqk3yzyNEwBDS7AyvlTUGSoNovwpUuKqTw==", + "path": "autofac/4.6.2", + "hashPath": "autofac.4.6.2.nupkg.sha512" + }, + "Microsoft.CodeAnalysis.Analyzers/1.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-HS3iRWZKcUw/8eZ/08GXKY2Bn7xNzQPzf8gRPHGSowX7u7XXu9i9YEaBeBNKUXWfI7qjvT2zXtLUvbN0hds8vg==", + "path": "microsoft.codeanalysis.analyzers/1.1.0", + "hashPath": "microsoft.codeanalysis.analyzers.1.1.0.nupkg.sha512" + }, + "Microsoft.CodeAnalysis.Common/2.8.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-69e6Y+eCdllSRRlLLEs8qf7C4b7XhgG2ZQW9X+n7JomrVZ7SPcMF2asPbRTSK2dRJXDlhgxb8d+a8FxFiaoTYQ==", + "path": "microsoft.codeanalysis.common/2.8.2", + "hashPath": "microsoft.codeanalysis.common.2.8.2.nupkg.sha512" + }, + "Microsoft.CodeAnalysis.CSharp/2.8.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-6PwtKdwBv+0+2QqFXZXg7oYXS0v4eYwaA3Jlv2yJLFihv5puQqtVupOM6yecsUhTkdN1ul1YyVZldkPUKMldAQ==", + "path": "microsoft.codeanalysis.csharp/2.8.2", + "hashPath": "microsoft.codeanalysis.csharp.2.8.2.nupkg.sha512" + }, + "Microsoft.CodeAnalysis.CSharp.Scripting/2.8.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-hF+cj43z2o/ZdUdNqup1DDoEWzGA52i8Lhdpo2rChoL6i8OA/mwGUdec/p79ctZng697wUnLJXY3DJ3pTXMvdQ==", + "path": "microsoft.codeanalysis.csharp.scripting/2.8.2", + "hashPath": "microsoft.codeanalysis.csharp.scripting.2.8.2.nupkg.sha512" + }, + "Microsoft.CodeAnalysis.Scripting.Common/2.8.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-rOvSJWBR7HiyoXcQOJ9RHUzqnR7ytl2qkUgVB12gJAALXy4T9NqRnEiMoHaWsqoAz3j2YjE6Hui2Oelu8yi6LA==", + "path": "microsoft.codeanalysis.scripting.common/2.8.2", + "hashPath": "microsoft.codeanalysis.scripting.common.2.8.2.nupkg.sha512" + }, + "Microsoft.DotNet.PlatformAbstractions/2.0.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-2HjSGp63VCLQaeGadrLYR868g25mJHr+TFF81yWCaClzjUbU2vNDx6km7SUgPnoLVksE/1e7in88eh+oPtc4aQ==", + "path": "microsoft.dotnet.platformabstractions/2.0.4", + "hashPath": "microsoft.dotnet.platformabstractions.2.0.4.nupkg.sha512" + }, + "Microsoft.Extensions.DependencyModel/2.0.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-jnHAeijsfJFQXdXmnYK/NhQIkgBUeth//RZZkf0ldIKC+jARbf7YxbA9uTrs/EPhuQxHXaDxVuMyscgmL+UqfA==", + "path": "microsoft.extensions.dependencymodel/2.0.4", + "hashPath": "microsoft.extensions.dependencymodel.2.0.4.nupkg.sha512" + }, + "Microsoft.NETCore.Targets/1.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg==", + "path": "microsoft.netcore.targets/1.1.0", + "hashPath": "microsoft.netcore.targets.1.1.0.nupkg.sha512" + }, + "Microsoft.Win32.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==", + "path": "microsoft.win32.primitives/4.3.0", + "hashPath": "microsoft.win32.primitives.4.3.0.nupkg.sha512" + }, + "Microsoft.Win32.Registry/4.4.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-dA36TlNVn/XfrZtmf0fiI/z1nd3Wfp2QVzTdj26pqgP9LFWq0i1hYEUAW50xUjGFYn1+/cP3KGuxT2Yn1OUNBQ==", + "path": "microsoft.win32.registry/4.4.0", + "hashPath": "microsoft.win32.registry.4.4.0.nupkg.sha512" + }, + "Newtonsoft.Json/11.0.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-IvJe1pj7JHEsP8B8J8DwlMEx8UInrs/x+9oVY+oCD13jpLu4JbJU2WCIsMRn5C4yW9+DgkaO8uiVE5VHKjpmdQ==", + "path": "newtonsoft.json/11.0.2", + "hashPath": "newtonsoft.json.11.0.2.nupkg.sha512" + }, + "NuGet.Commands/4.7.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-dT+kUNusIwHLt/HaQEqOPX6vmibgZ+7zkrb1vXSIo0maTgeZid8LafAPMGvTtbA7wXCjnmLGV3TS2yvoriPOpg==", + "path": "nuget.commands/4.7.0", + "hashPath": "nuget.commands.4.7.0.nupkg.sha512" + }, + "NuGet.Common/4.7.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-5CAnthosaj31hnMAAPbGO8jkR/fIgEVQuoqv1VTdwk0JK+RweEqKtyRnnmjXeQr+bSyAuwQ9UEyvQFnA/Xdvyw==", + "path": "nuget.common/4.7.0", + "hashPath": "nuget.common.4.7.0.nupkg.sha512" + }, + "NuGet.Configuration/4.7.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-wkHccJuA1gVz9RXJtJ8BbKa9i1fTKRAMWNsgTt42CFBLckEFjzJMc1b6cAuJYr6ws2ecNiW702+RoNYC/pDGSg==", + "path": "nuget.configuration/4.7.0", + "hashPath": "nuget.configuration.4.7.0.nupkg.sha512" + }, + "NuGet.Credentials/4.7.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Jde4lIQdLnErG7TAwQJUl3Dfz5FKVYEBFtBn1UaeQwZ/HM9pgBMGd+d0Df57d6VUaOE5xmzk5EYLjvL8zoY4Ww==", + "path": "nuget.credentials/4.7.0", + "hashPath": "nuget.credentials.4.7.0.nupkg.sha512" + }, + "NuGet.DependencyResolver.Core/4.7.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Fy76jMtJeCSL6/7dmUxwnWb1e2PmuxCtdhqd6Kpv5kkNs9MaGlFDn4HA8TTlKEdAllAT78qO6+5JJKWaeThARQ==", + "path": "nuget.dependencyresolver.core/4.7.0", + "hashPath": "nuget.dependencyresolver.core.4.7.0.nupkg.sha512" + }, + "NuGet.Frameworks/4.7.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-/VaEPsEgj3p5YPLLxbYc6rB8gYIPf+8wCWOAlAe3l/SP0DXcefZ58uJer1ToBKIpwbPN5LkgTXtvilze5UJoYQ==", + "path": "nuget.frameworks/4.7.0", + "hashPath": "nuget.frameworks.4.7.0.nupkg.sha512" + }, + "NuGet.LibraryModel/4.7.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-vxNAm9Hb9e+nZTooHzaN3OAt/eYIfDBiLsZyXZI1fc/VKrABoFJN0c7YD+/YKaosM3IePG9Rjt//JD0E5C5uDQ==", + "path": "nuget.librarymodel/4.7.0", + "hashPath": "nuget.librarymodel.4.7.0.nupkg.sha512" + }, + "NuGet.PackageManagement.NetStandard/4.7.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-WjS9nbSOJl5xDpDt6uZ3NUX7DY+aVG98kg+HoXG6w+n0Fh3fVtfzpMXbLJzzK2eCPooqLzYj/nzQOy96WLq21w==", + "path": "nuget.packagemanagement.netstandard/4.7.0", + "hashPath": "nuget.packagemanagement.netstandard.4.7.0.nupkg.sha512" + }, + "NuGet.Packaging/4.7.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-SFLz2//Pojm3MeVk4YybcWEIibzlW8JxXuCUU9BHashUQ8U75QfBNwEVHGuMT4yBl9Uyeb5PCo/PiKijliPxqA==", + "path": "nuget.packaging/4.7.0", + "hashPath": "nuget.packaging.4.7.0.nupkg.sha512" + }, + "NuGet.Packaging.Core/4.7.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-/LXQig2nHMLRaX9I07fv9a0R9J/hsxr3ZdpFwwE2FlS8qdx86V0lsUdcmbk1FIR1gSJSY0MvU4E/e5bCHt5teQ==", + "path": "nuget.packaging.core/4.7.0", + "hashPath": "nuget.packaging.core.4.7.0.nupkg.sha512" + }, + "NuGet.ProjectModel/4.7.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-6THqpJmtaxdwipiWh3Ry58znmuyNrdN9V2FX3f9FK7vJjiSY9y5juw9JggYWDAZooTWLQYFwoj3BVswCQ2EBiw==", + "path": "nuget.projectmodel/4.7.0", + "hashPath": "nuget.projectmodel.4.7.0.nupkg.sha512" + }, + "NuGet.Protocol/4.7.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-IPE4rD1zWd5dJmjuTWXzq8fpqUEZGQMJsxIuQUdTOchvT8Jm+XUIYOyZgSdtg329C5iLr/sPKhJp71eTKxg7ig==", + "path": "nuget.protocol/4.7.0", + "hashPath": "nuget.protocol.4.7.0.nupkg.sha512" + }, + "NuGet.Resolver/4.7.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-cjPT+C0Qz+ru8M0j0eWfgGvn0alKLVFdHbUHkBwEAC0Myj9UHds9Ip7wfgNxCFghQGj3YO4Oe0rli650oFQoZw==", + "path": "nuget.resolver/4.7.0", + "hashPath": "nuget.resolver.4.7.0.nupkg.sha512" + }, + "NuGet.Versioning/4.7.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-mWONvAETGRAB8k+HJMCB3eRtPCCrrd+mhcAWZ564u0GPruKtJKT6ZTvCIDON7Spa9SI9iCa5Wap7c9LVfuJCZQ==", + "path": "nuget.versioning/4.7.0", + "hashPath": "nuget.versioning.4.7.0.nupkg.sha512" + }, + "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-HdSSp5MnJSsg08KMfZThpuLPJpPwE5hBXvHwoKWosyHHfe8Mh5WKT0ylEOf6yNzX6Ngjxe4Whkafh5q7Ymac4Q==", + "path": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-+yH1a49wJMy8Zt4yx5RhJrxO/DBDByAiCzNwiETI+1S4mPdCu0OY4djdciC7Vssk0l22wQaDLrXxXkp+3+7bVA==", + "path": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-c3YNH1GQJbfIPJeCnr4avseugSqPrxwIqzthYyZDN6EuOyNOzq+y2KSUfRcXauya1sF4foESTgwM5e1A8arAKw==", + "path": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.native.System/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", + "path": "runtime.native.system/4.3.0", + "hashPath": "runtime.native.system.4.3.0.nupkg.sha512" + }, + "runtime.native.System.IO.Compression/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-INBPonS5QPEgn7naufQFXJEp3zX6L4bwHgJ/ZH78aBTpeNfQMtf7C6VrAFhlq2xxWBveIOWyFzQjJ8XzHMhdOQ==", + "path": "runtime.native.system.io.compression/4.3.0", + "hashPath": "runtime.native.system.io.compression.4.3.0.nupkg.sha512" + }, + "runtime.native.System.Net.Http/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==", + "path": "runtime.native.system.net.http/4.3.0", + "hashPath": "runtime.native.system.net.http.4.3.0.nupkg.sha512" + }, + "runtime.native.System.Security.Cryptography.Apple/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==", + "path": "runtime.native.system.security.cryptography.apple/4.3.0", + "hashPath": "runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512" + }, + "runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-NS1U+700m4KFRHR5o4vo9DSlTmlCKu/u7dtE5sUHVIPB+xpXxYQvgBgA6wEIeCz6Yfn0Z52/72WYsToCEPJnrw==", + "path": "runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-b3pthNgxxFcD+Pc0WSEoC0+md3MyhRS6aCEeenvNE3Fdw1HyJ18ZhRFVJJzIeR/O/jpxPboB805Ho0T3Ul7w8A==", + "path": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-KeLz4HClKf+nFS7p/6Fi/CqyLXh81FpiGzcmuS8DGi9lUqSnZ6Es23/gv2O+1XVGfrbNmviF7CckBpavkBoIFQ==", + "path": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==", + "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple/4.3.0", + "hashPath": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512" + }, + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-X7IdhILzr4ROXd8mI1BUCQMSHSQwelUlBjF1JyTKCjXaOGn2fB4EKBxQbCK2VjO3WaWIdlXZL3W6TiIVnrhX4g==", + "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-nyFNiCk/r+VOiIqreLix8yN+q3Wga9+SE8BCgkf+2BwEKiNx6DyvFjCgkfV743/grxv8jHJ8gUK4XEQw7yzRYg==", + "path": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ytoewC6wGorL7KoCAvRfsgoJPJbNq+64k2SqW6JcOAebWsFUvCCYgfzQMrnpvPiEl4OrblUlhF2ji+Q1+SVLrQ==", + "path": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-I8bKw2I8k58Wx7fMKQJn2R8lamboCAiHfHeV/pS65ScKWMMI0+wJkLYlEKvgW1D/XvSl/221clBoR2q9QNNM7A==", + "path": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VB5cn/7OzUfzdnC8tqAIMQciVLiq2epm2NrAm1E9OjNRyG4lVhfR61SMcLizejzQP8R8Uf/0l5qOIbUEi+RdEg==", + "path": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "System.AppContext/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-fKC+rmaLfeIzUhagxY17Q9siv/sPrjjKcfNg1Ic8IlQkZLipo8ljcaZQu4VtI4Jqbzjc2VTjzGLF6WmsRXAEgA==", + "path": "system.appcontext/4.3.0", + "hashPath": "system.appcontext.4.3.0.nupkg.sha512" + }, + "System.Buffers/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ratu44uTIHgeBeI0dE8DWvmXVBSo4u7ozRZZHOMmK/JPpYyo0dAfgSiHlpiObMQ5lEtEyIXA40sKRYg5J6A8uQ==", + "path": "system.buffers/4.3.0", + "hashPath": "system.buffers.4.3.0.nupkg.sha512" + }, + "System.Collections/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==", + "path": "system.collections/4.3.0", + "hashPath": "system.collections.4.3.0.nupkg.sha512" + }, + "System.Collections.Concurrent/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==", + "path": "system.collections.concurrent/4.3.0", + "hashPath": "system.collections.concurrent.4.3.0.nupkg.sha512" + }, + "System.Collections.Immutable/1.3.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-n+AGX7zmiZumW9aggOkXaHzUeAS3EfeTErnkKCusyONUozbTv+kMb8VE36m+ldV6kF9g57G2c641KCdgH9E0pg==", + "path": "system.collections.immutable/1.3.1", + "hashPath": "system.collections.immutable.1.3.1.nupkg.sha512" + }, + "System.ComponentModel/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-oBZFnm7seFiVfugsIyOvQCWobNZs7FzqDV/B7tx20Ep/l3UUFCPDkdTnCNaJZTU27zjeODmy2C/cP60u3D4c9w==", + "path": "system.componentmodel/4.0.1", + "hashPath": "system.componentmodel.4.0.1.nupkg.sha512" + }, + "System.Console/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-DHDrIxiqk1h03m6khKWV2X8p/uvN79rgSqpilL6uzpmSfxfU5ng8VcPtW4qsDsQDHiTv6IPV9TmD5M/vElPNLg==", + "path": "system.console/4.3.0", + "hashPath": "system.console.4.3.0.nupkg.sha512" + }, + "System.Diagnostics.Debug/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==", + "path": "system.diagnostics.debug/4.3.0", + "hashPath": "system.diagnostics.debug.4.3.0.nupkg.sha512" + }, + "System.Diagnostics.FileVersionInfo/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-omCF64wzQ3Q2CeIqkD6lmmxeMZtGHUmzgFMPjfVaOsyqpR66p/JaZzManMw1s33osoAb5gqpncsjie67+yUPHQ==", + "path": "system.diagnostics.fileversioninfo/4.3.0", + "hashPath": "system.diagnostics.fileversioninfo.4.3.0.nupkg.sha512" + }, + "System.Diagnostics.Process/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-J0wOX07+QASQblsfxmIMFc9Iq7KTXYL3zs2G/Xc704Ylv3NpuVdo6gij6V3PGiptTxqsK0K7CdXenRvKUnkA2g==", + "path": "system.diagnostics.process/4.3.0", + "hashPath": "system.diagnostics.process.4.3.0.nupkg.sha512" + }, + "System.Diagnostics.StackTrace/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BiHg0vgtd35/DM9jvtaC1eKRpWZxr0gcQd643ABG7GnvSlf5pOkY2uyd42mMOJoOmKvnpNj0F4tuoS1pacTwYw==", + "path": "system.diagnostics.stacktrace/4.3.0", + "hashPath": "system.diagnostics.stacktrace.4.3.0.nupkg.sha512" + }, + "System.Diagnostics.Tools/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==", + "path": "system.diagnostics.tools/4.3.0", + "hashPath": "system.diagnostics.tools.4.3.0.nupkg.sha512" + }, + "System.Diagnostics.Tracing/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==", + "path": "system.diagnostics.tracing/4.3.0", + "hashPath": "system.diagnostics.tracing.4.3.0.nupkg.sha512" + }, + "System.Dynamic.Runtime/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-SNVi1E/vfWUAs/WYKhE9+qlS6KqK0YVhnlT0HQtr8pMIA8YX3lwy3uPMownDwdYISBdmAF/2holEIldVp85Wag==", + "path": "system.dynamic.runtime/4.3.0", + "hashPath": "system.dynamic.runtime.4.3.0.nupkg.sha512" + }, + "System.Globalization/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==", + "path": "system.globalization/4.3.0", + "hashPath": "system.globalization.4.3.0.nupkg.sha512" + }, + "System.Globalization.Calendars/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==", + "path": "system.globalization.calendars/4.3.0", + "hashPath": "system.globalization.calendars.4.3.0.nupkg.sha512" + }, + "System.IO/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", + "path": "system.io/4.3.0", + "hashPath": "system.io.4.3.0.nupkg.sha512" + }, + "System.IO.Compression/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==", + "path": "system.io.compression/4.3.0", + "hashPath": "system.io.compression.4.3.0.nupkg.sha512" + }, + "System.IO.FileSystem/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==", + "path": "system.io.filesystem/4.3.0", + "hashPath": "system.io.filesystem.4.3.0.nupkg.sha512" + }, + "System.IO.FileSystem.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==", + "path": "system.io.filesystem.primitives/4.3.0", + "hashPath": "system.io.filesystem.primitives.4.3.0.nupkg.sha512" + }, + "System.Linq/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==", + "path": "system.linq/4.3.0", + "hashPath": "system.linq.4.3.0.nupkg.sha512" + }, + "System.Linq.Expressions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==", + "path": "system.linq.expressions/4.3.0", + "hashPath": "system.linq.expressions.4.3.0.nupkg.sha512" + }, + "System.ObjectModel/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==", + "path": "system.objectmodel/4.3.0", + "hashPath": "system.objectmodel.4.3.0.nupkg.sha512" + }, + "System.Reflection/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", + "path": "system.reflection/4.3.0", + "hashPath": "system.reflection.4.3.0.nupkg.sha512" + }, + "System.Reflection.Emit/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-228FG0jLcIwTVJyz8CLFKueVqQK36ANazUManGaJHkO0icjiIypKW7YLWLIWahyIkdh5M7mV2dJepllLyA1SKg==", + "path": "system.reflection.emit/4.3.0", + "hashPath": "system.reflection.emit.4.3.0.nupkg.sha512" + }, + "System.Reflection.Emit.ILGeneration/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==", + "path": "system.reflection.emit.ilgeneration/4.3.0", + "hashPath": "system.reflection.emit.ilgeneration.4.3.0.nupkg.sha512" + }, + "System.Reflection.Emit.Lightweight/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==", + "path": "system.reflection.emit.lightweight/4.3.0", + "hashPath": "system.reflection.emit.lightweight.4.3.0.nupkg.sha512" + }, + "System.Reflection.Extensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==", + "path": "system.reflection.extensions/4.3.0", + "hashPath": "system.reflection.extensions.4.3.0.nupkg.sha512" + }, + "System.Reflection.Metadata/1.4.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-KYPNMDrLB2R+G5JJiJ2fjBpihtktKVIjsirmyyv+VDo5rQkIR9BWeCYM1wDSzbQatWNZ/NQfPsQyTB1Ui3qBfQ==", + "path": "system.reflection.metadata/1.4.2", + "hashPath": "system.reflection.metadata.1.4.2.nupkg.sha512" + }, + "System.Reflection.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", + "path": "system.reflection.primitives/4.3.0", + "hashPath": "system.reflection.primitives.4.3.0.nupkg.sha512" + }, + "System.Reflection.TypeExtensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==", + "path": "system.reflection.typeextensions/4.3.0", + "hashPath": "system.reflection.typeextensions.4.3.0.nupkg.sha512" + }, + "System.Resources.ResourceManager/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==", + "path": "system.resources.resourcemanager/4.3.0", + "hashPath": "system.resources.resourcemanager.4.3.0.nupkg.sha512" + }, + "System.Runtime/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==", + "path": "system.runtime/4.3.0", + "hashPath": "system.runtime.4.3.0.nupkg.sha512" + }, + "System.Runtime.Extensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==", + "path": "system.runtime.extensions/4.3.0", + "hashPath": "system.runtime.extensions.4.3.0.nupkg.sha512" + }, + "System.Runtime.Handles/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==", + "path": "system.runtime.handles/4.3.0", + "hashPath": "system.runtime.handles.4.3.0.nupkg.sha512" + }, + "System.Runtime.InteropServices/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==", + "path": "system.runtime.interopservices/4.3.0", + "hashPath": "system.runtime.interopservices.4.3.0.nupkg.sha512" + }, + "System.Runtime.InteropServices.RuntimeInformation/4.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-hWPhJxc453RCa8Z29O91EmfGeZIHX1ZH2A8L6lYQVSaKzku2DfArSfMEb1/MYYzPQRJZeu0c9dmYeJKxW5Fgng==", + "path": "system.runtime.interopservices.runtimeinformation/4.0.0", + "hashPath": "system.runtime.interopservices.runtimeinformation.4.0.0.nupkg.sha512" + }, + "System.Runtime.Numerics/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==", + "path": "system.runtime.numerics/4.3.0", + "hashPath": "system.runtime.numerics.4.3.0.nupkg.sha512" + }, + "System.Runtime.Serialization.Formatters/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-KT591AkTNFOTbhZlaeMVvfax3RqhH1EJlcwF50Wm7sfnBLuHiOeZRRKrr1ns3NESkM20KPZ5Ol/ueMq5vg4QoQ==", + "path": "system.runtime.serialization.formatters/4.3.0", + "hashPath": "system.runtime.serialization.formatters.4.3.0.nupkg.sha512" + }, + "System.Runtime.Serialization.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Wz+0KOukJGAlXjtKr+5Xpuxf8+c8739RI1C+A2BoQZT+wMCCoMDDdO8/4IRHfaVINqL78GO8dW8G2lW/e45Mcw==", + "path": "system.runtime.serialization.primitives/4.3.0", + "hashPath": "system.runtime.serialization.primitives.4.3.0.nupkg.sha512" + }, + "System.Security.AccessControl/4.4.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-2NRFPX/V81ucKQmqNgGBZrKGH/5ejsvivSGMRum0SMgPnJxwhuNkzVS1+7gC3R2X0f57CtwrPrXPPSe6nOp82g==", + "path": "system.security.accesscontrol/4.4.0", + "hashPath": "system.security.accesscontrol.4.4.0.nupkg.sha512" + }, + "System.Security.Cryptography.Algorithms/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==", + "path": "system.security.cryptography.algorithms/4.3.0", + "hashPath": "system.security.cryptography.algorithms.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.Cng/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-03idZOqFlsKRL4W+LuCpJ6dBYDUWReug6lZjBa3uJWnk5sPCUXckocevTaUA8iT/MFSrY/2HXkOt753xQ/cf8g==", + "path": "system.security.cryptography.cng/4.3.0", + "hashPath": "system.security.cryptography.cng.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.Csp/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==", + "path": "system.security.cryptography.csp/4.3.0", + "hashPath": "system.security.cryptography.csp.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.Encoding/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==", + "path": "system.security.cryptography.encoding/4.3.0", + "hashPath": "system.security.cryptography.encoding.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==", + "path": "system.security.cryptography.openssl/4.3.0", + "hashPath": "system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==", + "path": "system.security.cryptography.primitives/4.3.0", + "hashPath": "system.security.cryptography.primitives.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.ProtectedData/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-qBUHUk7IqrPHY96THHTa1akCxw0GsNFpsk3XFHbi0A0tMUDBpQprtY1Tbl6yaS1x4c96ilcXU8PocYtmSmkaQQ==", + "path": "system.security.cryptography.protecteddata/4.3.0", + "hashPath": "system.security.cryptography.protecteddata.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.X509Certificates/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==", + "path": "system.security.cryptography.x509certificates/4.3.0", + "hashPath": "system.security.cryptography.x509certificates.4.3.0.nupkg.sha512" + }, + "System.Security.Principal.Windows/4.4.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-pP+AOzt1o3jESOuLmf52YQTF7H3Ng9hTnrOESQiqsnl2IbBh1HInsAMHYtoh75iUYV0OIkHmjvveraYB6zM97w==", + "path": "system.security.principal.windows/4.4.0", + "hashPath": "system.security.principal.windows.4.4.0.nupkg.sha512" + }, + "System.Text.Encoding/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", + "path": "system.text.encoding/4.3.0", + "hashPath": "system.text.encoding.4.3.0.nupkg.sha512" + }, + "System.Text.Encoding.CodePages/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-IRiEFUa5b/Gs5Egg8oqBVoywhtOeaO2KOx3j0RfcYY/raxqBuEK7NXRDgOwtYM8qbi+7S4RPXUbNt+ZxyY0/NQ==", + "path": "system.text.encoding.codepages/4.3.0", + "hashPath": "system.text.encoding.codepages.4.3.0.nupkg.sha512" + }, + "System.Text.Encoding.Extensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==", + "path": "system.text.encoding.extensions/4.3.0", + "hashPath": "system.text.encoding.extensions.4.3.0.nupkg.sha512" + }, + "System.Text.RegularExpressions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-RpT2DA+L660cBt1FssIE9CAGpLFdFPuheB7pLpKpn6ZXNby7jDERe8Ua/Ne2xGiwLVG2JOqziiaVCGDon5sKFA==", + "path": "system.text.regularexpressions/4.3.0", + "hashPath": "system.text.regularexpressions.4.3.0.nupkg.sha512" + }, + "System.Threading/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==", + "path": "system.threading/4.3.0", + "hashPath": "system.threading.4.3.0.nupkg.sha512" + }, + "System.Threading.Tasks/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", + "path": "system.threading.tasks/4.3.0", + "hashPath": "system.threading.tasks.4.3.0.nupkg.sha512" + }, + "System.Threading.Tasks.Extensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-npvJkVKl5rKXrtl1Kkm6OhOUaYGEiF9wFbppFRWSMoApKzt2PiPHT2Bb8a5sAWxprvdOAtvaARS9QYMznEUtug==", + "path": "system.threading.tasks.extensions/4.3.0", + "hashPath": "system.threading.tasks.extensions.4.3.0.nupkg.sha512" + }, + "System.Threading.Tasks.Parallel/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-cbjBNZHf/vQCfcdhzx7knsiygoCKgxL8mZOeocXZn5gWhCdzHIq6bYNKWX0LAJCWYP7bds4yBK8p06YkP0oa0g==", + "path": "system.threading.tasks.parallel/4.3.0", + "hashPath": "system.threading.tasks.parallel.4.3.0.nupkg.sha512" + }, + "System.Threading.Thread/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-OHmbT+Zz065NKII/ZHcH9XO1dEuLGI1L2k7uYss+9C1jLxTC9kTZZuzUOyXHayRk+dft9CiDf3I/QZ0t8JKyBQ==", + "path": "system.threading.thread/4.3.0", + "hashPath": "system.threading.thread.4.3.0.nupkg.sha512" + }, + "System.Threading.ThreadPool/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-k/+g4b7vjdd4aix83sTgC9VG6oXYKAktSfNIJUNGxPEj7ryEOfzHHhfnmsZvjxawwcD9HyWXKCXmPjX8U4zeSw==", + "path": "system.threading.threadpool/4.3.0", + "hashPath": "system.threading.threadpool.4.3.0.nupkg.sha512" + }, + "System.ValueTuple/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-cNLEvBX3d6MMQRZe3SMFNukVbitDAEpVZO17qa0/2FHxZ7Y7PpFRpr6m2615XYM/tYYYf0B+WyHNujqIw8Luwg==", + "path": "system.valuetuple/4.3.0", + "hashPath": "system.valuetuple.4.3.0.nupkg.sha512" + }, + "System.Xml.ReaderWriter/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==", + "path": "system.xml.readerwriter/4.3.0", + "hashPath": "system.xml.readerwriter.4.3.0.nupkg.sha512" + }, + "System.Xml.XDocument/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-5zJ0XDxAIg8iy+t4aMnQAu0MqVbqyvfoUVl1yDV61xdo3Vth45oA2FoY4pPkxYAH5f8ixpmTqXeEIya95x0aCQ==", + "path": "system.xml.xdocument/4.3.0", + "hashPath": "system.xml.xdocument.4.3.0.nupkg.sha512" + }, + "System.Xml.XmlDocument/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-lJ8AxvkX7GQxpC6GFCeBj8ThYVyQczx2+f/cWHJU8tjS7YfI6Cv6bon70jVEgs2CiFbmmM8b9j1oZVx0dSI2Ww==", + "path": "system.xml.xmldocument/4.3.0", + "hashPath": "system.xml.xmldocument.4.3.0.nupkg.sha512" + }, + "System.Xml.XPath/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-v1JQ5SETnQusqmS3RwStF7vwQ3L02imIzl++sewmt23VGygix04pEH+FCj1yWb+z4GDzKiljr1W7Wfvrx0YwgA==", + "path": "system.xml.xpath/4.3.0", + "hashPath": "system.xml.xpath.4.3.0.nupkg.sha512" + }, + "System.Xml.XPath.XDocument/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-jw9oHHEIVW53mHY9PgrQa98Xo2IZ0ZjrpdOTmtvk+Rvg4tq7dydmxdNqUvJ5YwjDqhn75mBXWttWjiKhWP53LQ==", + "path": "system.xml.xpath.xdocument/4.3.0", + "hashPath": "system.xml.xpath.xdocument.4.3.0.nupkg.sha512" + }, + "Cake.Common/0.30.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Cake.Core/0.30.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Cake.NuGet/0.30.0": { + "type": "project", + "serviceable": false, + "sha512": "" + } + } +} \ No newline at end of file diff --git a/integration-test/tools/Cake.CoreCLR/Cake.runtimeconfig.json b/integration-test/tools/Cake.CoreCLR/Cake.runtimeconfig.json new file mode 100644 index 0000000..7539019 --- /dev/null +++ b/integration-test/tools/Cake.CoreCLR/Cake.runtimeconfig.json @@ -0,0 +1,9 @@ +{ + "runtimeOptions": { + "tfm": "netcoreapp2.0", + "framework": { + "name": "Microsoft.NETCore.App", + "version": "2.0.0" + } + } +} \ No newline at end of file diff --git a/integration-test/tools/Cake.CoreCLR/Cake.xml b/integration-test/tools/Cake.CoreCLR/Cake.xml new file mode 100644 index 0000000..c27e450 --- /dev/null +++ b/integration-test/tools/Cake.CoreCLR/Cake.xml @@ -0,0 +1,356 @@ + + + + Cake + + + + + Represents an argument parser. + + + + + Parses the specified arguments. + + The arguments to parse. + A instance representing the arguments. + + + + Responsible for parsing . + + + + + Initializes a new instance of the class. + + The log. + + + + Parses the provided string to a . + + The string to parse. + The verbosity. + true if parsing succeeded; otherwise false. + + + + The Cake application. + + + + + Initializes a new instance of the class. + + The command factory. + + + + Runs the application with the specified arguments. + + The options. + The application exit code. + + + + Gets the arguments. + + The arguments. + + + + Initializes a new instance of the class. + + The options. + + + + Determines whether or not the specified argument exist. + + The argument name. + + true if the argument exist; otherwise false. + + + + + Gets an argument. + + The argument name. + The argument value. + + + + The options that determines how the application should behave. + + + + + Gets or sets the output verbosity. + + The output verbosity. + + + + Gets or sets the build script. + + The build script. + + + + Gets the script arguments. + + The script arguments. + + + + Gets or sets a value indicating whether to show task descriptions. + + + true to show task description; otherwise, false. + + + + + Gets or sets a value indicating whether to perform a dry run. + + + true if a dry run should be performed; otherwise, false. + + + + + Gets or sets a value indicating whether to debug script. + + + true if a debug session should be started; otherwise, false. + + + + + Gets or sets a value indicating whether to show help. + + + true to show help; otherwise, false. + + + + + Gets or sets a value indicating whether to show version information. + + + true to show version information; otherwise, false. + + + + + Gets or sets a value indicating whether an error occurred during parsing. + + + true if an error occurred during parsing; otherwise, false. + + + + + Gets or sets a value indicating whether to bootstrap Cake modules. + + + + + Gets or sets a value indicating whether or not to use the target exclusively. + + + + + Initializes a new instance of the class. + + + + + A command that builds and runs a build script. + + + + + A command that builds and debugs a build script. + + + + + A command that displays information about script tasks. + + + + + A command that dry runs a build script. + + + + + A command that decorates another command but always return failure. + + + + + A command that displays help information. + + + + + Represents an executable command. + + + + + Executes the command with the specified options. + + The options. + true if the command exited successfully; otherwise, false. + + + + Represents a command factory. + + + + + Creates the bootstrap command. + + The bootstrap command. + + + + Creates the build command. + + The build command. + + + + Creates the debug command. + + The debug command. + + + + Creates the description command. + + The description command. + + + + Creates the dry run command. + + The dry run command. + + + + Creates the help command. + + The help command. + + + + Creates the version command. + + The version command. + + + + A command that shows version information. + + + + + Represents a debugger + + + + + Gets the current process id + + The current process id + + + + Wait for the debugger to attach + + A TimeSpan that represents the number of milliseconds to wait, + or a TimeSpan that represents -1 milliseconds to wait indefinitely. + true if the debugger is attached within the timeout; otherwise, false. + + + + The Cake program. + + + + + The application entry point. + + The application exit code. + + + + The script host used to execute Cake scripts. + + + + + Initializes a new instance of the class. + + The engine. + The context. + The report printer. + The log. + + + + Runs the specified target. + + The target to run. + The resulting report. + + + + The script host used for showing task descriptions. + + + + + Initializes a new instance of the class. + + The engine. + The context. + The console. + + + + Runs the specified target. + + The target to run. + The resulting report. + + + + The script host used to dry run Cake scripts. + + + + + Initializes a new instance of the class. + + The engine. + The context. + The log. + + + + Runs the specified target. + + The target to run. + The resulting report. + + + diff --git a/integration-test/tools/Cake.CoreCLR/LICENSE b/integration-test/tools/Cake.CoreCLR/LICENSE new file mode 100644 index 0000000..403462a --- /dev/null +++ b/integration-test/tools/Cake.CoreCLR/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright (c) .NET Foundation and Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/integration-test/tools/Cake.CoreCLR/[Content_Types].xml b/integration-test/tools/Cake.CoreCLR/[Content_Types].xml new file mode 100644 index 0000000..c2e1200 --- /dev/null +++ b/integration-test/tools/Cake.CoreCLR/[Content_Types].xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/integration-test/tools/Cake.CoreCLR/_rels/.rels b/integration-test/tools/Cake.CoreCLR/_rels/.rels new file mode 100644 index 0000000..8830b24 --- /dev/null +++ b/integration-test/tools/Cake.CoreCLR/_rels/.rels @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/integration-test/tools/Cake.CoreCLR/package/services/metadata/core-properties/bfe1d681516f4c96b01e215338bd2158.psmdcp b/integration-test/tools/Cake.CoreCLR/package/services/metadata/core-properties/bfe1d681516f4c96b01e215338bd2158.psmdcp new file mode 100644 index 0000000..453867b --- /dev/null +++ b/integration-test/tools/Cake.CoreCLR/package/services/metadata/core-properties/bfe1d681516f4c96b01e215338bd2158.psmdcp @@ -0,0 +1,9 @@ + + + Patrik Svensson, Mattias Karlsson, Gary Ewan Park, Alistair Chapman, Martin Björkström, Dave Glick, Pascal Berger and contributors + The Cake script runner. + Cake.CoreCLR + 0.30.0 + Cake Script Build + NuGet, Version=4.7.1.5, Culture=neutral, PublicKeyToken=31bf3856ad364e35;Microsoft Windows NT 6.2.9200.0;.NET Framework 4.6 + \ No newline at end of file diff --git a/integration-test/tools/Cake/.signature.p7s b/integration-test/tools/Cake/.signature.p7s new file mode 100644 index 0000000..68e57b5 Binary files /dev/null and b/integration-test/tools/Cake/.signature.p7s differ diff --git a/integration-test/tools/Cake/Cake.Common.xml b/integration-test/tools/Cake/Cake.Common.xml new file mode 100644 index 0000000..2142dd8 --- /dev/null +++ b/integration-test/tools/Cake/Cake.Common.xml @@ -0,0 +1,29164 @@ + + + + Cake.Common + + + + + Contains functionality related to arguments. + + + + + Determines whether or not the specified argument exist. + + The context. + The argument name. + Whether or not the specified argument exist. + + This sample shows how to call the method. + + var argumentName = "myArgument"; + //Cake.exe .\hasargument.cake -myArgument="is specified" + if (HasArgument(argumentName)) + { + Information("{0} is specified", argumentName); + } + //Cake.exe .\hasargument.cake + else + { + Warning("{0} not specified", argumentName); + } + + + + + + Gets an argument and throws if the argument is missing. + + The argument type. + The context. + The argument name. + The value of the argument. + + + //Cake.exe .\argument.cake -myArgument="is valid" -loopCount = 5 + Information("Argument {0}", Argument<string>("myArgument")); + var loopCount = Argument<int>("loopCount"); + for(var index = 0;index<loopCount; index++) + { + Information("Index {0}", index); + } + + + Argument value is null. + is null. + + + + Gets an argument and returns the provided if the argument is missing. + + The argument type. + The context. + The argument name. + The value to return if the argument is missing. + The value of the argument if it exist; otherwise . + + + //Cake.exe .\argument.cake -myArgument="is valid" -loopCount = 5 + Information("Argument {0}", Argument<string>("myArgument", "is NOT valid")); + var loopCount = Argument<int>("loopCount", 10); + for(var index = 0;index<loopCount; index++) + { + Information("Index {0}", index); + } + + + + + + Base class used to provide information about the AppVeyor environment. + + + + + Initializes a new instance of the class. + + The environment. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + AppVeyor AddMessage categories + + + + + Informational message + + + + + Warning message + + + + + Error message + + + + + Responsible for communicating with AppVeyor. + + + + + Gets a value indicating whether the current build is running on AppVeyor. + + + true if the current build is running on AppVeyor.; otherwise, false. + + Via BuildSystem + + + if (BuildSystem.AppVeyor.IsRunningOnAppVeyor) + { + Information("Running on AppVeyor"); + } + else + { + Information("Not running on AppVeyor"); + } + + + Via AppVeyor + + + if (AppVeyor.IsRunningOnAppVeyor) + { + Information("Running on AppVeyor"); + } + else + { + Information("Not running on AppVeyor"); + } + + + + + + Gets the AppVeyor environment. + + + The AppVeyor environment. + + Via BuildSystem + + + if (BuildSystem.AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"Environment: + ApiUrl: {0} + Configuration: {1} + JobId: {2} + JobName: {3} + Platform: {4} + ScheduledBuild: {5}", + BuildSystem.AppVeyor.Environment.ApiUrl, + BuildSystem.AppVeyor.Environment.Configuration, + BuildSystem.AppVeyor.Environment.JobId, + BuildSystem.AppVeyor.Environment.JobName, + BuildSystem.AppVeyor.Environment.Platform, + BuildSystem.AppVeyor.Environment.ScheduledBuild + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + Via AppVeyor + + + if (AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"Environment: + ApiUrl: {0} + Configuration: {1} + JobId: {2} + JobName: {3} + Platform: {4} + ScheduledBuild: {5}", + AppVeyor.Environment.ApiUrl, + AppVeyor.Environment.Configuration, + AppVeyor.Environment.JobId, + AppVeyor.Environment.JobName, + AppVeyor.Environment.Platform, + AppVeyor.Environment.ScheduledBuild + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + + + + Initializes a new instance of the class. + + The environment. + The process runner. + The cake log. + + + + Uploads an AppVeyor artifact. + + The file path of the artifact to upload. + + + + Uploads an AppVeyor artifact. + + The file path of the artifact to upload. + The settings to apply when uploading an artifact + + + + Uploads an AppVeyor artifact. + + The file path of the artifact to upload. + The settings to apply when uploading an artifact + + + + Uploads test results XML file to AppVeyor. Results type can be one of the following: mstest, xunit, nunit, nunit3, junit. + + The file path of the test results XML to upload. + The results type. Can be mstest, xunit, nunit, nunit3 or junit. + + + + Updates the build version. + + The new build version. + Via BuildSystem + + + if (BuildSystem.AppVeyor.IsRunningOnAppVeyor) + { + BuildSystem.AppVeyor.UpdateBuildVersion("2.0.0.0"); + } + else + { + Information("Not running on AppVeyor"); + } + + + Via AppVeyor + + + if (AppVeyor.IsRunningOnAppVeyor) + { + AppVeyor.UpdateBuildVersion("2.0.0.0"); + } + else + { + Information("Not running on AppVeyor"); + } + + + + + + Adds a message to the AppVeyor build. Messages can be categorised as: Information, Warning or Error + + A short message to display + The category of the message + Additional message details + Via BuildSystem + + + if (BuildSystem.AppVeyor.IsRunningOnAppVeyor) + { + BuildSystem.AppVeyor.AddMessage( + "This is a error message.", + AppVeyorMessageCategoryType.Error, + "Error details." + ); + + BuildSystem.AppVeyor.AddMessage( + "This is a information message.", + AppVeyorMessageCategoryType.Information, + "Information details." + ); + + BuildSystem.AppVeyor.AddMessage( + "This is a warning message.", + AppVeyorMessageCategoryType.Warning, + "Warning details." + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + Via AppVeyor + + + if (AppVeyor.IsRunningOnAppVeyor) + { + AppVeyor.AddMessage( + "This is a error message.", + AppVeyorMessageCategoryType.Error, + "Error details." + ); + + AppVeyor.AddMessage( + "This is a information message.", + AppVeyorMessageCategoryType.Information, + "Information details." + ); + + AppVeyor.AddMessage( + "This is a warning message.", + AppVeyorMessageCategoryType.Warning, + "Warning details." + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + + + + AddMessage extension methods for the IAppVeyorProvider + + + + + Adds an informational message to the AppVeyor build log + + The AppVeyor provider + The message + The args + + + + Adds a warning message to the AppVeyor build log + + The AppVeyor provider + The message + The args + + + + Adds a warning message to the AppVeyor build log + + The AppVeyor provider + The message + The args + + + + Adds a warning message to the AppVeyor build log + + The AppVeyor provider + The message + The exception + + + + Provides the known values for the AppVeyor test results types. + + + + + MSTest test results. + + + + + XUnit test results. + + + + + NUnit test results. + + + + + NUnit v3 test results. + + + + + JUnit test results. + + + + + Appveyor upload artifacts settings + + + + + Gets or sets a value indicating the type of artifact being uploaded to AppVeyor. + + + + + Gets or sets a value indicating a deployment name to set for the uploaded artifact + + + + + Sets the type of artifact being uploaded to AppVeyor + + The type of artifact being uploaded + The settings + + + + Sets the deployment name + + The deployment name to attach to the artifact, required when using the AppVeyor deployment agent. should not have any spaces + The settings + + + + Provides the known artifact upload types for the AppVeyor + + + + + Automatically deploy artifact type + + + + + The artifact is a web deploy package (.zip) + + + + + The artifact is a NuGet package (.nupkg) + + + + + Provides AppVeyor build information for a current build. + + + + + Gets the path to the clone directory. + + + The path to the clone directory. + + + + + Gets the AppVeyor unique build ID. + + + The AppVeyor unique build ID. + + + + + Gets the build number. + + + The build number. + + + + + Gets the build version. + + + The build version. + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides AppVeyor commit information for a current build. + + + + + Gets commit ID (SHA). + + + The commit ID (SHA). + + + + + Gets the commit author's name. + + + The commit author's name. + + + + + Gets the commit author's email address. + + + The commit author's email address. + + + + + Gets the commit date/time. + + + The commit date/time. + + + + + Gets the commit message. + + + The commit message. + + + + + Gets the rest of commit message after line break (if exists). + + + The rest of commit message after line break (if exists). + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides AppVeyor environment information for a current build. + + + + + Gets the AppVeyor build agent API URL. + + + The AppVeyor build agent API URL. + + Via BuildSystem + + + if (BuildSystem.AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"API URL:{0}, + BuildSystem.AppVeyor.Environment.ApiUrl + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + Via AppVeyor + + + if (AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"API URL:{0}, + AppVeyor.Environment.ApiUrl + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + + + + Gets the AppVeyor unique job ID. + + + The AppVeyor unique job ID. + + Via BuildSystem + + + if (BuildSystem.AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"Job Id:{0}, + BuildSystem.AppVeyor.Environment.JobId + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + Via AppVeyor + + + if (AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"Job Id:{0}, + AppVeyor.Environment.JobId + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + + + + Gets the AppVeyor Job Name. + + + The AppVeyor Job Name. + + Via BuildSystem + + + if (BuildSystem.AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"Job Name:{0}, + BuildSystem.AppVeyor.Environment.JobName + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + Via AppVeyor + + + if (AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"Job Name:{0}, + AppVeyor.Environment.JobName + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + + + + Gets a value indicating whether the build runs by scheduler. + + + true if the build runs by scheduler; otherwise, false. + + Via BuildSystem + + + if (BuildSystem.AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"Scheduled Build:{0}, + BuildSystem.AppVeyor.Environment.ScheduledBuild + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + Via AppVeyor + + + if (AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"Scheduled Build:{0}, + AppVeyor.Environment.ScheduledBuild + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + + + + Gets the platform name set on build tab of project settings (or through platform parameter in appveyor.yml). + + + The platform name set on build tab of project settings (or through platform parameter in appveyor.yml). + + Via BuildSystem + + + if (BuildSystem.AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"Platform:{0}, + BuildSystem.AppVeyor.Environment.Platform + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + Via AppVeyor + + + if (AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"Platform:{0}, + AppVeyor.Environment.Platform + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + + + + Gets the configuration name set on build tab of project settings (or through configuration parameter in appveyor.yml). + + + The configuration name set on build tab of project settings (or through configuration parameter in appveyor.yml). + + Via BuildSystem + + + if (BuildSystem.AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"Configuration:{0}, + BuildSystem.AppVeyor.Environment.Configuration + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + Via AppVeyor + + + if (AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"Configuration:{0}, + AppVeyor.Environment.Configuration + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + + + + Gets AppVeyor project information. + + + The AppVeyor project information. + + Via BuildSystem + + + if (BuildSystem.AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"Project: + Id: {0} + Name: {1} + Slug: {2}", + BuildSystem.AppVeyor.Environment.Project.Id, + BuildSystem.AppVeyor.Environment.Project.Name, + BuildSystem.AppVeyor.Environment.Project.Slug + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + Via AppVeyor + + + // via appveyor + if (AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"Project: + Id: {0} + Name: {1} + Slug: {2}", + AppVeyor.Environment.Project.Id, + AppVeyor.Environment.Project.Name, + AppVeyor.Environment.Project.Slug + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + + + + Gets AppVeyor build information. + + + The AppVeyor build information. + + Via BuildSystem + + + if (BuildSystem.AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"Build: + Folder: {0} + Id: {1} + Number: {2} + Version: {3}", + BuildSystem.AppVeyor.Environment.Build.Folder, + BuildSystem.AppVeyor.Environment.Build.Id, + BuildSystem.AppVeyor.Environment.Build.Number, + BuildSystem.AppVeyor.Environment.Build.Version + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + Via AppVeyor + + + if (AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"Build: + Folder: {0} + Id: {1} + Number: {2} + Version: {3}", + AppVeyor.Environment.Build.Folder, + AppVeyor.Environment.Build.Id, + AppVeyor.Environment.Build.Number, + AppVeyor.Environment.Build.Version + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + + + + Gets AppVeyor pull request information. + + + The AppVeyor pull request information. + + Via BuildSystem + + + if (BuildSystem.AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"PullRequest: + IsPullRequest: {0} + Number: {1} + Title: {2}", + BuildSystem.AppVeyor.Environment.PullRequest.IsPullRequest, + BuildSystem.AppVeyor.Environment.PullRequest.Number, + BuildSystem.AppVeyor.Environment.PullRequest.Title + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + Via AppVeyor + + + if (AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"PullRequest: + IsPullRequest: {0} + Number: {1} + Title: {2}", + AppVeyor.Environment.PullRequest.IsPullRequest, + AppVeyor.Environment.PullRequest.Number, + AppVeyor.Environment.PullRequest.Title + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + + + + Gets AppVeyor repository information. + + + The AppVeyor repository information. + + Via BuildSystem + + + if (BuildSystem.AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"Repository: + Branch: {0} + Name: {1} + Provider: {2} + Scm: {3}", + BuildSystem.AppVeyor.Environment.Repository.Branch, + BuildSystem.AppVeyor.Environment.Repository.Name, + BuildSystem.AppVeyor.Environment.Repository.Provider, + BuildSystem.AppVeyor.Environment.Repository.Scm + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + Via AppVeyor + + + if (AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"Repository: + Branch: {0} + Name: {1} + Provider: {2} + Scm: {3}", + AppVeyor.Environment.Repository.Branch, + AppVeyor.Environment.Repository.Name, + AppVeyor.Environment.Repository.Provider, + AppVeyor.Environment.Repository.Scm + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides AppVeyor project information for a current build. + + + + + Gets the AppVeyor unique project ID. + + + The AppVeyor unique project ID. + + + + + Gets the project name. + + + The project name. + + + + + Gets the project slug (as seen in project details URL). + + + The project slug (as seen in project details URL). + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides AppVeyor pull request information for a current build. + + + + + Gets a value indicating whether the current build was started by a pull request. + + + true if the current build was started by a pull request; otherwise, false. + + + + + Gets the GitHub pull request number. + + + The GitHub pull request number. + + + + + Gets the GitHub pull request title. + + + The GitHub pull request title. + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides AppVeyor repository information for a current build. + + + + + Gets the repository provider. + + + github + + + bitbucket + + + kiln + + + vso + + + gitlab + + + + + The repository provider. + + + + + Gets the revision control system. + + + git + + + mercurial + + + + + The revision control system. + + + + + Gets the repository name in format owner-name/repo-name. + + + The repository name. + + + + + Gets the build branch. For pull request commits it is base branch PR is merging into. + + + The build branch. + + + + + Gets the tag information for the build. + + + The tag information for the build. + + Via BuildSystem + + + if (BuildSystem.AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"Repository: + IsTag: {0} + Name: {1}", + BuildSystem.AppVeyor.Environment.Repository.Tag.IsTag, + BuildSystem.AppVeyor.Environment.Repository.Tag.Name + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + Via AppVeyor + + + if (AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"Repository: + IsTag: {0} + Name: {1}", + AppVeyor.Environment.Repository.Tag.IsTag, + AppVeyor.Environment.Repository.Tag.Name + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + + + + Gets the commit information for the build. + + + The commit information for the build. + + Via BuildSystem + + + if (BuildSystem.AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"Repository: + Author: {0} + Email: {1} + ExtendedMessage: {2} + Id: {3} + Message: {4} + Timestamp: {5}", + BuildSystem.AppVeyor.Environment.Repository.Commit.Author, + BuildSystem.AppVeyor.Environment.Repository.Commit.Email, + BuildSystem.AppVeyor.Environment.Repository.Commit.ExtendedMessage, + BuildSystem.AppVeyor.Environment.Repository.Commit.Id, + BuildSystem.AppVeyor.Environment.Repository.Commit.Message, + BuildSystem.AppVeyor.Environment.Repository.Commit.Timestamp + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + Via AppVeyor + + + if (AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"Repository: + Author: {0} + Email: {1} + ExtendedMessage: {2} + Id: {3} + Message: {4} + Timestamp: {5}", + AppVeyor.Environment.Repository.Commit.Author, + AppVeyor.Environment.Repository.Commit.Email, + AppVeyor.Environment.Repository.Commit.ExtendedMessage, + AppVeyor.Environment.Repository.Commit.Id, + AppVeyor.Environment.Repository.Commit.Message, + AppVeyor.Environment.Repository.Commit.Timestamp + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides AppVeyor tag information for a current build. + + + + + Gets a value indicating whether build was started by pushed tag. + + + true if build was started by pushed tag; otherwise, false. + + + + + Gets the name for builds started by tag; otherwise this variable is undefined. + + + The name of the tag. + + + + + Initializes a new instance of the class. + + The environment. + + + + This namespace contain types + representing data used for interaction with AppVeyor. + + + + + Represents a service that communicates with AppVeyor. + + + + + Gets a value indicating whether the current build is running on AppVeyor. + + + true if the current build is running on AppVeyor.; otherwise, false. + + Via BuildSystem + + + if (BuildSystem.AppVeyor.IsRunningOnAppVeyor) + { + Information("Running on AppVeyor"); + } + else + { + Information("Not running on AppVeyor"); + } + + + Via AppVeyor + + + if (AppVeyor.IsRunningOnAppVeyor) + { + Information("Running on AppVeyor"); + } + else + { + Information("Not running on AppVeyor"); + } + + + + + + Gets the AppVeyor environment. + + + The AppVeyor environment. + + Via BuildSystem + + + if (BuildSystem.AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"Environment: + ApiUrl: {0} + Configuration: {1} + JobId: {2} + JobName: {3} + Platform: {4} + ScheduledBuild: {5}", + BuildSystem.AppVeyor.Environment.ApiUrl, + BuildSystem.AppVeyor.Environment.Configuration, + BuildSystem.AppVeyor.Environment.JobId, + BuildSystem.AppVeyor.Environment.JobName, + BuildSystem.AppVeyor.Environment.Platform, + BuildSystem.AppVeyor.Environment.ScheduledBuild + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + Via AppVeyor + + + if (AppVeyor.IsRunningOnAppVeyor) + { + Information( + @"Environment: + ApiUrl: {0} + Configuration: {1} + JobId: {2} + JobName: {3} + Platform: {4} + ScheduledBuild: {5}", + AppVeyor.Environment.ApiUrl, + AppVeyor.Environment.Configuration, + AppVeyor.Environment.JobId, + AppVeyor.Environment.JobName, + AppVeyor.Environment.Platform, + AppVeyor.Environment.ScheduledBuild + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + + + + Uploads an AppVeyor artifact. + + The file path of the artifact to upload. + + + + Uploads an AppVeyor artifact. + + The file path of the artifact to upload. + The settings to apply when uploading an artifact + + + + Uploads an AppVeyor artifact. + + The file path of the artifact to upload. + The settings to apply when uploading an artifact + + + + Uploads test results XML file to AppVeyor. Results type can be one of the following: mstest, xunit, nunit, nunit3, junit. + + The file path of the test results XML to upload. + The results type. Can be mstest, xunit, nunit, nunit3 or junit. + + + + Updates the build version. + + The new build version. + + + + Adds a message to the AppVeyor build log. Messages can be categorised as: Information, Warning or Error + + A short message to display + The category of the message + Additional message details + Via BuildSystem + + + if (BuildSystem.AppVeyor.IsRunningOnAppVeyor) + { + BuildSystem.AppVeyor.AddMessage( + "This is a error message.", + AppVeyorMessageCategoryType.Error, + "Error details." + ); + + BuildSystem.AppVeyor.AddMessage( + "This is a information message.", + AppVeyorMessageCategoryType.Information, + "Information details." + ); + + BuildSystem.AppVeyor.AddMessage( + "This is a warning message.", + AppVeyorMessageCategoryType.Warning, + "Warning details." + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + Via AppVeyor + + + if (AppVeyor.IsRunningOnAppVeyor) + { + AppVeyor.AddMessage( + "This is a error message.", + AppVeyorMessageCategoryType.Error, + "Error details." + ); + + AppVeyor.AddMessage( + "This is a information message.", + AppVeyorMessageCategoryType.Information, + "Information details." + ); + + AppVeyor.AddMessage( + "This is a warning message.", + AppVeyorMessageCategoryType.Warning, + "Warning details." + ); + } + else + { + Information("Not running on AppVeyor"); + } + + + + + + This namespace contain types used + to interact with AppVeyor. + + + + + Base class used to provide information about the Bamboo environment. + + + + + Initializes a new instance of the class. + + The environment. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Responsible for communicating with Bamboo. + + + + + Initializes a new instance of the class. + + The environment. + + + + Gets a value indicating whether the current build is running on Bamboo. + + + true if the current build is running on Bamboo.; otherwise, false. + + + + + Gets the Bamboo environment. + + + The Bamboo environment. + + + + + Provides Bamboo build information for a current build. + + + + + Gets the path to the clone directory. + + + The path to the clone directory. + + + + + Gets the build number. + + + The build number. + + + + + Gets the job key for the current job, in the form PROJECT-PLAN-JOB, e.g. BAM-MAIN-JOBX + + + The Bamboo Build Key. + + + + + Gets the Bamboo Build Result Key. + The result key when this job executes, in the form PROJECT-PLAN-JOB-BUILD e.g. BAM-BOO-JOB1-8, where '8' is the build number. + For deployment projects this variable will not have the JOB component e.g. PROJ-TP-6. + + + The Build Result Key. + + + + + Gets the URL of the result in Bamboo once the job has finished executing. + + + The Bamboo build result url. + + + + + Gets the time when build was started in ISO 8601 format e.g. 2010-01-01T01:00:00.000+01:00. + + + The Bamboo build timestamp. + + + + + Gets Bamboo custom build information. + + + The Bamboo custom build information. + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides Bamboo commit information for a current build. + + + + + Gets the revision use to build this release. Format depends on the VCS used. + + + The commit ID (SHA). + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides Bamboo tag information for a current build. + + + + + Gets a value indicating whether build was started by pushed tag. + + + true if build was started by pushed tag; otherwise, false. + + + + + Gets the name for builds started by tag; otherwise this variable is undefined. + + + The name of the tag. + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides Bamboo environment information for a current build. + + + + + Gets Bamboo plan information. + + + The Bamboo plan information. + + Via BuildSystem + + + if (BuildSystem.Bamboo.IsRunningOnBamboo) + { + Information( + @"Build: + Plan Name: {0} + Short Plan Name: {1} + Plan Key: {2} + Short Plan Key: {3} + Short Job Key: {4} + Short Job Name: {5}", + BuildSystem.Bamboo.Environment.Plan.PlanName, + BuildSystem.Bamboo.Environment.Plan.ShortPlanName, + BuildSystem.Bamboo.Environment.Plan.PlanKey, + BuildSystem.Bamboo.Environment.Plan.ShortPlanKey, + BuildSystem.Bamboo.Environment.Plan.ShortJobKey, + BuildSystem.Bamboo.Environment.Plan.ShortJobName + ); + } + else + { + Information("Not running on Bamboo"); + } + + + Via Bamboo + + + if (Bamboo.IsRunningOnBamboo) + { + Information( + @"Build: + Plan Name: {0} + Short Plan Name: {1} + Plan Key: {2} + Short Plan Key: {3} + Short Job Key: {4} + Short Job Name: {5}", + Bamboo.Environment.Plan.PlanName, + Bamboo.Environment.Plan.ShortPlanName, + Bamboo.Environment.Plan.PlanKey, + Bamboo.Environment.Plan.ShortPlanKey, + Bamboo.Environment.Plan.ShortJobKey, + Bamboo.Environment.Plan.ShortJobName + ); + } + else + { + Information("Not running on Bamboo"); + } + + + + + + Gets Bamboo build information. + + + The Bamboo build information. + + Via BuildSystem + + + if (BuildSystem.Bamboo.IsRunningOnBamboo) + { + Information( + @"Build: + Folder: {0} + Number: {1} + Build Key: {2} + Result Key: {3} + Results Url: {4} + Build Timestamp: {5} + Is Custom: {6} + Revision Name: {7}", + BuildSystem.Bamboo.Environment.Build.Folder, + BuildSystem.Bamboo.Environment.Build.Number, + BuildSystem.Bamboo.Environment.Build.BuildKey, + BuildSystem.Bamboo.Environment.Build.ResultKey, + BuildSystem.Bamboo.Environment.Build.ResultsUrl, + BuildSystem.Bamboo.Environment.Build.BuildTimestamp, + BuildSystem.Bamboo.Environment.Build.CustomBuild.IsCustomBuld, + BuildSystem.Bamboo.Environment.Build.CustomBuild.RevisionName + ); + } + else + { + Information("Not running on Bamboo"); + } + + + Via Bamboo + + + if (Bamboo.IsRunningOnBamboo) + { + Information( + @"Build: + Folder: {0} + Number: {1} + Build Key: {2} + Result Key: {3} + Results Url: {4} + Build Timestamp: {5} + Is Custom: {6} + Revision Name: {7}", + Bamboo.Environment.Build.Folder, + Bamboo.Environment.Build.Number, + Bamboo.Environment.Build.BuildKey, + Bamboo.Environment.Build.ResultKey, + Bamboo.Environment.Build.ResultsUrl, + Bamboo.Environment.Build.BuildTimestamp, + Bamboo.Environment.Build.CustomBuild.IsCustomBuld, + Bamboo.Environment.Build.CustomBuild.RevisionName + ); + } + else + { + Information("Not running on Bamboo"); + } + + + + + + Gets Bamboo repository information. + + + The Bamboo repository information. + + Via BuildSystem + + + if (BuildSystem.Bamboo.IsRunningOnBamboo) + { + Information( + @"Repository: + Branch: {0} + Name: {1} + Repository Revision: {2} + Scm: {3}", + BuildSystem.Bamboo.Environment.Repository.Branch, + BuildSystem.Bamboo.Environment.Repository.Name, + BuildSystem.Bamboo.Environment.Repository.Commit.RepositoryRevision, + BuildSystem.Bamboo.Environment.Repository.Scm + ); + } + else + { + Information("Not running on Bamboo"); + } + + + Via Bamboo + + + if (Bamboo.IsRunningOnBamboo) + { + Information( + @"Repository: + Branch: {0} + Name: {1} + Repository Revision: {2} + Scm: {3}", + Bamboo.Environment.Repository.Branch, + Bamboo.Environment.Repository.Name, + Bamboo.Environment.Repository.Commit.RepositoryRevision, + Bamboo.Environment.Repository.Scm + ); + } + else + { + Information("Not running on Bamboo"); + } + + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides Bamboo project information for a current build. + + + + + Gets the Bamboo Plan Name + + + The Bamboo Plan Name. + + + + + Gets the Bamboo short Plan Name + + + The Bamboo Plan Name in its short form. + + + + + Gets the key of the current plan, in the form PROJECT-PLAN, e.g. BAM-MAIN + + + The project name. + + + + + Gets the Bamboo short Plan Key. + + + The Bamboo Plan Key in its short form. + + + + + Gets the Bamboo short job key. + + + The Bamboo job key in its short form. + + + + + Gets the Bamboo short Job Name. + + + The Bamboo Job Name in its short form. + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides Bamboo repository information for a current build. + + + + + Gets the revision control system. + + + Subversion + + + CVS + + + Perforce + + + Git + + + Mercurial + + + + + The revision control system. + + + + + Gets the repository name as named in Bamboo + + + The bamboo repository name. + + + + + Gets the build branch. + + + The build branch. + + + + + Gets the commit information for the build. + + + The commit information for the build. + + + + + Initializes a new instance of the class. + + The environment. + + + + Represents a Bamboo provider. + + + + + Gets a value indicating whether the current build is running on Bamboo. + + + true if the current build is running on Bamboo; otherwise, false. + + + + + Gets the Bamboo environment. + + + The Bamboo environment. + + + + + Base class used to provide information about the Bitbucket Pipelines environment. + + + + + Initializes a new instance of the class. + + The environment. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Responsible for communicating with Pipelines. + + + + + Gets a value indicating whether the current build is running on Pipelines. + + + true if the current build is running on Pipelines; otherwise, false. + + + + + Gets the Pipelines environment. + + + The Pipelines environment. + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides Bitbucket Pipelines environment information for the current build. + + + + + Gets Bitbucket Pipelines repository information. + + + The repository. + + Via BuildSystem + + + if (BuildSystem.BitbucketPipelines.IsRunningOnBitbucketPipelines) + { + Information( + @"Repository: + Branch: {0} + Tag: {1} + Commit: {2} + Repo Owner: {3} + Repo Slug: {4}", + BuildSystem.BitbucketPipelines.Environment.Repository.Branch, + BuildSystem.BitbucketPipelines.Environment.Repository.Tag, + BuildSystem.BitbucketPipelines.Environment.Repository.Commit, + BuildSystem.BitbucketPipelines.Environment.Repository.RepoOwner, + BuildSystem.BitbucketPipelines.Environment.Repository.RepoSlug + ); + } + else + { + Information("Not running on BitbucketPipelines"); + } + + + Via BitbucketPipelines + + + if (BitbucketPipelines.IsRunningOnBitbucketPipelines) + { + Information( + @"Repository: + Branch: {0} + Tag: {1} + Commit: {2} + Repo Owner: {3} + Repo Slug: {4}", + BitbucketPipelines.Environment.Repository.Branch, + BitbucketPipelines.Environment.Repository.Tag, + BitbucketPipelines.Environment.Repository.Commit, + BitbucketPipelines.Environment.Repository.RepoOwner, + BitbucketPipelines.Environment.Repository.RepoSlug + ); + } + else + { + Information("Not running on BitbucketPipelines"); + } + + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides Bitbucket Pipelines repository information for the current build. + + + + + Gets the branch on which the build was kicked off. This value is only available on branches. + + Note: and are mutually exclusive. If you use both, only one will have a value. + + The SCM branch. + + + + + Gets the tag on which the build was kicked off. This value is only available when tagged. + + Note: and are mutually exclusive. If you use both, only one will have a value. + + The SCM tag. + + + + + Gets the commit hash of a commit that kicked off the build. + + + The SCM commit. + + + + + Gets the name of the account in which the repository lives. + + + The repository owner account. + + + + + Gets the URL-friendly version of a repository name. + + + The URL-friendly repository name. + + + + + Initializes a new instance of the class. + + The environment. + + + + Represents a Bitrise provider. + + + + + Gets a value indicating whether the current build is running on Bitbucket Pipelines. + + + true if the current build is running on Bitbucket Pipelines; otherwise, false. + + + + + Gets the Bitbucket Pipelines environment. + + + The Bitbucket Pipelines environment. + + + + + Base class used to provide information about the Bamboo environment. + + + + + Initializes a new instance of the class. + + The environment. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Responsible for communicating with Bitrise. + + + + + Gets a value indicating whether the current build is running on Bitrise. + + + true if the current build is running on Bitrise; otherwise, false. + + + + + Gets the Bitrise environment. + + + The Bamboo environment. + + + + + Initializes a new instance of the class. + + The environment. + The process runner. + + + + Sets and environment variable that can be used in next steps on Bitrise + + The variable. + The value. + + + + Provides Bitrise application information for the current build. + + + + + Gets the application title. + + + The application title. + + + + + Gets the application URL. + + + The application URL. + + + + + Gets the application slug. + + + The application slug. + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides Bitrise build information for the current build. + + + + + Gets the build number. + + + The build number. + + + + + Gets the build URL. + + + The build URL. + + + + + Gets the build slug. + + + The build slug. + + + + + Gets the build trigger timestamp. + + + The build trigger timestamp. + + + + + Gets a value indicating whether the build is passing. + + + true if [build status]; otherwise, false. + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides Bitrise directory information for the current build. + + + + + Gets the source directory. + + + The source directory. + + + + + Gets the deploy directory. + + + The deploy directory. + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides Bitrise environment information for the current build. + + + + + Gets Bitrise application information. + + + The application. + + Via BuildSystem + + + if (BuildSystem.Bitrise.IsRunningOnBitrise) + { + Information( + @"Application: + Title: {0} + Url: {1} + Slug: {2}", + BuildSystem.Bitrise.Environment.Application.ApplicationTitle, + BuildSystem.Bitrise.Environment.Application.ApplicationUrl, + BuildSystem.Bitrise.Environment.Application.AppSlug + ); + } + else + { + Information("Not running on Bitrise"); + } + + + Via Bitrise + + + if (Bitrise.IsRunningOnBitrise) + { + Information( + @"Application: + Title: {0} + Url: {1} + Slug: {2}", + Bitrise.Environment.Application.ApplicationTitle, + Bitrise.Environment.Application.ApplicationUrl, + Bitrise.Environment.Application.AppSlug + ); + } + else + { + Information("Not running on Bitrise"); + } + + + + + + Gets Bitrise build information. + + + The build. + + Via BuildSystem + + + if (BuildSystem.Bitrise.IsRunningOnBitrise) + { + Information( + @"Build: + Build Number: {0} + Build Url: {1} + Build Slug: {2} + Build Trigger Timestamp: {3} + Build Status: {4}", + BuildSystem.Bitrise.Environment.Build.BuildNumber, + BuildSystem.Bitrise.Environment.Build.BuildUrl, + BuildSystem.Bitrise.Environment.Build.BuildSlug, + BuildSystem.Bitrise.Environment.Build.BuildTriggerTimestamp, + BuildSystem.Bitrise.Environment.Build.BuildStatus + ); + } + else + { + Information("Not running on Bitrise"); + } + + + Via Bitrise + + + if (Bitrise.IsRunningOnBitrise) + { + Information( + @"Build: + Build Number: {0} + Build Url: {1} + Build Slug: {2} + Build Trigger Timestamp: {3} + Build Status: {4}", + Bitrise.Environment.Build.BuildNumber, + Bitrise.Environment.Build.BuildUrl, + Bitrise.Environment.Build.BuildSlug, + Bitrise.Environment.Build.BuildTriggerTimestamp, + Bitrise.Environment.Build.BuildStatus + ); + } + else + { + Information("Not running on Bitrise"); + } + + + + + + Gets Bitrise directory information. + + + The directory. + + Via BuildSystem + + + if (BuildSystem.Bitrise.IsRunningOnBitrise) + { + Information( + @"Directory: + Source Directory: {0} + Deploy Directory: {1}", + BuildSystem.Bitrise.Environment.Directory.SourceDirectory, + BuildSystem.Bitrise.Environment.Directory.DeployDirectory + ); + } + else + { + Information("Not running on Bitrise"); + } + + + Via Bitrise + + + if (Bitrise.IsRunningOnBitrise) + { + Information( + @"Directory: + Source Directory: {0} + Deploy Directory: {1}", + Bitrise.Environment.Directory.SourceDirectory, + Bitrise.Environment.Directory.DeployDirectory + ); + } + else + { + Information("Not running on Bitrise"); + } + + + + + + Gets Bitrise provisioning information. + + + The provisioning. + + Via BuildSystem + + + if (BuildSystem.Bitrise.IsRunningOnBitrise) + { + Information( + @"Provisioning: + Provision Url: {0} + Certificate Url: {1} + Certificate Passphrase: {2}", + BuildSystem.Bitrise.Environment.Provisioning.ProvisionUrl, + BuildSystem.Bitrise.Environment.Provisioning.CertificateUrl, + BuildSystem.Bitrise.Environment.Provisioning.CertificatePassphrase + ); + } + else + { + Information("Not running on Bitrise"); + } + + + Via Bitrise + + + if (Bitrise.IsRunningOnBitrise) + { + Information( + @"Provisioning: + Provision Url: {0} + Certificate Url: {1} + Certificate Passphrase: {2}", + Bitrise.Environment.Provisioning.ProvisionUrl, + Bitrise.Environment.Provisioning.CertificateUrl, + Bitrise.Environment.Provisioning.CertificatePassphrase + ); + } + else + { + Information("Not running on Bitrise"); + } + + + + + + Gets Bitrise repository information. + + + The repository. + + Via BuildSystem + + + if (BuildSystem.Bitrise.IsRunningOnBitrise) + { + Information( + @"Repository: + Git Repository Url: {0} + Git Branch: {1} + Git Tag: {2} + Git Commit: {3} + Pull Request: {4}", + BuildSystem.Bitrise.Environment.Repository.GitRepositoryUrl, + BuildSystem.Bitrise.Environment.Repository.GitBranch, + BuildSystem.Bitrise.Environment.Repository.GitTag, + BuildSystem.Bitrise.Environment.Repository.GitCommit, + BuildSystem.Bitrise.Environment.Repository.PullRequest + ); + } + else + { + Information("Not running on Bitrise"); + } + + + Via Bitrise + + + if (Bitrise.IsRunningOnBitrise) + { + Information( + @"Repository: + Git Repository Url: {0} + Git Branch: {1} + Git Tag: {2} + Git Commit: {3} + Pull Request: {4}", + Bitrise.Environment.Repository.GitRepositoryUrl, + Bitrise.Environment.Repository.GitBranch, + Bitrise.Environment.Repository.GitTag, + Bitrise.Environment.Repository.GitCommit, + Bitrise.Environment.Repository.PullRequest + ); + } + else + { + Information("Not running on Bitrise"); + } + + + + + + Gets Bitrise workflow information. + + + The workflow. + + Via BuildSystem + + + if (BuildSystem.Bitrise.IsRunningOnBitrise) + { + Information( + @"Workflow: + Workflow Id: {0} + Workflow Title: {1}", + BuildSystem.Bitrise.Environment.Workflow.WorkflowId, + BuildSystem.Bitrise.Environment.Workflow.WorkflowTitle + ); + } + else + { + Information("Not running on Bitrise"); + } + + + Via Bitrise + + + if (Bitrise.IsRunningOnBitrise) + { + Information( + @"Workflow: + Workflow Id: {0} + Workflow Title: {1}", + Bitrise.Environment.Workflow.WorkflowId, + Bitrise.Environment.Workflow.WorkflowTitle + ); + } + else + { + Information("Not running on Bitrise"); + } + + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides Bitrise provisioning information for the current build. + + + + + Gets the provision URL. + + + The provision URL. + + + + + Gets the certificate URL. + + + The certificate URL. + + + + + Gets the certificate passphrase. + + + The certificate passphrase. + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides Bitrise repository information for the current build. + + + + + Gets the git repository URL. + + + The git repository URL. + + + + + Gets the git branch. + + + The git branch. + + + + + Gets the git tag. + + + The git tag. + + + + + Gets the git commit. + + + The git commit. + + + + + Gets the pull request. + + + The pull request. + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides Bitrise workflow information for the current build. + + + + + Gets the workflow identifier. + + + The workflow identifier. + + + + + Gets the workflow title. + + + The workflow title. + + + + + Initializes a new instance of the class. + + The environment. + + + + Represents a Bitrise provider. + + + + + Gets a value indicating whether the current build is running on Bitrise. + + + true if the current build is running on Bitrise; otherwise, false. + + + + + Gets the Bitrise environment. + + + The Bitrise environment. + + + + + Sets and environment variable that can be used in next steps on Bitrise + + The variable. + The value. + + + + Provides functionality for interacting with + different build systems. + + + + + Initializes a new instance of the class. + + The AppVeyor Provider. + The TeamCity Provider. + The MyGet Provider. + The Bamboo Provider. + The Continua CI Provider. + The Jenkins Provider. + The Bitrise Provider. + The Travis CI provider. + The Bitbucket Pipelines provider. + The Go.CD provider. + The GitLab CI provider. + The TF Build provider. + + + + Gets a value indicating whether the current build is running on AppVeyor. + + + + if(BuildSystem.IsRunningOnAppVeyor) + { + // Upload artifact to AppVeyor. + AppVeyor.UploadArtifact("./build/release_x86.zip"); + } + + + + true if the build currently is running on AppVeyor; otherwise, false. + + + + + Gets the AppVeyor Provider. + + + + if(BuildSystem.IsRunningOnAppVeyor) + { + // Upload artifact to AppVeyor. + BuildSystem.AppVeyor.UploadArtifact("./build/release_x86.zip"); + } + + + + + + Gets a value indicating whether the current build is running on TeamCity. + + + + if(BuildSystem.IsRunningOnTeamCity) + { + TeamCity.ProgressMessage("Doing an action..."); + // Do action... + } + + + + true if the build currently is running on TeamCity; otherwise, false. + + + + + Gets the TeamCity Provider. + + + + if(BuildSystem.IsRunningOnTeamCiy) + { + // Set the build number. + BuildSystem.TeamCity.SetBuildNumber("1.2.3.4"); + } + + + + + + Gets a value indicating whether the current build is running on MyGet. + + + + if(BuildSystem.IsRunningOnMyGet) + { + MyGet.BuildProblem("Something went wrong..."); + // Do action... + } + + + + true if the build currently is running on MyGet; otherwise, false. + + + + + Gets the MyGet Provider. + + + + if(BuildSystem.IsRunningOnMyGet) + { + // Set the build number. + BuildSystem.MyGet.SetBuildNumber("1.2.3.4"); + } + + + + + + Gets a value indicating whether the current build is running on Bamboo. + + + + if(BuildSystem.IsRunningOnBamboo) + { + // Get the build number. + var buildNumber = BuildSystem.Bamboo.Number; + } + + + + true if the build currently is running on Bamboo; otherwise, false. + + + + + Gets the Bamboo Provider. + + + + if(BuildSystem.IsRunningOnBamboo) + { + //Get the Bamboo Plan Name + var planName = BuildSystem.Bamboo.Project.PlanName + } + + + + + + Gets a value indicating whether the current build is running on Continua CI. + + + + if(BuildSystem.IsRunningOnContinuaCI) + { + // Get the build version. + var buildVersion = BuildSystem.ContinuaCI.Environment.Build.Version; + } + + + + true if the build currently is running on Continua CI; otherwise, false. + + + + + Gets the Continua CI Provider. + + + + if(BuildSystem.IsRunningOnContinuaCI) + { + //Get the Continua CI Project Name + var projectName = BuildSystem.ContinuaCI.Environment.Project.Name; + } + + + + + + Gets a value indicating whether this instance is running on Jenkins. + + + + if(BuildSystem.IsRunningOnJenkins) + { + // Get the build number. + var buildNumber = BuildSystem.Jenkins.Environment.Build.BuildNumber; + } + + + + true if this instance is running on jenkins; otherwise, false. + + + + + Gets the Jenkins Provider. + + + The jenkins. + + + + if(BuildSystem.IsRunningOnJenkins) + { + // Get the job name. + var jobName = BuildSystem.Jenkins.Environment.Build.JobName; + } + + + + + + Gets a value indicating whether this instance is running on Bitrise. + + + + if(BuildSystem.IsRunningOnBitrise) + { + // Get the build number. + var buildNumber = BuildSystem.Bitrise.Environment.Build.BuildNumber; + } + + + + true if this instance is running on bitrise; otherwise, false. + + + + + Gets the Bitrise Provider. + + + + if(BuildSystem.IsRunningOnBitrise) + { + // Get the provision profile url. + var buildNumber = BuildSystem.Bitrise.Environment.Provisioning.ProvisionUrl; + } + + + + + + Gets a value indicating whether this instance is running on Travis CI. + + + + if(BuildSystem.IsRunningOnTravisCI) + { + // Get the build directory. + var buildDirectory = BuildSystem.TravisCI.Environment.Build.BuildDirectory; + } + + + + true if this instance is running on Travis CI; otherwise, false. + + + + + Gets the Travis CI provider. + + + + if(BuildSystem.IsRunningOnTravisCI) + { + // Get the operating system name. + var osName = BuildSystem.TravisCI.Environment.Job.OSName; + } + + + + The Travis CI. + + + + + Gets a value indicating whether this instance is running on Bitbucket Pipelines. + + + + if(BuildSystem.IsRunningOnBitbucketPipelines) + { + // Get the build commit hash. + var commitHash = BuildSystem.BitbucketPipelines.Environment.Repository.Commit; + } + + + + true if this instance is running on Bitbucket Pipelines; otherwise, false. + + + + + Gets the Bitbucket Pipelines Provider. + + + + if(BuildSystem.IsRunningOnBitbucketPipelines) + { + // Get the URL friendly repo name. + var repoSlug = BuildSystem.BitbucketPipelines.Environment.Repository.RepoSlug; + } + + + + + + Gets a value indicating whether the current build is running on Go.CD. + + + + if(BuildSystem.IsRunningOnGoCD) + { + // Get the build counter. + var counter = BuildSystem.GoCD.Environment.Pipeline.Counter; + } + + + + true if the build currently is running on Go.CD; otherwise, false. + + + + + Gets the Go.CD Provider. + + + + if(BuildSystem.IsRunningOnGoCD) + { + // Get the pipeline counter. + var counter = BuildSystem.GoCD.Environment.Environment.Pipeline.Counter; + } + + + + + + Gets the GitLab CI Provider. + + + + if(BuildSystem.IsRunningOnGitLabCI) + { + // Get the build commit hash. + var commitHash = BuildSystem.GitLabCI.Environment.Build.Reference; + } + + + + + + Gets a value indicating whether this instance is running on GitLab CI. + + + + if(BuildSystem.IsRunningOnGitLabCI) + { + // Get the build commit hash. + var commitHash = BuildSystem.GitLabCI.Environment.Build.Reference; + } + + + + true if this instance is running on GitLab CI; otherwise, false. + + + + + Gets a value indicating whether this instance is running on VSTS. + + + + if(BuildSystem.IsRunningOnVSTS) + { + // Get the build commit hash. + var commitHash = BuildSystem.TFBuild.Environment.Repository.SourceVersion; + } + + + + true if this instance is running on VSTS; otherwise, false. + + + + + Gets a value indicating whether this instance is running on TFS. + + + + if(BuildSystem.IsRunningOnTFS) + { + // Get the build commit hash. + var commitHash = BuildSystem.TFBuild.Environment.Repository.SourceVersion; + } + + + + true if this instance is running on TFS; otherwise, false. + + + + + Gets the TF Build Provider. + + + + if(BuildSystem.IsRunningOnVSTS) + { + // Get the build definition name. + var definitionName = BuildSystem.TFBuild.Environment.BuildDefinition.Name; + } + + + + + + Gets a value indicating whether the current build is local build. + + + + // Gets a flag telling us if this is a local build or not. + var isLocal = BuildSystem.IsLocalBuild; + + // Define a task that only runs locally. + Task("LocalOnly") + .WithCriteria(isLocal) + .Does(() => + { + }); + + + + true if the current build is local build; otherwise, false. + + + + + Contains functionality related to build systems. + + + + + Gets a instance that can + be used to query for information about the current build system. + + + + var isLocal = BuildSystem.IsLocalBuild; + + + The context. + A instance. + + + + Gets a instance that can + be used to manipulate the AppVeyor environment. + + + + var isAppVeyorBuild = AppVeyor.IsRunningOnAppVeyor; + + + The context. + A instance. + + + + Gets a instance that can + be used to manipulate the TeamCity environment. + + + + var isTeamCityBuild = TeamCity.IsRunningOnTeamCity; + + + The context. + A instance. + + + + Gets a instance that can + be used to manipulate the MyGet environment. + + + + var isMyGetBuild = MyGet.IsRunningOnMyGet; + + + The context. + A instance. + + + + Gets a instance that can + be used to manipulate the Bamboo environment. + + + + var isBambooBuild = Bamboo.IsRunningOnBamboo; + + + The context. + A instance. + + + + Gets a instance that can + be used to manipulate the Continua CI environment. + + + + var isContinuaCIBuild = ContinuaCI.IsRunningContinuaCI; + + + The context. + A instance. + + + + Gets a instance that can be used to + obtain information from the Jenkins environment. + + + + var isJenkinsBuild = Jenkins.IsRunningOnJenkins; + + + The context. + A instance. + + + + Gets a instance that can be used to + obtain information from the Bitrise environment. + + + + var isBitriseBuild = Bitrise.IsRunningOnBitrise; + + + The context. + A instance. + + + + Gets a instance that can be used to + obtain information from the Travis CI environment. + + + + var isTravisCIBuild = TravisCI.IsRunningOnTravisCI; + + + The context. + A instance. + + + + Gets a instance that can be used to + obtain information from the Bitbucket Pipelines environment. + + + + var isBitbucketPipelinesBuild = BitbucketPipelines.IsRunningOnBitbucketPipelines; + + + The context. + A instance. + + + + Gets a instance that can be used to + obtain information from the Go.CD environment. + + + + var isGoCDBuild = GoCD.IsRunningOnGoCD; + + + The context. + A instance. + + + + Gets a instance that can be used to + obtain information from the GitLab CI environment. + + + + var isGitLabCIBuild = GitLabCI.IsRunningOnGitLabCI; + + + The context. + A instance. + + + + Gets a instance that can be used to + obtain information from the Team Foundation Build environment. + + + + var isTFSBuild = TFBuild.IsRunningOnTFS; + + + The context. + A instance. + + + + Base class used to provide information about the Continua CI environment. + + + + + Initializes a new instance of the class. + + The environment. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Gets an environment variable as an array of . + + The environment variable name. + The environment variable value split by comma into an array of values. + + + + Gets matching list of environment variables as an dictionary of . + + The prefix for the environment variables name. + A dictionary of environment variables starting with variablePrefix + + + + Provides the known values for Continua CI Message Types + + + + + Debug Message + + + + + Success Message + + + + + Information Message + + + + + Warning Message + + + + + Error Message + + + + + Fatal Message + + + + + Responsible for communicating with Continua CI. + + + + + Initializes a new instance of the class. + + The cake environment. + + + + Gets a value indicating whether the current build is running on Continua CI. + + + true if the current build is running on Continua CI; otherwise, false. + + + + + Gets the Continua CI environment. + + + The Continua CI environment. + + + + + Write a status message to the Continua CI build log. + + Message contents. + Build status. + + + + Write the start of a message group to the Continua CI build log. + + Group name. + + + + Write the end of a message block to the Continua CI build log. + + Group name. + + + + Set a Continua CI build variable. + + Name of the variable to set. + Value to assign to the variable. + Set to 'true' to prevent the build failing if the variable has not been defined for the configuration.. + + + + Set a Continua CI build version. + + The new build version. + + + + Set a Continua CI build status message, which is shown on the build details page when a build is running. + + The new build status text. + + + + Provides Continua CI build information for a current build. + + + + + Initializes a new instance of the class. + + The environment. + The prefix for environment variables in this clas + + + + Gets the build id. + + + + + Gets the build version. + + + + + Gets the name of the user or trigger starting the build. + + + + + Gets a value indicating whether the build uses the feature branch. + + + + + Gets the build number. + + + + + Gets the build start date and time. + + + + + Gets a value indicating whether the build uses the default branch. + + + + + Gets a value indicating whether the build has new changes. + + + + + Gets build the number of changesets associated with this build + + + + + Gets build the number of issues associated with this build + + + + + Gets build elapsed time on queue as a time span. + + + + + Gets build time on queue in ticks. + + + + + Gets list of repository names + + + + + Gets list of repository branch names + + + + + Gets triggering branch name + + + + + Gets list of changeset revisions + + + + + Gets list of changeset user names + + + + + Gets list of changeset tag names + + + + + Gets the latest build changeset + + + + + Provides Continua CI changeset information for a current build. + + + + + Initializes a new instance of the class. + + The environment. + The environment variable key prefix. + + + + Gets the revision used to build this release. Format depends on the VCS used. + + + + + Gets the changeset branch name + + + + + Gets the changeset created date and time. + + + + + Gets the count of the number of files in the changeset. + + + + + Gets the changeset author user/committer name + + + + + Gets the count of the number of tags associated with the changeset. + + + + + Gets the count of the number of tags associated with the changeset. + + + + + Gets list of changeset tag names + + + + + Gets list of changeset issue names + + + + + Provides Continua CI configuration information for a current build. + + + + + Initializes a new instance of the class. + + The environment. + The environment variable key prefix. + + + + Gets the Continua CI Configuration Name + + + The Continua CI Configuration Name. + + + + + Provides Continua CI environment information for a current build. + + + + + Initializes a new instance of the class. + + The environment. + + + + Gets Continua CI configuration information. + + + The Continua CI configuration information. + + Via BuildSystem + + + if (BuildSystem.ContinuaCI.IsRunningOnContinuaCI) + { + Information( + @"Configuration: + Name: {0}", + BuildSystem.ContinuaCI.Environment.Configuration.Name + ); + } + else + { + Information("Not running on ContinuaCI"); + } + + + Via ContinuaCI + + + if (ContinuaCI.IsRunningOnContinuaCI) + { + Information( + @"Configuration: + Name: {0}", + ContinuaCI.Environment.Configuration.Name + ); + } + else + { + Information("Not running on ContinuaCI"); + } + + + + + + Gets Continua CI project information. + + + The Continua CI project information. + + Via BuildSystem + + + if (BuildSystem.ContinuaCI.IsRunningOnContinuaCI) + { + Information( + @"Project: + Name: {0}", + BuildSystem.ContinuaCI.Environment.Project.Name + ); + } + else + { + Information("Not running on ContinuaCI"); + } + + + Via ContinuaCI + + + if (ContinuaCI.IsRunningOnContinuaCI) + { + Information( + @"Project: + Name: {0}", + ContinuaCI.Environment.Project.Name + ); + } + else + { + Information("Not running on ContinuaCI"); + } + + + + + + Gets Continua CI build information. + + + The Continua CI build information. + + Via BuildSystem + + + if (BuildSystem.ContinuaCI.IsRunningOnContinuaCI) + { + Information( + @"Build: + Id: {0} + Version: {1} + Started By: {2} + Is Feature Branch Build: {3} + Build Number: {4} + Started: {5}", + BuildSystem.ContinuaCI.Environment.Build.Id, + BuildSystem.ContinuaCI.Environment.Build.Version, + BuildSystem.ContinuaCI.Environment.Build.StartedBy, + BuildSystem.ContinuaCI.Environment.Build.IsFeatureBranchBuild, + BuildSystem.ContinuaCI.Environment.Build.BuildNumber, + BuildSystem.ContinuaCI.Environment.Build.Started + ); + } + else + { + Information("Not running on ContinuaCI"); + } + + + Via ContinuaCI + + + if (ContinuaCI.IsRunningOnContinuaCI) + { + Information( + @"Build: + Id: {0} + Version: {1} + Started By: {2} + Is Feature Branch Build: {3} + Build Number: {4} + Started: {5}", + ContinuaCI.Environment.Build.Id, + ContinuaCI.Environment.Build.Version, + ContinuaCI.Environment.Build.StartedBy, + ContinuaCI.Environment.Build.IsFeatureBranchBuild, + ContinuaCI.Environment.Build.BuildNumber, + ContinuaCI.Environment.Build.Started + ); + } + else + { + Information("Not running on ContinuaCI"); + } + + + + + + Gets Continua CI build variables. + + + The Continua CI build variables. + + Via BuildSystem + + + if (BuildSystem.ContinuaCI.IsRunningOnContinuaCI) + { + Information( + @"Variables: + {0}", + BuildSystem.ContinuaCI.Environment.Variable.Aggregate( + new StringBuilder(),(builder, pair) => builder.AppendLine( + string.Format(":", pair.Key, pair.Value)), + builder => builder.ToString()) + ); + } + else + { + Information("Not running on ContinuaCI"); + } + + + Via ContinuaCI + + + if (ContinuaCI.IsRunningOnContinuaCI) + { + Information( + @"Variables: + {0}", + ContinuaCI.Environment.Variable.Aggregate( + new StringBuilder(),(builder, pair) => builder.AppendLine( + string.Format(":", pair.Key, pair.Value)), + builder => builder.ToString()) + ); + } + else + { + Information("Not running on ContinuaCI"); + } + + + + + + Gets Continua CI build agent properties + + + The Continua CI build agent properties. + + Via BuildSystem + + + if (BuildSystem.ContinuaCI.IsRunningOnContinuaCI) + { + Information( + @"Agent Property: + {0}", + BuildSystem.ContinuaCI.Environment.AgentProperty.Aggregate( + new StringBuilder(),(builder, pair) => builder.AppendLine( + string.Format(":", pair.Key, pair.Value)), + builder => builder.ToString()) + ); + } + else + { + Information("Not running on ContinuaCI"); + } + + + Via ContinuaCI + + + if (ContinuaCI.IsRunningOnContinuaCI) + { + Information( + @"Variables: + {0}", + ContinuaCI.Environment.AgentProperty.Aggregate( + new StringBuilder(),(builder, pair) => builder.AppendLine( + string.Format(":", pair.Key, pair.Value)), + builder => builder.ToString()) + ); + } + else + { + Information("Not running on ContinuaCI"); + } + + + + + + Gets Continua CI product version. + + + The Continua CI product version. + + Via BuildSystem + + + if (BuildSystem.ContinuaCI.IsRunningOnContinuaCI) + { + Information( + @"Version: {0}", + BuildSystem.ContinuaCI.Environment.Version + ); + } + else + { + Information("Not running on ContinuaCI"); + } + + + Via ContinuaCI + + + if (ContinuaCI.IsRunningOnContinuaCI) + { + Information( + @"Version: {0}", + ContinuaCI.Environment.Version + ); + } + else + { + Information("Not running on ContinuaCI"); + } + + + + + + Provides Continua CI project information for a current build. + + + + + Initializes a new instance of the class. + + The environment. + The environment variable key prefix. + + + + Gets the Continua CI Project Name + + + The Continua CI Project Name. + + + + + Represents a Continua CI provider. + + + + + Write a status message to the Continua CI build log. + + Message contents. + Build status. + + + + Write the start of a message group to the Continua CI build log. + + Group name. + + + + Write the end of a message block to the Continua CI build log. + + Group name. + + + + Set a Continua CI build variable. + + Name of the variable to set. + Value to assign to the variable. + Set to 'true' to prevent the build failing if the variable has not been defined for the configuration.. + + + + Set a Continua CI build version. + + The new build version. + + + + Set a Continua CI build status message, which is shown on the build details page when a build is running. + + The new build status text. + + + + Gets a value indicating whether the current build is running on Continua CI. + + + true if the current build is running on Continua CI; otherwise, false. + + + + + Gets the Continua CI environment. + + + The Continua CI environment. + + + + + Provide GitLab CI build information for a current build + + + + + Initializes a new instance of the class. + + The environment. + + + + Gets the unique id of the current build that GitLab CI uses internally. + + + The build ID. + + + + + Gets the commit revision for which project is built. + + + The commit revision hash. + + + + + Gets the commit tag name. Present only when building tags. + + + The build tag name. + + + + + Gets the name of the build as defined in .gitlab-ci.yml. + + + The name of the build. + + + + + Gets the name of the stage as defined in .gitlab-ci.yml. + + + The name of the current stage. + + + + + Gets the branch or tag name for which project is built. + + + The branch or tag for this build. + + + + + Gets the URL to clone the Git repository. + + + The repository URL. + + + + + Gets a value indicating whether the build was triggered. + + + True if the build was triggered, otherwise false. + + + + + Gets a value indicating whether the build was manually started. + + + True if the build was started manually, otherwise false. + + + + + Gets the token used for authenticating with the GitLab Container Registry. + + + The build authorisation token. + + + + + Gets the unique id of the current pipeline that GitLab CI uses internally. + + + The unique build ID. + + + + + Gets the id of the user who started the build. + + + The user ID. + + + + + Gets the email of the user who started the build. + + + The email address of the user. + + + + + Provides GitLab CI environment information for a current build. + + + + + Initializes a new instance of the class. + + The environment. + + + + Gets the GitLab CI runner information. + + + The GitLab CI runner information. + + Via BuildSystem + + + if (BuildSystem.GitLabCI.IsRunningOnGitLabCI) + { + Information( + @"Runner: + Id: {0} + Description: {1} + Tags: {2}", + BuildSystem.GitLabCI.Environment.Runner.Id, + BuildSystem.GitLabCI.Environment.Runner.Description, + BuildSystem.GitLabCI.Environment.Runner.Tags + ); + } + else + { + Information("Not running on GitLabCI"); + } + + + Via GitLabCI + + + if (GitLabCI.IsRunningOnGitLabCI) + { + Information( + @"Runner: + Id: {0} + Description: {1} + Tags: {2}", + GitLabCI.Environment.Runner.Id, + GitLabCI.Environment.Runner.Description, + GitLabCI.Environment.Runner.Tags + ); + } + else + { + Information("Not running on GitLabCI"); + } + + + + + + Gets the GitLab CI server information. + + + The GitLab CI server information. + + Via BuildSystem + + + if (BuildSystem.GitLabCI.IsRunningOnGitLabCI) + { + Information( + @"Server: + Name: {0} + Version: {1} + Revision: {2}", + BuildSystem.GitLabCI.Environment.Server.Name, + BuildSystem.GitLabCI.Environment.Server.Version, + BuildSystem.GitLabCI.Environment.Server.Revision + ); + } + else + { + Information("Not running on GitLabCI"); + } + + + Via GitLabCI + + + if (GitLabCI.IsRunningOnGitLabCI) + { + Information( + @"Server: + Name: {0} + Version: {1} + Revision: {2}", + GitLabCI.Environment.Server.Name, + GitLabCI.Environment.Server.Version, + GitLabCI.Environment.Server.Revision + ); + } + else + { + Information("Not running on GitLabCI"); + } + + + + + + Gets the GitLab CI build information. + + + The GitLab CI build information. + + Via BuildSystem + + + if (BuildSystem.GitLabCI.IsRunningOnGitLabCI) + { + Information( + @"Build: + Id: {0} + Reference: {1} + Tag: {2} + Name: {3} + Stage: {4}", + BuildSystem.GitLabCI.Environment.Build.Id, + BuildSystem.GitLabCI.Environment.Build.Reference, + BuildSystem.GitLabCI.Environment.Build.Tag, + BuildSystem.GitLabCI.Environment.Build.Tag, + BuildSystem.GitLabCI.Environment.Build.Stage + ); + } + else + { + Information("Not running on GitLabCI"); + } + + + Via GitLabCI + + + Information( + @"Build: + Id: {0} + Reference: {1} + Tag: {2} + Name: {3} + Stage: {4}", + GitLabCI.Environment.Build.Id, + GitLabCI.Environment.Build.Reference, + GitLabCI.Environment.Build.Tag, + GitLabCI.Environment.Build.Tag, + GitLabCI.Environment.Build.Stage + ); + + + + + + Gets the GitLab CI project information. + + + The GitLab CI project information. + + Via BuildSystem + + + if (BuildSystem.GitLabCI.IsRunningOnGitLabCI) + { + Information( + @"Project: + Id: {0} + Name: {1} + Namespace: {2} + Path: {3} + Url: {4} + Directory: {5}", + BuildSystem.GitLabCI.Environment.Project.Id, + BuildSystem.GitLabCI.Environment.Project.Name, + BuildSystem.GitLabCI.Environment.Project.Namespace, + BuildSystem.GitLabCI.Environment.Project.Path, + BuildSystem.GitLabCI.Environment.Project.Url, + BuildSystem.GitLabCI.Environment.Project.Directory + ); + } + else + { + Information("Not running on GitLabCI"); + } + + + Via GitLabCI + + + Information( + @"Project: + Id: {0} + Name: {1} + Namespace: {2} + Path: {3} + Url: {4} + Directory: {5}", + GitLabCI.Environment.Project.Id, + GitLabCI.Environment.Project.Name, + GitLabCI.Environment.Project.Namespace, + GitLabCI.Environment.Project.Path, + GitLabCI.Environment.Project.Url, + GitLabCI.Environment.Project.Directory + ); + + + + + + Provides GitLab CI project information for a current build + + + + + Initializes a new instance of the class. + + The environment. + + + + Gets the unique id of the current project that GitLab CI uses internally. + + + The project ID. + + + + + Gets the project name that is currently being built. + + + The project name. + + + + + Gets the project namespace (username or groupname) that is currently being built. + + + The project namespace. + + + + + Gets the namespace with project name. + + + The project namespace and project name. + + + + + Gets the HTTP address to access the project. + + + The HTTP address to access the project. + + + + + Gets the full path where the repository is cloned and where the build is run. + + + The full path where the repository is cloned and where the build is run. + + + + + Provides GitLab CI runner information for a current build. + + + + + Initializes a new instance of the class. + + The environment. + + + + Gets the unique id of runner being used. + + + The unique id of runner being used. + + + + + Gets the description of the runner as saved in GitLab. + + + The description of the runner as saved in GitLab. + + + + + Gets an array of the defined runner tags. + + + The defined runner tags. + + + + + Provides GitLab CI server information for a current build. + + + + + Initializes a new instance of the class. + + The environment. + + + + Gets the name of CI server that is used to coordinate builds. + + + The name of CI server that is used to coordinate builds. + + + + + Gets the GitLab version that is used to schedule builds. + + + The GitLab version that is used to schedule builds. + + + + + Gets the GitLab revision that is used to schedule builds. + + + The GitLab revision that is used to schedule builds. + + + + + Base class used to provide information about the Bitbucket Pipelines environment. + + + + + Initializes a new instance of the class. + + The environment. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Gets an environment variable as a . + + The primary environment variable name. + The secondary environment variable name. + The environment variable. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Gets an environment variable as a . + + The primary environment variable name. + The secondary environment variable name. + The environment variable. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Gets an environment variable as a . + + The primary environment variable name. + The secondary environment variable name. + The environment variable. + + + + Responsible for communicating with GitLab CI. + + + + + Initializes a new instance of the class. + + The environment. + + + + Gets the GitLab CI environment. + + + The GitLab CI environment. + + + + + Gets a value indicating whether the current build is running on GitLab CI. + + + true if the current build is running on GitLab CI; otherwise, false. + + + + + Represents a GitLab CI provider. + + + + + Gets a value indicating whether the current build is running on GitLab CI. + + + true if the current build is running on GitLab CI; otherwise, false. + + + + + Gets the GitLab CI environment. + + + The GitLab CI environment. + + + + + The Go.CD build cause. + + + + + Gets or sets the approver. + + + The approver. + + + + + Gets or sets the material revisions. + + + The material revisions. + + + + + Gets or sets a value indicating whether the trigger was forced. + + + true if the trigger was forced; otherwise, false. + + + + + Gets or sets the trigger message. + + + The trigger message. + + + + + Provides Go.CD environment information for a current build. + + + + + Gets GoCD pipeline information. + + + The GoCD pipeline information. + + Via BuildSystem + + + if (BuildSystem.GoCD.IsRunningOnGoCD) + { + Information( + @"Pipeline: + Name: {0} + Counter: {1} + Label: {2}", + BuildSystem.GoCD.Environment.Pipeline.Name, + BuildSystem.GoCD.Environment.Pipeline.Counter, + BuildSystem.GoCD.Environment.Pipeline.Label + ); + } + else + { + Information("Not running on GoCD"); + } + + + Via GoCD + + + if (GoCD.IsRunningOnGoCD) + { + Information( + @"Pipeline: + Name: {0} + Counter: {1} + Label: {2}", + GoCD.Environment.Pipeline.Name, + GoCD.Environment.Pipeline.Counter, + GoCD.Environment.Pipeline.Label + ); + } + else + { + Information("Not running on GoCD"); + } + + + + + + Gets GoCD stage information. + + + The GoCD stage information. + + Via BuildSystem + + + if (BuildSystem.GoCD.IsRunningOnGoCD) + { + Information( + @"Stage: + Name: {0} + Counter: {1}", + BuildSystem.GoCD.Environment.Stage.Name, + BuildSystem.GoCD.Environment.Stage.Counter + ); + } + else + { + Information("Not running on GoCD"); + } + + + Via GoCD + + + if (GoCD.IsRunningOnGoCD) + { + Information( + @"Stage: + Name: {0} + Counter: {1}", + GoCD.Environment.Stage.Name, + GoCD.Environment.Stage.Counter + ); + } + else + { + Information("Not running on GoCD"); + } + + + + + + Gets GoCD repository information. + + + The GoCD repository information. + + Via BuildSystem + + + if (BuildSystem.GoCD.IsRunningOnGoCD) + { + Information( + @"Repository: + Revision: {0} + ToRevision: {1} + FromRevision: {2}", + BuildSystem.GoCD.Environment.Repository.Revision, + BuildSystem.GoCD.Environment.Repository.ToRevision, + BuildSystem.GoCD.Environment.Repository.FromRevision + ); + } + else + { + Information("Not running on GoCD"); + } + + + Via GoCD + + + if (GoCD.IsRunningOnGoCD) + { + Information( + @"Repository: + Revision: {0} + ToRevision: {1} + FromRevision: {2}", + GoCD.Environment.Repository.Revision, + GoCD.Environment.Repository.ToRevision, + GoCD.Environment.Repository.FromRevision + ); + } + else + { + Information("Not running on GoCD"); + } + + + + + + Gets the Go.CD URL. + + + The Go.CD URL. + + Via BuildSystem + + + if (BuildSystem.GoCD.IsRunningOnGoCD) + { + Information( + @"GoCDUrl: {0}", + BuildSystem.GoCD.Environment.GoCDUrl + ); + } + else + { + Information("Not running on GoCD"); + } + + + Via GoCD + + + if (GoCD.IsRunningOnGoCD) + { + Information( + @"GoCDUrl: {0}", + GoCD.Environment.GoCDUrl + ); + } + else + { + Information("Not running on GoCD"); + } + + + + + + Gets the environment name. This is only set if the environment is specified. Otherwise the variable is not set. + + + The environment name. + + Via BuildSystem + + + if (BuildSystem.GoCD.IsRunningOnGoCD) + { + Information( + @"EnvironmentName: {0}", + BuildSystem.GoCD.Environment.EnvironmentName + ); + } + else + { + Information("Not running on GoCD"); + } + + + Via GoCD + + + if (GoCD.IsRunningOnGoCD) + { + Information( + @"EnvironmentName: {0}", + GoCD.Environment.EnvironmentName + ); + } + else + { + Information("Not running on GoCD"); + } + + + + + + Gets the name of the current job being run. + + + The job name. + + Via BuildSystem + + + if (BuildSystem.GoCD.IsRunningOnGoCD) + { + Information( + @"JobName: {0}", + BuildSystem.GoCD.Environment.JobName + ); + } + else + { + Information("Not running on GoCD"); + } + + + Via GoCD + + + if (GoCD.IsRunningOnGoCD) + { + Information( + @"JobName: {0}", + GoCD.Environment.JobName + ); + } + else + { + Information("Not running on GoCD"); + } + + + + + + Gets the username of the user that triggered the build. This will have one of three possible values: + anonymous - if there is no security. + username of the user, who triggered the build. + changes, if SCM changes auto-triggered the build. + timer, if the pipeline is triggered at a scheduled time. + + + The username of the user that triggered the build. + + Via BuildSystem + + + if (BuildSystem.GoCD.IsRunningOnGoCD) + { + Information( + @"User: {0}", + BuildSystem.GoCD.Environment.User + ); + } + else + { + Information("Not running on GoCD"); + } + + + Via GoCD + + + if (GoCD.IsRunningOnGoCD) + { + Information( + @"User: {0}", + GoCD.Environment.User + ); + } + else + { + Information("Not running on GoCD"); + } + + + + + + Initializes a new instance of the class. + + The environment. + + + + The Go.CD history. + + + + + Gets or sets the pipelines. + + + The pipelines. + + + + + The Go.CD material revision information. + + + + + Gets or sets a value indicating whether a change was made. + + + true if changed; otherwise, false. + + + + + Gets or sets the modifications. + + + The modifications. + + + + + A change made in the repository since the last time the Go.CD pipeline was run. + + + + + Gets or sets the email address. + + + The email address. + + + + + Gets or sets the identifier. + + + The identifier. + + + + + Gets or sets the modified time in milliseconds from the Unix epoch. + + + The modified time in milliseconds from the Unix epoch. + + + + + Gets or sets the modified time. + + + The modified time. + + + + + Gets or sets the username. + + + The username. + + + + + Gets or sets the comment. + + + The comment. + + + + + Gets or sets the revision. + + + The revision. + + + + + The Go.CD pipeline history. + + + + + Gets or sets the build cause. + + + The build cause. + + + + + Gets or sets the comment. + + + The comment. + + + + + Gets or sets the name. + + + The name. + + + + + Gets or sets the natural order. + + + The natural order. + + + + + Provides GoCD pipeline information for a current build. + + + + + Gets the name of the pipeline. + + + The name of the pipeline. + + + + + Gets the pipeline counter, showing how many times the current pipeline has been run. + + + The pipeline counter. + + + + + Gets the pipeline label. By default, this is set to the pipeline count. + + + The pipeline label. + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides Go.CD repository information for a current build. + + + + + Gets the source control revision. + + + The the source control revision. + + + + + Gets the last revision the build was triggered by if there were multiple revisions. + + + The last revision the build was triggered by if there were multiple revisions. + + + + + Gets the first revision the build was triggered by if there were multiple revisions. + + + The first revision the build was triggered by if there were multiple revisions. + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides Go.CD commit information for a current build. + + + + + Gets the name of the current stage being run. + + + The stage name. + + + + + Gets the count of the number of times the current stage has been run. + + + The stage counter. + + + + + Initializes a new instance of the class. + + The environment. + + + + Base class used to provide information about the Go.CD environment. + + + + + Initializes a new instance of the class. + + The environment. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Responsible for communicating with GoCD. + + + + + Initializes a new instance of the class. + + The environment. + The cake log. + + + + Gets a value indicating whether the current build is running on Go.CD. + + + true if the current build is running on Go.CD.; otherwise, false. + + + + + Gets the Go.CD environment. + + + The Go.CD environment. + + + + + Gets the Go.CD build history, including the repository modifications that caused the pipeline to start. + + The Go.CD username. + The Go.CD password. + The Go.CD build history. + + + + Gets the Go.CD build history, including the repository modifications that caused the pipeline to start. + + The Go.CD username. + The Go.CD password. + The Go.CD server URL. + The Go.CD build history. + + + + Represents a Go.CD provider. + + + + + Gets a value indicating whether the current build is running on Go.CD. + + + true if the current build is running on Go.CD; otherwise, false. + + + + + Gets the Go.CD environment. + + + The Go.CD environment. + + + + + Gets the Go.CD build history, including the repository modifications that caused the pipeline to start. + + The Go.CD username. + The Go.CD password. + The Go.CD build history. + + + + Gets the Go.CD build history, including the repository modifications that caused the pipeline to start. + + The Go.CD username. + The Go.CD password. + The Go.CD server URL. + The Go.CD build history. + + + + Provides Jenkins build information for the current build. + + + + + Gets the build number. + + + The build number. + + + + + Gets the build identifier which is identical to starting from Jenkins 1.597 and a YYYY-MM-DD_hh-mm-ss timestamp for older builds. + + + The build identifier. + + + + + Gets the display name of the build. + + + The display name of the build. + + + + + Gets the build tag which is a string of "jenkins-${JOB_NAME}-${BUILD_NUMBER}". All forward slashes (/) in the JOB_NAME are replaced with dashes (-). + + + The build tag. + + + + + Gets the build URL. + + + The build URL. + + + + + Gets the executor number. + + + The executor number. + + + + + Gets the absolute path of the workspace directory assigned to the build. + + + The workspace directory path. + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides Jenkins change information for the current build in multibranch projects. + + + + + Gets the change id. + + + The change id. + + + + + Gets the change URL. + + + The change URL. + + + + + Gets change title. + + + The change title. + + + + + Gets change author. + + + The change author. + + + + + Gets the human name of the change author. + + + The human name of the change author. + + + + + Gets the email address of the change author. + + + The email address of the change author. + + + + + Gets the target of the change. + + + The target of the change. + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides Jenkins environment information for the current build. + + + + + Gets Jenkins build information. + + + The build. + + Via BuildSystem + + + if (BuildSystem.Jenkins.IsRunningOnJenkins) + { + Information( + @"Build: + BuildNumber: {0} + BuildId: {1} + BuildDisplayName: {2}", + BuildSystem.Jenkins.Environment.Build.BuildNumber, + BuildSystem.Jenkins.Environment.Build.BuildId, + BuildSystem.Jenkins.Environment.Build.BuildDisplayName + ); + } + else + { + Information("Not running on Jenkins"); + } + + + Via Jenkins + + + if (Jenkins.IsRunningOnJenkins) + { + Information( + @"Build: + BuildNumber: {0} + BuildId: {1} + BuildDisplayName: {2}", + Jenkins.Environment.Build.BuildNumber, + Jenkins.Environment.Build.BuildId, + Jenkins.Environment.Build.BuildDisplayName + ); + } + else + { + Information("Not running on Jenkins"); + } + + + + + + Gets Jenkins repository information. + + + The repository. + + Via BuildSystem + + + if (BuildSystem.Jenkins.IsRunningOnJenkins) + { + Information( + @"Repository: + BranchName: {0} + GitCommitSha: {1} + GitBranch: {2}", + BuildSystem.Jenkins.Environment.Repository.BranchName, + BuildSystem.Jenkins.Environment.Repository.GitCommitSha, + BuildSystem.Jenkins.Environment.Repository.GitBranch + ); + } + else + { + Information("Not running on Jenkins"); + } + + + Via Jenkins + + + if (Jenkins.IsRunningOnJenkins) + { + Information( + @"Repository: + BranchName: {0} + GitCommitSha: {1} + GitBranch: {2}", + Jenkins.Environment.Repository.BranchName, + Jenkins.Environment.Repository.GitCommitSha, + Jenkins.Environment.Repository.GitBranch + ); + } + else + { + Information("Not running on Jenkins"); + } + + + + + + Gets Jenkins job information. + + + The job. + + Via BuildSystem + + + if (BuildSystem.Jenkins.IsRunningOnJenkins) + { + Information( + @"Job: + JobName: {0} + JobBaseName: {1} + JobUrl: {2}", + BuildSystem.Jenkins.Environment.Job.JobName, + BuildSystem.Jenkins.Environment.Job.JobBaseName, + BuildSystem.Jenkins.Environment.Job.JobUrl + ); + } + else + { + Information("Not running on Jenkins"); + } + + + Via Jenkins + + + if (Jenkins.IsRunningOnJenkins) + { + Information( + @"Job: + JobName: {0} + JobBaseName: {1} + JobUrl: {2}", + Jenkins.Environment.Job.JobName, + Jenkins.Environment.Job.JobBaseName, + Jenkins.Environment.Job.JobUrl + ); + } + else + { + Information("Not running on Jenkins"); + } + + + + + + Gets the node. + + + The node. + + Via BuildSystem + + + if (BuildSystem.Jenkins.IsRunningOnJenkins) + { + Information( + @"Node: + NodeName: {0} + NodeLabels: {1}", + BuildSystem.Jenkins.Environment.Node.NodeName, + BuildSystem.Jenkins.Environment.Node.NodeLabels + ); + } + else + { + Information("Not running on Jenkins"); + } + + + Via Jenkins + + + if (Jenkins.IsRunningOnJenkins) + { + Information( + @"Node: + NodeName: {0} + NodeLabels: {1}", + Jenkins.Environment.Node.NodeName, + Jenkins.Environment.Node.NodeLabels + ); + } + else + { + Information("Not running on Jenkins"); + } + + + + + + Gets the change. + + + The change. + + Via BuildSystem + + + if (BuildSystem.Jenkins.IsRunningOnJenkins) + { + Information( + @"Change: + Id: {0} + Url: {1} + Title: {2}", + BuildSystem.Jenkins.Environment.Change.Id, + BuildSystem.Jenkins.Environment.Change.Url, + BuildSystem.Jenkins.Environment.Change.Title + ); + } + else + { + Information("Not running on Jenkins"); + } + + + Via Jenkins + + + if (Jenkins.IsRunningOnJenkins) + { + Information( + @"Change: + Id: {0} + Url: {1} + Title: {2}", + Jenkins.Environment.Change.Id, + Jenkins.Environment.Change.Url, + Jenkins.Environment.Change.Title + ); + } + else + { + Information("Not running on Jenkins"); + } + + + + + + Gets the absolute path of the directory assigned on the master node for Jenkins to store data. + + + The absolute path of the directory assigned on the master node for Jenkins to store data. + + Via BuildSystem + + + if (BuildSystem.Jenkins.IsRunningOnJenkins) + { + Information( + @"JenkinsHome: {0}", + BuildSystem.Jenkins.Environment.JenkinsHome + ); + } + else + { + Information("Not running on Jenkins"); + } + + + Via Jenkins + + + if (Jenkins.IsRunningOnJenkins) + { + Information( + @"JenkinsHome: {0}", + Jenkins.Environment.JenkinsHome + ); + } + else + { + Information("Not running on Jenkins"); + } + + + + + + Gets the full URL of Jenkins (note: only available if Jenkins URL is set in system configuration). + + + The full URL of Jenkins. + + Via BuildSystem + + + if (BuildSystem.Jenkins.IsRunningOnJenkins) + { + Information( + @"JenkinsUrl: {0}", + BuildSystem.Jenkins.Environment.JenkinsUrl + ); + } + else + { + Information("Not running on Jenkins"); + } + + + Via Jenkins + + + if (Jenkins.IsRunningOnJenkins) + { + Information( + @"JenkinsUrl: {0}", + Jenkins.Environment.JenkinsUrl + ); + } + else + { + Information("Not running on Jenkins"); + } + + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides Jenkins job information for a current build. + + + + + Gets the name of the job. + + + The name of the job. + + + + + Gets the short name of the project of this build stripping off folder paths, such as "foo" for "bar/foo". + + + The base name of the job. + + + + + Gets the URL of the job. + + + The URL of the job. + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides Jenkins node information for a current build. + + + + + Gets the name of the node. + + + The name of the node. + + + + + Gets the node labels. + + + The node labels. + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides Jenkins repository information for the current build. + + + + + Gets the branch name which will be build in a multibranch project. + + + The branch name. + + + + + Gets the git commit sha. + + + The git commit sha. + + + + + Gets the git branch. + + + The git branch. + + + + + Gets the SVN revision. + + + The SVN revision. + + + + + Gets the CVS branch. + + + The CVS branch. + + + + + Gets the SVN URL. + + + The SVN URL. + + + + + Initializes a new instance of the class. + + The environment. + + + + Represnts a Jenkins Provider + + + + + Gets a value indicating whether this instance is running on jenkins. + + + true if this instance is running on jenkins; otherwise, false. + + + + + Gets the Jenkins environment. + + + The Jenkins environment. + + + + + Base class used to provide information about the Jenkins environment. + + + + + Initializes a new instance of the class. + + The environment. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Responsible for communicating with Jenkins. + + + + + Initializes a new instance of the class. + + The environment. + + + + Gets a value indicating whether this instance is running on jenkins. + + + true if this instance is running on jenkins; otherwise, false. + + + + + Gets the Jenkins environment. + + + The Jenkins environment. + + + + + Represents a MyGet provider. + + + + + Gets a value indicating whether the current build is running on MyGet. + + + true if the current build is running on MyGet; otherwise, false. + + + + + Report a build problem to MyGet. + + Description of build problem. + + + + Allows setting an environment variable that can be used by a future process. + + Name of the parameter to set. + Value to assign to the parameter. + + + + Write a status message to the MyGet build log. + + Message contents. + Build status. + Error details if status is error. + + + + Tells MyGet to change the current build number. + + The required build number. + + + + Provides the known values for MyGet Build Status + + + + + Failure Status + + + + + Error Status + + + + + Warning Status + + + + + Normal Status + + + + + Responsible for communicating with MyGet. + + + + + Initializes a new instance of the class. + + The cake environment. + + + + Gets a value indicating whether the current build is running on MyGet. + + + true if the current build is running on MyGet; otherwise, false. + + + + + Report a build problem to MyGet. + + Description of build problem. + + + + Allows setting an environment variable that can be used by a future process. + + Name of the parameter to set. + Value to assign to the parameter. + + + + Write a status message to the MyGet build log. + + Message contents. + Build status. + Error details if status is error. + + + + Tells MyGet to change the current build number. + + The required build number. + + + + Provides TeamCity build information for a current build. + + + + + Gets the build configuration name. + + + The build configuration name. + + + + + Gets the build number. + + + The build number. + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides TeamCity environment information for current build + + + + + Gets TeamCity project information. + + + The TeamCity project information. + + Via BuildSystem + + + if (BuildSystem.TeamCity.IsRunningOnTeamCity) + { + Information( + @"Project: + Name: {0}", + BuildSystem.TeamCity.Environment.Project.Name + ); + } + else + { + Information("Not running on TeamCity"); + } + + + Via TeamCity + + + if (TeamCity.IsRunningOnTeamCity) + { + Information( + @"Project: + Name: {0}", + TeamCity.Environment.Project.Name + ); + } + else + { + Information("Not running on TeamCity"); + } + + + + + + Gets TeamCity build information. + + + The TeamCity build information. + + Via BuildSystem + + + if (BuildSystem.TeamCity.IsRunningOnTeamCity) + { + Information( + @"Build: + BuildConfName: {0} + Number: {1}", + BuildSystem.TeamCity.Environment.Build.BuildConfName, + BuildSystem.TeamCity.Environment.Build.Number + ); + } + else + { + Information("Not running on TeamCity"); + } + + + Via TeamCity + + + if (TeamCity.IsRunningOnTeamCity) + { + Information( + @"Build: + BuildConfName: {0} + Number: {1}", + TeamCity.Environment.Build.BuildConfName, + TeamCity.Environment.Build.Number + ); + } + else + { + Information("Not running on TeamCity"); + } + + + + + + Gets TeamCity pull-request information. + + + The TeamCity pull-request information. + + Via BuildSystem + + + if (BuildSystem.TeamCity.IsRunningOnTeamCity) + { + Information( + @"PullRequest: + IsPullRequest: {0} + Number: {1}", + BuildSystem.TeamCity.Environment.PullRequest.IsPullRequest, + BuildSystem.TeamCity.Environment.PullRequest.Number + ); + } + else + { + Information("Not running on TeamCity"); + } + + + Via TeamCity + + + if (TeamCity.IsRunningOnTeamCity) + { + Information( + @"PullRequest: + IsPullRequest: {0} + Number: {1}", + TeamCity.Environment.PullRequest.IsPullRequest, + TeamCity.Environment.PullRequest.Number + ); + } + else + { + Information("Not running on TeamCity"); + } + + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides TeamCity project information for current build + + + + + Gets the TeamCity project name + + + The TeamCity project name + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides TeamCity pull request information for current build + + + + + Gets a value indicating whether the current build was started by a pull request. + + + true if the current build was started by a pull request; otherwise, false. + + + env.Git_Branch is a required parameter in TeamCity for this to work + + + + + Gets the pull request number + + + The pull request number + + + env.Git_Branch is a required parameter in TeamCity for this to work + + + + + Initializes a new instance of the class. + + The environment. + + + + Represents a TeamCity provider. + + + + + Gets the TeamCity environment. + + + The TeamCity environment. + + Via BuildSystem + + + if (BuildSystem.TeamCity.IsRunningOnTeamCity) + { + Information( + @"Environment: + PullRequest: {0} + Build Configuration Name: {1} + TeamCity Project Name: {2}", + BuildSystem.TeamCity.Environment.PullRequest.IsPullRequest, + BuildSystem.TeamCity.Environment.Build.BuildConfName, + BuildSystem.TeamCity.Environment.Project.Name + ); + } + else + { + Information("Not running on TeamCity"); + } + + + Via TeamCity + + + if (TeamCity.IsRunningOnTeamCity) + { + Information( + @"Environment: + PullRequest: {0} + Build Configuration Name: {1} + TeamCity Project Name: {2}", + BuildSystem.TeamCity.Environment.PullRequest.IsPullRequest, + BuildSystem.TeamCity.Environment.Build.BuildConfName, + BuildSystem.TeamCity.Environment.Project.Name + ); + } + else + { + Information("Not running on TeamCity"); + } + + + + + + Report a build problem to TeamCity. + + Description of build problem. + Build identity. + + + + Tell TeamCity to import data of a given type. + + Date type. + Data file path. + + + + Tell TeamCity to import coverage from dotCover snapshot file. + + Snapshot file path. + The full path to the dotCover home folder to override the bundled dotCover. + + + + Gets a value indicating whether the current build is running on TeamCity. + + + true if the current build is running on TeamCity; otherwise, false. + + + + + Tells TeamCity to publish artifacts in the given directory. + + Path to artifacts. + + + + Tells TeamCity to change the current build number. + + The required build number. + + + + Tells TeamCity to set a named parameter with a given value + + The name of the parameter to set. + The value to set for the named parameter. + + + + Write the end of a message block to the TeamCity build log. + + Block name. + + + + Write the end of a build block to the TeamCity build log. + + Build compiler name. + + + + Write a progressFinish message to the TeamCity build log. + + Build log message. + + + + Write a progress message to the TeamCity build log. + + Build log message. + + + + Write the start of a message block to the TeamCity build log. + + Block name. + + + + Write the start of a build block to the TeamCity build log. + + Build compiler name. + + + + Write a progressStart message to the TeamCity build log. + + Build log message. + + + + Write a status message to the TeamCity build log. + + Message contents. + Build status. + Error details if status is error. + + + + A set of extensions for allowing "using" with TeamCity "blocks". + + + + + Writes the start of a TeamCity message block, then returns a disposable that write the end on Dispose. + + TeamCity provider. + The name of the report block. + A disposable wrapper the writes the report block end. + + + + Writes the start of a TeamCity build block, then returns a disposable that write the end on Dispose. + + TeamCity provider. + The name of the build block. + A disposable wrapper the writes the build block end. + + + + Disposable helper for writing TeamCity message blocks. + + + + + Initializes a new instance of the class. + + TeamCity provider. + The action to do on Dispose. + + + + Writes the end block for this message block. + + + + + Base class used to provide information about the TeamCity environment. + + + + + Initializes a new instance of the class. + + The environment. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Responsible for communicating with TeamCity. + + + + + Gets the TeamCity environment. + + + The TeamCity environment. + + Via BuildSystem + + + if (BuildSystem.TeamCity.IsRunningOnTeamCity) + { + Information( + @"Environment: + PullRequest: {0} + Build Configuration Name: {1} + TeamCity Project Name: {2}", + BuildSystem.TeamCity.Environment.PullRequest.IsPullRequest, + BuildSystem.TeamCity.Environment.Build.BuildConfName, + BuildSystem.TeamCity.Environment.Project.Name + ); + } + else + { + Information("Not running on TeamCity"); + } + + + Via TeamCity + + + if (TeamCity.IsRunningOnTeamCity) + { + Information( + @"Environment: + PullRequest: {0} + Build Configuration Name: {1} + TeamCity Project Name: {2}", + BuildSystem.TeamCity.Environment.PullRequest.IsPullRequest, + BuildSystem.TeamCity.Environment.Build.BuildConfName, + BuildSystem.TeamCity.Environment.Project.Name + ); + } + else + { + Information("Not running on TeamCity"); + } + + + + + + Initializes a new instance of the class. + + The cake environment. + The cake log. + + + + Gets a value indicating whether the current build is running on TeamCity. + + + true if the current build is running on TeamCity; otherwise, false. + + + + + Write a progress message to the TeamCity build log. + + Build log message. + + + + Write a progressStart message to the TeamCity build log. + + Build log message. + + + + Write a progressFinish message to the TeamCity build log. + + Build log message. + + + + Write the start of a message block to the TeamCity build log. + + Block name. + + + + Write the end of a message block to the TeamCity build log. + + Block name. + + + + Write the start of a build block to the TeamCity build log. + + Build compiler name. + + + + Write the end of a build block to the TeamCity build log. + + Build compiler name. + + + + Write a status message to the TeamCity build log. + + Message contents. + Build status. + Error details if status is error. + + + + Tell TeamCity to import data of a given type. + + Date type. + Data file path. + + + + Tell TeamCity to import coverage from dotCover snapshot file. + + Snapshot file path. + The full path to the dotCover home folder to override the bundled dotCover. + + + + Report a build problem to TeamCity. + + Description of build problem. + Build identity. + + + + Tells TeamCity to publish artifacts in the given directory. + + Path to artifacts. + + + + Tells TeamCity to change the current build number. + + The required build number. + + + + Tells TeamCity to set a named parameter with a given value + + The name of the parameter to set. + The value to set for the named parameter. + + + + This namespace contain types used + to interact with TeamCity. + + + + + Provides TF Build agent info for the current build and build agent + + + + + Initializes a new instance of the class. + + The environment. + + + + Gets the local path on the agent where all folders for a given build definition are created. + + + The local path on the agent where all folders for a given build definition are created. + + c:\agent\_work\1 + + + + Gets the directory the agent is installed into. This contains the agent software. + + If you are using an on-premises agent, this directory is specified by you. + + The directory the agent is installed into. + + c:\agent\ + + + + Gets the working directory for this agent. + + + The working directory for this agent. + + + + + Gets the ID of the agent. + + + The ID of the agent. + + + + + Gets the name of the agent that is registered with the pool. + + If you are using an on-premises agent, this is specified by you. + + The name of the agent that is registered with the pool. + + + + + Gets the name of the machine on which the agent is installed. + + + The name of the machine on which the agent is installed. + + + + + Gets a value indicating whether the current agent is a hosted agent. + + + true if the current agent is a hosted agent; otherwise, false. + + + + + Provides the type of a TF Build artifact. + + + + + The container type. + + + + + The file path type. + + + + + The version control path type. + + + + + The git reference type. + + + + + The TFVC label type. + + + + + Provides TF Build Definition information for the current build + + + + + Initializes a new instance of the class. + + The environment. + + + + Gets the build definition ID. + + + The build definition ID. + + + + + Gets the build definition name. + + + The build definition name. + + + + + Gets the build definition version. + + + The build definition version. + + + + + Provides TF Build Environment information for the current build. + + + + + Initializes a new instance of the class. + + The environment. + + + + Gets TF Build repository information + + + The TF Build repository information. + + Via BuildSystem + + + if (BuildSystem.TFBuild.IsRunningOnTFBuild) + { + Information( + @"Repository: + Branch: {0} + SourceVersion: {1} + Shelveset: {2}", + BuildSystem.TFBuild.Environment.Repository.Branch, + BuildSystem.TFBuild.Environment.Repository.SourceVersion, + BuildSystem.TFBuild.Environment.Repository.Shelveset + ); + } + else + { + Information("Not running on TFBuild"); + } + + + Via TFBuild + + + if (TFBuild.IsRunningOnTFBuild) + { + Information( + @"Repository: + Branch: {0} + SourceVersion: {1} + Shelveset: {2}", + TFBuild.Environment.Repository.Branch, + TFBuild.Environment.Repository.SourceVersion, + TFBuild.Environment.Repository.Shelveset + ); + } + else + { + Information("Not running on TFBuild"); + } + + + + + + Gets TF Build Definition information. + + + The TF Build Definition. + + Via BuildSystem + + + if (BuildSystem.TFBuild.IsRunningOnTFBuild) + { + Information( + @"BuildDefinition: + Id: {0} + Name: {1} + Version: {2}", + BuildSystem.TFBuild.Environment.BuildDefinition.Id, + BuildSystem.TFBuild.Environment.BuildDefinition.Name, + BuildSystem.TFBuild.Environment.BuildDefinition.Version + ); + } + else + { + Information("Not running on TFBuild"); + } + + + Via TFBuild + + + if (TFBuild.IsRunningOnTFBuild) + { + Information( + @"BuildDefinition: + Id: {0} + Name: {1} + Version: {2}", + TFBuild.Environment.BuildDefinition.Id, + TFBuild.Environment.BuildDefinition.Name, + TFBuild.Environment.BuildDefinition.Version + ); + } + else + { + Information("Not running on TFBuild"); + } + + + + + + Gets TF Build information. + + + The TF Build. + + Via BuildSystem + + + if (BuildSystem.TFBuild.IsRunningOnTFBuild) + { + Information( + @"Build: + Id: {0} + Number: {1} + QueuedBy: {2}", + BuildSystem.TFBuild.Environment.Build.Id, + BuildSystem.TFBuild.Environment.Build.Number, + BuildSystem.TFBuild.Environment.Build.QueuedBy + ); + } + else + { + Information("Not running on TFBuild"); + } + + + Via TFBuild + + + if (TFBuild.IsRunningOnTFBuild) + { + Information( + @"Build: + Id: {0} + Number: {1} + QueuedBy: {2}", + TFBuild.Environment.Build.Id, + TFBuild.Environment.Build.Number, + TFBuild.Environment.Build.QueuedBy + ); + } + else + { + Information("Not running on TFBuild"); + } + + + + + + Gets TF Team Project information. + + + The TF Team Project. + + Via BuildSystem + + + if (BuildSystem.TFBuild.IsRunningOnTFBuild) + { + Information( + @"TeamProject: + Id: {0} + Name: {1}", + BuildSystem.TFBuild.Environment.TeamProject.Id, + BuildSystem.TFBuild.Environment.TeamProject.Name + ); + } + else + { + Information("Not running on TFBuild"); + } + + + Via TFBuild + + + if (TFBuild.IsRunningOnTFBuild) + { + Information( + @"TeamProject: + Id: {0} + Name: {1}", + TFBuild.Environment.TeamProject.Id, + TFBuild.Environment.TeamProject.Name + ); + } + else + { + Information("Not running on TFBuild"); + } + + + + + + Gets TF Build agent information. + + + The TF Build agent. + + Via BuildSystem + + + if (BuildSystem.TFBuild.IsRunningOnTFBuild) + { + Information( + @"Agent: + Id: {0} + Name: {1}", + BuildSystem.TFBuild.Environment.Agent.Id, + BuildSystem.TFBuild.Environment.Agent.Name + ); + } + else + { + Information("Not running on TFBuild"); + } + + + Via TFBuild + + + if (TFBuild.IsRunningOnTFBuild) + { + Information( + @"Agent: + Id: {0} + Name: {1}", + TFBuild.Environment.Agent.Id, + TFBuild.Environment.Agent.Name + ); + } + else + { + Information("Not running on TFBuild"); + } + + + + + + Provides TF Build info for the current build. + + + + + Initializes a new instance of the class. + + The environment. + + + + Gets the ID of the record for the completed build. + + + The ID of the record for the completed build. + + + + + Gets the name of the completed build. + + You can specify the build number format that generates this value in the build definition. + + The name of the completed build. + + + + + Gets the URI for the build. + + vstfs:///Build/Build/1430 + + The URI for the build. + + + + + Gets the user who queued the build. + + + The user who queued the build. + + + + + Gets the user the build was requested for. + + + The user the build was requested for. + + + + + Gets the email of the user the build was requested for. + + + The email of the user the build was requested for. + + + + + Provides optional data associated with a TF Build logging message. + + + + + Gets or sets the source file path the message should originate from. + + + The path of the originating file. + + + + + Gets or sets the line number the message relates to. + + + The line number. + + + + + Gets or sets the column number the message relates to. + + + The column number. + + + + + Gets or sets the error code of the warning or error message. + + + The error code of the warning or error. + + + + + Providers TF Build agent for publishing code coverage results + + + + + Gets or Sets the tool from which code coverage results are generated. + + + + + Gets or Sets the path ath of the summary file containing code coverage statistics, such as line, method, and class coverage. + + + + + Gets or Sets the Path of the code coverage HTML report directory. The report directory is published for later viewing as an artifact of the build. + + + + + Gets or Sets the file paths for any additional code coverage files to be published as artifacts of the build. + + + + + Provides TF Build agent info for publishing test results + + + + + Gets or Sets the type test runner the results are formated in + + + + + Gets or sets the list of Test Result files to publish. + + + + + Gets or Sets whether to merge all Test Result Files into one run + + + + + Gets or Sets the Platform for which the tests were run on + + + + + Gets or Sets the configuration for which the tests were run on + + + + + Gets or Sets a name for the Test Run. + + + + + Gets or Sets whether to opt in/out of publishing test run level attachments + + + + + Provides optional data associated with a TF Build timeline record. + + + + + Gets or sets the parent record of a new or existing timeline record. + + + The ID of the parent record. + + + + + Gets or sets the start time of this record. + + + The start time of this record. + + + + + Gets or sets the finish time of this record. + + + The finish time of this record. + + + + + Gets or sets the current progress of this record. + + + The current progress of this record. + + + + + Gets or sets the current status of this record. + + + The current status of this record. + + + + + Gets or sets the result of this record. + + + The result of this record. + + + + + Provides TF Build Repository information for the current build + + + + + Initializes a new instance of the class. + + The environment. + + + + Gets name of the branch the build was queued for. + + + The SCM branch + + + + + Gets the latest version control change that is included in this build. + + Note: for Git this is the commit ID. For TFVC this is the changeset. + + The SCM source version + + + + + Gets the name of the shelveset you are building, if you are running a gated build or a shelveset build. + + Defined only if your repository is Team Foundation Version Control. + + The shelveset name + + + + + Gets the name of the repository + + + The name of the repository + + + + + Gets the type of the current repository. + + + The type of the current repository. + + + + + Provides the result of a TF Build task record. + + + + + Succeeded status. + + + + + Succeeded with issues status. + + + + + Failed status. + + + + + Cancelled status. + + + + + Skipped status. + + + + + Provides the status of a TF Build task record. + + + + + Unknown status. + + + + + Initialized status. + + + + + In progress status. + + + + + Completed status. + + + + + Provides Team Foundation Team Project information for the current build + + + + + Initializes a new instance of the class. + + The environment. + + + + Gets the name of the team project that contains this build. + + + The name of the team project that contains this build. + + + + + Gets the ID of the team project that contains this build. + + + The ID of the team project that contains this build. + + + + + Gets the URI of the team foundation collection. + + + The URI of the team foundation collection. + + + + + Provides the known values for the Code Coverage tool formats + + + + + JaCoCo code coverage format + + + + + Cobertura code coverage format + + + + + Provides the known values for the TF Build Repository types. + + + + + TFS Git repository. + + + + + Team Foundation Version Control repository. + + + + + Git repository hosted on an external server. + + + + + GitHub repository. + + + + + Subversion repository. + + + + + Providers known values for the TF Test Runner types + + + + + JUnit Test Result Format + + + + + NUnit (v2) Test Result Format + + + + + Visual Studio (MSTest) Test Result Format + + + + + XUnit Test Result Format + + + + + Represents a TF Build command provider. + + + + + Log a warning issue to timeline record of current task. + + The warning message. + + + + Log a warning issue with detailed data to timeline record of current task. + + The warning message. + The message data. + + + + Log an error to timeline record of current task. + + The error message. + + + + Log an error with detailed data to timeline record of current task. + + The error message. + The message data. + + + + Set progress and current operation for current task. + + Current progress as percentage. + The current operation. + + + + Finish timeline record for current task and set task result to succeeded. + + + + + Finish timeline record for current task and set task result. + + The task result status. + + + + Create detail timeline record. + + Name of the new timeline record. + Type of the new timeline record. + Order of the timeline record. + The timeline record ID. + + + + Create detail timeline record. + + Name of the new timeline record. + Type of the new timeline record. + Order of the timeline record. + Additional data for the new timeline record. + The timeilne record ID. + + + + Update an existing detail timeline record. + + The ID of the existing timeline record. + Additional data for the timeline record. + + + + Sets a variable in the variable service of the task context. + + + The variable is exposed to following tasks as an environment variable. + + The variable name. + The variable value. + + + + Sets a secret variable in the variable service of the task context. + + + The variable is not exposed to following tasks as an environment variable, and must be passed as inputs. + + The variable name. + The variable value. + + + + Upload and attach summary markdown to current timeline record. + + + This summary is added to the build/release summary and is not available for download with logs. + + Path to the summary markdown file. + + + + Upload file as additional log information to the current timeline record. + + + + The file shall be available for download along with task logs. + + + Requires agent version 1.101. + + + Path to the additional log file. + + + + Create an artifact link, such as a file or folder path or a version control path. + + The artifact name.. + The artifact type. + The link path or value. + + + + Upload local file into a file container folder. + + Folder that the file will upload to. + Path to the local file. + + + + Upload local file into a file container folder, and create an artifact. + + Folder that the file will upload to. + Path to the local file. + The artifact name. + + + + Upload additional log to build container's logs/tool folder. + + The log file. + + + + Update build number for current build. + + + Requires agent version 1.88. + + The build number. + + + + Add a tag for current build. + + + Requires agent version 1.95 + + The tag. + + + + Publishes and uploads tests results + + The publish test results data + + + + Publishes and uploads code coverage results + + The code coverage data + + + + Represents a TF Build provider. + + + + + Gets a value indicating whether the current build is running on VSTS. + + + true if the current build is running on VSTS; otherwise, false. + + + + + Gets a value indicating whether the current build is running on TFS. + + + true if the current build is running on TFS; otherwise, false. + + + + + Gets the TF Build environment. + + + The TF Build environment. + + + + + Gets the TF Build Commands provider. + + + The TF Build commands provider. + + + + + Responsible for issuing TF Build agent commands (see ). + + + + + Initializes a new instance of the class. + + The environment. + The log. + + + + Log a warning issue to timeline record of current task. + + The warning message. + + + + Log a warning issue with detailed data to timeline record of current task. + + The warning message. + The message data. + + + + Log an error to timeline record of current task. + + The error message. + + + + Log an error with detailed data to timeline record of current task. + + The error message. + The message data. + + + + Set progress and current operation for current task. + + Current progress as percentage. + The current operation. + + + + Finish timeline record for current task and set task result to succeeded. + + + + + Finish timeline record for current task and set task result. + + The task result status. + + + + Create detail timeline record. + + Name of the new timeline record. + Type of the new timeline record. + Order of the timeline record. + The timeline record ID. + + + + Create detail timeline record. + + Name of the new timeline record. + Type of the new timeline record. + Order of the timeline record. + Additional data for the new timeline record. + The timeilne record ID. + + + + Update an existing detail timeline record. + + The ID of the existing timeline record. + Additional data for the timeline record. + + + + Sets a variable in the variable service of the task context. + + + The variable is exposed to following tasks as an environment variable. + + The variable name. + The variable value. + + + + Sets a secret variable in the variable service of the task context. + + + The variable is not exposed to following tasks as an environment variable, and must be passed as inputs. + + The variable name. + The variable value. + + + + Upload and attach summary markdown to current timeline record. + + + This summary is added to the build/release summary and is not available for download with logs. + + Path to the summary markdown file. + + + + Upload file as additional log information to the current timeline record. + + + + The file shall be available for download along with task logs. + + + Requires agent version 1.101. + + + Path to the additional log file. + + + + Create an artifact link, such as a file or folder path or a version control path. + + The artifact name.. + The artifact type. + The link path or value. + + + + Upload local file into a file container folder. + + Folder that the file will upload to. + Path to the local file. + + + + Upload local file into a file container folder, and create an artifact. + + Folder that the file will upload to. + Path to the local file. + The artifact name. + + + + Upload additional log to build container's logs/tool folder. + + The log file. + + + + Update build number for current build. + + + Requires agent version 1.88. + + The build number. + + + + Add a tag for current build. + + + Requires agent version 1.95 + + The tag. + + + + Publishes and uploads tests results + + The publish test results data + + + + Publishes and uploads code coverage results + + The code coverage data + + + + Responsible for communicating with Team Foundation Build (VSTS or TFS). + + + + + Initializes a new instance of the class. + + The environment. + The log. + + + + Gets a value indicating whether the current build is running on VSTS. + + + true if the current build is running on VSTS; otherwise, false. + + + + + Gets a value indicating whether the current build is running on TFS. + + + true if the current build is running on TFS; otherwise, false. + + + + + Gets the TF Build environment. + + + The TF Build environment. + + + + + Gets the TF Build Commands provider. + + + The TF Build commands provider. + + + + + Gets a value indicating whether the current build is running on a hosted build agent. + + + true if the current build is running on a hosted agent; otherwise, false. + + + + + Base class used to provide information about the TF Build environment. + + + + + Initializes a new instance of the class. + + The environment. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Gets the current repository type as a from an environment variable. + + The environment variable name. + The current repository type. + + + + Provides Travis CI build information for the current build. + + + + + Gets the branch for the current build. + + + The branch. + + + + + Gets the build directory for the current build. + + + The build directory. + + + + + Gets the build identifier for the current build. + + + The build identifier. + + + + + Gets the build number for the current build. + + + The build number. + + + + + Gets the test result indicating if the current build is successful or broken. + + + The test result. + + + + + Gets the tag name for the current build. + + + The tag. + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides Travis CI environment information for the current build. + + + + + Gets Travis CI build information for the current build. + + + The build. + + Via BuildSystem + + + if (BuildSystem.TravisCI.IsRunningOnTravisCI) + { + Information( + @"Build: + Branch: {0} + BuildDirectory: {1} + BuildId: {2}", + BuildSystem.TravisCI.Environment.Build.Branch, + BuildSystem.TravisCI.Environment.Build.BuildDirectory, + BuildSystem.TravisCI.Environment.Build.BuildId + ); + } + else + { + Information("Not running on TravisCI"); + } + + + Via TravisCI + + + if (TravisCI.IsRunningOnTravisCI) + { + Information( + @"Build: + Branch: {0} + BuildDirectory: {1} + BuildId: {2}", + TravisCI.Environment.Build.Branch, + TravisCI.Environment.Build.BuildDirectory, + TravisCI.Environment.Build.BuildId + ); + } + else + { + Information("Not running on TravisCI"); + } + + + + + + Gets Travis CI job information for the current build. + + + The job. + + Via BuildSystem + + + if (BuildSystem.TravisCI.IsRunningOnTravisCI) + { + Information( + @"Job: + JobId: {0} + JobNumber: {1} + OSName: {2}", + BuildSystem.TravisCI.Environment.Job.JobId, + BuildSystem.TravisCI.Environment.Job.JobNumber, + BuildSystem.TravisCI.Environment.Job.OSName + ); + } + else + { + Information("Not running on TravisCI"); + } + + + Via TravisCI + + + if (TravisCI.IsRunningOnTravisCI) + { + Information( + @"Job: + JobId: {0} + JobNumber: {1} + OSName: {2}", + TravisCI.Environment.Job.JobId, + TravisCI.Environment.Job.JobNumber, + TravisCI.Environment.Job.OSName + ); + } + else + { + Information("Not running on TravisCI"); + } + + + + + + Gets Travis CI repository information for the current build. + + + The repository. + + Via BuildSystem + + + if (BuildSystem.TravisCI.IsRunningOnTravisCI) + { + Information( + @"Repository: + Commit: {0} + CommitRange: {1} + PullRequest: {2}", + BuildSystem.TravisCI.Environment.Repository.Commit, + BuildSystem.TravisCI.Environment.Repository.CommitRange, + BuildSystem.TravisCI.Environment.Repository.PullRequest + ); + } + else + { + Information("Not running on TravisCI"); + } + + + Via TravisCI + + + if (TravisCI.IsRunningOnTravisCI) + { + Information( + @"Repository: + Commit: {0} + CommitRange: {1} + PullRequest: {2}", + TravisCI.Environment.Repository.Commit, + TravisCI.Environment.Repository.CommitRange, + TravisCI.Environment.Repository.PullRequest + ); + } + else + { + Information("Not running on TravisCI"); + } + + + + + + Gets a value indicating whether the current build is continuous integration. + + + true if ci; otherwise, false. + + Via BuildSystem + + + if (BuildSystem.TravisCI.IsRunningOnTravisCI) + { + Information( + @"CI: {0}", + BuildSystem.TravisCI.Environment.CI + ); + } + else + { + Information("Not running on TravisCI"); + } + + + Via TravisCI + + + if (TravisCI.IsRunningOnTravisCI) + { + Information( + @"CI: {0}", + TravisCI.Environment.CI + ); + } + else + { + Information("Not running on TravisCI"); + } + + + + + + Gets the Travis CI home directory. + + + The home. + + Via BuildSystem + + + if (BuildSystem.TravisCI.IsRunningOnTravisCI) + { + Information( + @"Home: {0}", + BuildSystem.TravisCI.Environment.Home + ); + } + else + { + Information("Not running on TravisCI"); + } + + + Via TravisCI + + + if (TravisCI.IsRunningOnTravisCI) + { + Information( + @"Home: {0}", + TravisCI.Environment.Home + ); + } + else + { + Information("Not running on TravisCI"); + } + + + + + + Gets a value indicating whether the environment is Travis. + + + true if Travis; otherwise, false. + + Via BuildSystem + + + if (BuildSystem.TravisCI.IsRunningOnTravisCI) + { + Information( + @"Travis: {0}", + BuildSystem.TravisCI.Environment.Travis + ); + } + else + { + Information("Not running on TravisCI"); + } + + + Via TravisCI + + + if (TravisCI.IsRunningOnTravisCI) + { + Information( + @"Travis: {0}", + TravisCI.Environment.Travis + ); + } + else + { + Information("Not running on TravisCI"); + } + + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides Travis CI job information for the current build. + + + + + Gets the job identifier for the current job.. + + + The job identifier. + + + + + Gets the job number for the current job. + + + The job number. + + + + + Gets the name of the operating system for the current job. + + + The name of the os. + + + + + Gets a value indicating whether encrypted environment variables are being used for the current job. + + + true if [secure environment variables are in use]; otherwise, false. + + + + + Initializes a new instance of the class. + + The environment. + + + + Provides Travis CI repository information for the current build. + + + + + Gets the commit that the current build is testing. + + + The commit. + + + + + Gets the commit range for the current pull request. + + + The commit range. + + + + + Gets the pull request. + + + The pull request. + + + + + Gets the slug of the respository currently being built. + + + The slug. + + + + + Initializes a new instance of the class. + + The environment. + + + + Represents a Travis CI Provider. + + + + + Gets a value indicating whether this instance is running on Travis CI. + + + true if this instance is running on Travis CI; otherwise, false. + + + + + Gets the environment. + + + The environment. + + + + + Write the start of a message fold to the Travis CI build log. + + Name of the group. + + + + Write the start of a message fold to the Travis CI build log. + + Name of the group. + + + + A set of extensions for allowing "using" with Travis CI "blocks". + + + + + Folds travis log output. + + The Travis CI provider. + The name. + An . + + + + Disposable helper for writing Travis CI message blocks. + + + + + Initializes a new instance of the class. + + The Travis CI provider. + The dispose action. + + + + Writes the end block for this message block. + + + + + Base class used to provide information about the Travis CI environment. + + + + + Initializes a new instance of the class. + + The environment. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Gets an environment variable as a . + + The environment variable name. + The environment variable. + + + + Responsible for communicating with Travis CI. + + + + + Initializes a new instance of the class. + + The environment. + The log. + + + + Gets the Travis CI environment. + + + The environment. + + + + + Gets a value indicating whether this instance is running on Travis CI. + + + true if this instance is running on Travis CI; otherwise, false. + + + + + Write the start of a message fold to the Travis CI build log. + + Name of the group. + + + + Write the start of a message fold to the Travis CI build log. + + Name of the group. + + + + This namespace contain types that + support different build system related tasks. + + + + + Contains functionality related to logging. + + + + + Writes an error message to the log using the specified format information. + + The context. + The format. + The arguments. + + + Error("Hello {0}! Today is an {1:dddd}", "World", DateTime.Now); + + + + + + Writes an error message to the log using the specified log message action. + Evaluation message only if verbosity same or more verbose. + + the context. + The function called for message when logging. + + + Error(logAction=>logAction("Hello {0}! Today is an {1:dddd}", "World", DateTime.Now)); + + + + + + Writes an error message to the log using the specified value. + + the context. + The value. + + + Error(new {FirstName = "John", LastName="Doe"}); + + + + + + Writes an error message to the log using the specified string value. + + the context. + The value. + + + Error("{string}"); + + + + + + Writes a warning message to the log using the specified format information. + + The context. + The format. + The arguments. + + + Warning("Hello {0}! Today is an {1:dddd}", "World", DateTime.Now); + + + + + + Writes a warning message to the log using the specified log message action. + Evaluation message only if verbosity same or more verbose. + + the context. + The function called for message when logging. + + + Warning(logAction=>logAction("Hello {0}! Today is an {1:dddd}", "World", DateTime.Now)); + + + + + + Writes an warning message to the log using the specified value. + + the context. + The value. + + + Warning(new {FirstName = "John", LastName="Doe"}); + + + + + + Writes an warning message to the log using the specified string value. + + the context. + The value. + + + Warning("{string}"); + + + + + + Writes an informational message to the log using the specified format information. + + The context. + The format. + The arguments. + + + Information("Hello {0}! Today is an {1:dddd}", "World", DateTime.Now); + + + + + + Writes an informational message to the log using the specified log message action. + Evaluation message only if verbosity same or more verbose. + + the context. + The function called for message when logging. + + + Information(logAction=>logAction("Hello {0}! Today is an {1:dddd}", "World", DateTime.Now)); + + + + + + Writes an informational message to the log using the specified value. + + The context. + The value. + + + Information(new {FirstName = "John", LastName="Doe"}); + + + + + + Writes an informational message to the log using the specified string value. + + The context. + The value. + + + Information("{string}"); + + + + + + Writes a verbose message to the log using the specified format information. + + The context. + The format. + The arguments. + + + Verbose("Hello {0}! Today is an {1:dddd}", "World", DateTime.Now); + + + + + + Writes a verbose message to the log using the specified log message action. + Evaluation message only if verbosity same or more verbose. + + the context. + The function called for message when logging. + + + Verbose(logAction=>logAction("Hello {0}! Today is an {1:dddd}", "World", DateTime.Now)); + + + + + + Writes a verbose message to the log using the specified value. + + The context. + The value. + + + Verbose(new {FirstName = "John", LastName="Doe"}); + + + + + + Writes a verbose message to the log using the specified string value. + + The context. + The value. + + + Verbose("{string}"); + + + + + + Writes a debug message to the log using the specified format information. + + The context. + The format. + The arguments. + + + Debug("Hello {0}! Today is an {1:dddd}", "World", DateTime.Now); + + + + + + Writes a debug message to the log using the specified log message action. + Evaluation message only if verbosity same or more verbose. + + the context. + The function called for message when logging. + + + Debug(logAction=>logAction("Hello {0}! Today is an {1:dddd}", "World", DateTime.Now)); + + + + + + Writes a debug message to the log using the specified value. + + the context. + The value. + + + Debug(new {FirstName = "John", LastName="Doe"}); + + + + + + Writes a debug message to the log using the specified string value. + + the context. + The value. + + + Debug("{string}"); + + + + + + This namespace contain types that + enable you to interact with build logs. + + + + + Contains functionality related to arguments. + + + + + Determines whether or not the current script execution is a dry run. + + The context. + Whether or not the current script execution is a dry run. + + + Setup(context => + { + if (!context.IsDryRun()) + { + // Do things that you don't want to + // do when script is being dry runned. + } + }); + + + + + + Contains functionality related to the environment. + + + + + Retrieves the value of the environment variable or null if the environment variable does not exist. + + + + Information(EnvironmentVariable("HOME") ?? "Unknown location"); + + + The context. + The environment variable. + The environment variable or null if the environment variable does not exist. + + + + Retrieves all environment variables + + + + var envVars = EnvironmentVariables(); + + string path; + if (envVars.TryGetValue("PATH", out path)) + { + Information("Path: {0}", path); + } + + foreach(var envVar in envVars) + { + Information( + "Key: {0}\tValue: \"{1}\"", + envVar.Key, + envVar.Value + ); + } + + + The context. + The environment variables + + + + Checks for the existence of a value for a given environment variable. + + + + if (HasEnvironmentVariable("SOME_ENVIRONMENT_VARIABLE")) + { + Information("The environment variable was present."); + } + + + The context. + The environment variable. + + true if the environment variable exist; otherwise false. + + + + + Determines whether the build script is running on Windows. + + + + if (IsRunningOnWindows()) + { + Information("Windows!"); + } + + + The context. + + true if the build script is running on Windows; otherwise false. + + + + + Determines whether the build script running on a Unix or Linux based system. + + + + if (IsRunningOnUnix()) + { + Information("Not Windows!"); + } + + + The context. + + true if the build script running on a Unix or Linux based system; otherwise false. + + + + + Contains settings used by DeleteDirectory. + + + + + Gets or sets a value indicating whether to perform a recursive delete if set to true. + + It is set to false by default. + + + + + + Gets or sets a value indicating whether to delete read-only files if set to true. + + It is set to false by default. + + + + + + Contains extension methods for working with directories. + + + + + Gets a directory path from string. + + + + // Get the temp directory. + var root = Directory("./"); + var temp = root + Directory("temp"); + + // Clean the directory. + CleanDirectory(temp); + + + The context. + The path. + A directory path. + + + + Deletes the specified directories. + + + + var directoriesToDelete = new DirectoryPath[]{ + Directory("be"), + Directory("gone") + }; + DeleteDirectories(directoriesToDelete, recursive:true); + + + The context. + The directory paths. + Will perform a recursive delete if set to true. + + + + Deletes the specified directories. + + + + var directoriesToDelete = new DirectoryPath[]{ + Directory("be"), + Directory("gone") + }; + DeleteDirectories(directoriesToDelete, new DeleteDirectorySettings { + Recursive = true, + Force = true + }); + + + The context. + The directory paths. + The delete settings. + + + + Deletes the specified directories. + + + + var directoriesToDelete = new []{ + "be", + "gone" + }; + DeleteDirectories(directoriesToDelete, recursive:true); + + + The context. + The directory paths. + Will perform a recursive delete if set to true. + + + + Deletes the specified directories. + + + + var directoriesToDelete = new []{ + "be", + "gone" + }; + DeleteDirectories(directoriesToDelete, new DeleteDirectorySettings { + Recursive = true, + Force = true + }); + + + The context. + The directory paths. + The delete settings. + + + + Deletes the specified directory. + + + + DeleteDirectory("./be/gone", recursive:true); + + + The context. + The directory path. + Will perform a recursive delete if set to true. + + + + Deletes the specified directory. + + + + DeleteDirectory("./be/gone", new DeleteDirectorySettings { + Recursive = true, + Force = true + }); + + + The context. + The directory path. + The delete settings. + + + + Cleans the directories matching the specified pattern. + Cleaning the directory will remove all its content but not the directory itself. + + + + CleanDirectories("./src/**/bin/debug"); + + + The context. + The pattern to match. + + + + Cleans the directories matching the specified pattern. + Cleaning the directory will remove all its content but not the directory itself. + + + + Func<IFileSystemInfo, bool> exclude_node_modules = + fileSystemInfo=>!fileSystemInfo.Path.FullPath.EndsWith( + "node_modules", + StringComparison.OrdinalIgnoreCase); + CleanDirectories("./src/**/bin/debug", exclude_node_modules); + + + The context. + The pattern to match. + The predicate used to filter directories based on file system information. + + + + Cleans the specified directories. + Cleaning a directory will remove all its content but not the directory itself. + + + + var directoriesToClean = GetDirectories("./src/**/bin/"); + CleanDirectories(directoriesToClean); + + + The context. + The directory paths. + + + + Cleans the specified directories. + Cleaning a directory will remove all its content but not the directory itself. + + + + var directoriesToClean = new []{ + "./src/Cake/obj", + "./src/Cake.Common/obj" + }; + CleanDirectories(directoriesToClean); + + + The context. + The directory paths. + + + + Cleans the specified directory. + + + + CleanDirectory("./src/Cake.Common/obj"); + + + The context. + The directory path. + + + + Cleans the specified directory. + + + + CleanDirectory("./src/Cake.Common/obj", fileSystemInfo=>!fileSystemInfo.Hidden); + + + The context. + The directory path. + Predicate used to determine which files/directories should get deleted. + + + + Creates the specified directory. + + + + CreateDirectory("publish"); + + + The context. + The directory path. + + + + Creates the specified directory if it does not exist. + + + + EnsureDirectoryExists("publish"); + + + The context. + The directory path. + + + + Copies the contents of a directory, including subdirectories to the specified location. + + + + CopyDirectory("source_path", "destination_path"); + + + The context. + The source directory path. + The destination directory path. + + + + Determines whether the given path refers to an existing directory. + + + + var dir = "publish"; + if (!DirectoryExists(dir)) + { + CreateDirectory(dir); + } + + + The context. + The to check. + true if refers to an existing directory; + false if the directory does not exist or an error occurs when trying to + determine if the specified path exists. + + + + Makes the path absolute (if relative) using the current working directory. + + + + var path = MakeAbsolute(Directory("./resources")); + + + The context. + The path. + An absolute directory path. + + + + Moves an existing directory to a new location, providing the option to specify a new directory name. + + The context. + The directory path. + The target directory path. + + + MoveDirectory("mydir", "newparent/newdir"); + + + + + + Gets a list of all the directories inside a directory. + + + + var directories = GetSubDirectories("some/dir"); + + + The context. + The directory path. + An absolute directory path. + + + + Contains functionality related to file operations. + + + + + Gets a file path from string. + + + + // Get the temp file. + var root = Directory("./"); + var temp = root + File("temp"); + + // Delete the file. + CleanDirectory(temp); + + + The context. + The path. + A file path. + + + + Copies an existing file to a new location. + + The context. + The file path. + The target directory path. + + + CopyFileToDirectory("test.txt", "./targetdir"); + + + + + + Copies an existing file to a new file, providing the option to specify a new file name. + + The context. + The file path. + The target file path. + + + CopyFile("test.tmp", "test.txt"); + + + + + + Copies all files matching the provided pattern to a new location. + + The context. + The pattern. + The target directory path. + + + CopyFiles("Cake.*", "./publish"); + + + + + + Copies existing files to a new location. + + The context. + The file paths. + The target directory path. + + + var files = GetFiles("./**/Cake.*"); + CopyFiles(files, "destination"); + + + + + + Copies existing files to a new location. + + The context. + The file paths. + The target directory path. + + + CreateDirectory("destination"); + var files = new [] { + "Cake.exe", + "Cake.pdb" + }; + CopyFiles(files, "destination"); + + + + + + Copies all files matching the provided pattern to a new location. + + The context. + The pattern. + The target directory path. + Keep the folder structure. + + + CopyFiles("Cake.*", "./publish"); + + + + + + Copies existing files to a new location. + + The context. + The file paths. + The target directory path. + Keep the folder structure. + + + var files = GetFiles("./**/Cake.*"); + CopyFiles(files, "destination"); + + + + + + Copies existing files to a new location. + + The context. + The file paths. + The target directory path. + Keep the folder structure. + + + CreateDirectory("destination"); + var files = new [] { + "Cake.exe", + "Cake.pdb" + }; + CopyFiles(files, "destination"); + + + + + + Moves an existing file to a new location. + + The context. + The file path. + The target directory path. + + + MoveFileToDirectory("test.txt", "./targetdir"); + + + + + + Moves existing files matching the specified pattern to a new location. + + The context. + The pattern. + The target directory path. + + + MoveFiles("./publish/Cake.*", "./destination"); + + + + + + Moves existing files to a new location. + + The context. + The file paths. + The target directory path. + + + var files = GetFiles("./publish/Cake.*"); + MoveFiles(files, "destination"); + + + + + + Moves an existing file to a new location, providing the option to specify a new file name. + + The context. + The file path. + The target file path. + + + MoveFile("test.tmp", "test.txt"); + + + + + + Deletes the specified files. + + The context. + The pattern. + + + DeleteFiles("./publish/Cake.*"); + + + + + + Deletes the specified files. + + The context. + The file paths. + + + var files = GetFiles("./destination/Cake.*"); + DeleteFiles(files); + + + + + + Deletes the specified file. + + The context. + The file path. + + + DeleteFile("deleteme.txt"); + + + + + + Determines whether the given path refers to an existing file. + + The context. + The to check. + true if refers to an existing file; + false if the file does not exist or an error occurs when trying to + determine if the specified file exists. + + + if (FileExists("findme.txt")) + { + Information("File exists!"); + } + + + + + + Makes the path absolute (if relative) using the current working directory. + + The context. + The path. + An absolute file path. + + + var path = MakeAbsolute(File("./resources")); + + + + + + Gets the size of a file in bytes. + + The context. + The path. + Size of file in bytes or -1 if file doesn't exist. + + + Information("File size: {0}", FileSize("./build.cake")); + + + + + + Contains functionality related to file system globbing. + + + + + Gets all files matching the specified pattern. + + + + var files = GetFiles("./**/Cake.*.dll"); + foreach(var file in files) + { + Information("File: {0}", file); + } + + + The context. + The glob pattern to match. + A . + + + + Gets all files matching the specified pattern. + + + + Func<IFileSystemInfo, bool> exclude_node_modules = + fileSystemInfo => !fileSystemInfo.Path.FullPath.EndsWith( + "node_modules", StringComparison.OrdinalIgnoreCase); + + var files = GetFiles("./**/Cake.*.dll", exclude_node_modules); + foreach(var file in files) + { + Information("File: {0}", file); + } + + + The context. + The glob pattern to match. + The predicate used to filter directories based on file system information. + A . + + + + Gets all directory matching the specified pattern. + + + + var directories = GetDirectories("./src/**/obj/*"); + foreach(var directory in directories) + { + Information("Directory: {0}", directory); + } + + + The context. + The glob pattern to match. + A . + + + + Gets all directory matching the specified pattern. + + + + Func<IFileSystemInfo, bool> exclude_node_modules = + fileSystemInfo => !fileSystemInfo.Path.FullPath.EndsWith( + "node_modules", StringComparison.OrdinalIgnoreCase); + + var directories = GetDirectories("./src/**/obj/*", exclude_node_modules); + foreach(var directory in directories) + { + Information("Directory: {0}", directory); + } + + + The context. + The glob pattern to match. + The predicate used to filter directories based on file system information. + A . + + + + Represents a that can be easily converted. + + To get the underlying : + + ConvertableDirectoryPath convertable = Directory("./root"); + DirectoryPath path = (DirectoryPath)convertable; + + To combine two directories: + + ConvertableDirectoryPath path = Directory("./root") + Directory("other"); + + To combine a directory with a file: + + ConvertableFilePath path = Directory("./root") + File("other.txt"); + + + + + + + Gets the path. + + The path. + + + + Initializes a new instance of the class. + + The path. + + + + Operator that combines A instance + with another instance. + + The left directory path operand. + The right directory path operand. + A new directory path representing a combination of the two provided paths. + + + + Operator that combines A instance + with a instance. + + The left directory path operand. + The right directory path operand. + A new directory path representing a combination of the two provided paths. + + + + Operator that combines A instance + with a instance. + + The left directory path operand. + The right file path operand. + A new file path representing a combination of the two provided paths. + + + + Operator that combines A instance + with a instance. + + The left directory path operand. + The right file path operand. + A new file path representing a combination of the two provided paths. + + + + Performs an implicit conversion from to . + + The path. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The path. + The result of the conversion. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Represents a that can be easily converted. + + + + + Initializes a new instance of the class. + + The path. + + + + Gets the path. + + The actual path. + + + + Performs an implicit conversion from to . + + The path. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The path. + The result of the conversion. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + This namespace contain types related + to file system paths. + + + + + Contains functionality related to compress files to Zip. + + + + + Zips the specified directory. + + The context. + The root path. + The output path. + + + Zip("./publish", "publish.zip"); + + + + + + Zips the files matching the specified pattern. + + The context. + The root path. + The output path. + The pattern. + + + Zip("./", "xmlfiles.zip", "./*.xml"); + + + + + + Zips the specified files. + + The context. + The root path. + The output path. + The file paths. + + + var files = GetFiles("./**/Cake.*.dll"); + Zip("./", "cakeassemblies.zip", files); + + + + + + Zips the specified files. + + The context. + The root path. + The output path. + The file paths. + + + var files = new [] { + "./src/Cake/bin/Debug/Autofac.dll", + "./src/Cake/bin/Debug/Cake.Common.dll", + "./src/Cake/bin/Debug/Cake.Core.dll", + "./src/Cake/bin/Debug/Cake.exe" + }; + Zip("./", "cakebinaries.zip", files); + + + + + + Unzips the specified file + + The context. + Zip file to unzip. + Output path to unzip into. + + + Unzip("Cake.zip", "./cake"); + + + + + + Performs Zip compression. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The log. + + + + Zips the specified directory. + + The root path. + The output path. + The files to zip. + + + + Unzips the specified file to the specified output path + + Zip file path. + Output directory path. + + + + This namespace contain types that support input and output, + including the ability to read and write data to streams and to + interact with the file system. + + + + + This namespace contain types related + to network operations. + + + + + The module responsible for registering + default types in the Cake.Common assembly. + + + + + Performs custom registrations in the provided registrar. + + The container registrar. + + + + Contains settings for + + + + + Gets or sets the Username to use when downloading the file + + + + + Gets or sets the Password to use when downloading the file + + + + + Gets or sets a value indicating whether default credentials are sent when downloading the file + + + If set to true, any Username and Password that has been speficied will be ignored. + + + + + Contains functionality related to HTTP operations + + + + + Downloads the specified resource over HTTP to a temporary file. + + + + var resource = DownloadFile("http://www.example.org/index.html"); + + + The context. + The URL of the resource to download. + The path to the downloaded file. + + + + Downloads the specified resource over HTTP to a temporary file with specified settings. + + + + var resource = DownloadFile("http://www.example.org/index.html", new DownloadFileSettings() + { + Username = "bob", + Password = "builder" + }); + + + The context. + The URL of the resource to download. + The settings. + The path to the downloaded file. + + + + Downloads the specified resource over HTTP to a temporary file. + + + + var address = new Uri("http://www.example.org/index.html"); + var resource = DownloadFile(address); + + + The context. + The URL of file to download. + The path to the downloaded file. + + + + Downloads the specified resource over HTTP to a temporary file with specified settings. + + + + var address = new Uri("http://www.example.org/index.html"); + var resource = DownloadFile(address, new DownloadFileSettings() + { + Username = "bob", + Password = "builder" + }); + + + The context. + The URL of file to download. + The settings. + The path to the downloaded file. + + + + Downloads the specified resource over HTTP to the specified output path. + + + + var outputPath = File("./index.html"); + DownloadFile("http://www.example.org/index.html", outputPath); + + + The context. + The URL of the resource to download. + The output path. + + + + Downloads the specified resource over HTTP to the specified output path and settings. + + + + var outputPath = File("./index.html"); + DownloadFile("http://www.example.org/index.html", outputPath, new DownloadFileSettings() + { + Username = "bob", + Password = "builder" + }); + + + The context. + The URL of the resource to download. + The output path. + The settings. + + + + Downloads the specified resource over HTTP to the specified output path. + + + + var address = new Uri("http://www.example.org/index.html"); + var outputPath = File("./index.html"); + DownloadFile(address, outputPath, new DownloadFileSettings() + { + Username = "bob", + Password = "builder" + }); + + + The context. + The URL of the resource to download. + The output path. + The settings. + + + + Uploads the specified file via a HTTP POST to the specified uri using multipart/form-data. + + + + var address = new Uri("http://www.example.org/upload"); + UploadFile(address, @"path/to/file.txt"); + + + The context. + The URL of the upload resource. + The file to upload. + + + + Uploads the specified file via a HTTP POST to the specified uri using multipart/form-data. + + + + var address = "http://www.example.org/upload"; + UploadFile(address, @"path/to/file.txt"); + + + The context. + The URL of the upload resource. + The file to upload. + + + + Uploads the specified byte array via a HTTP POST to the specified uri using multipart/form-data. + + + + var address = new Uri("http://www.example.org/upload"); + UploadFile(address, @"path/to/file.txt"); + + + The context. + The URL of the upload resource. + The data to upload. + The filename to give the uploaded data + + + + Uploads the specified byte array via a HTTP POST to the specified uri using multipart/form-data. + + + + var address = "http://www.example.org/upload"; + UploadFile(address, @"path/to/file.txt"); + + + The context. + The URL of the upload resource. + The data to upload. + The filename to give the uploaded data + + + + Gets an pre-populated with the correct default headers such as User-Agent. + The returned client should be disposed of by the caller. + + The current Cake context. + Indicates whether or not to use default credentials. + A instance. + + + + This namespace contain types related + to security aspects such as hashing. + + + + + Contains functionality related to processes. + + + + + Starts the process resource that is specified by the filename. + + The context. + The file name. + The exit code that the started process specified when it terminated. + + + var exitCodeWithoutArguments = StartProcess("ping"); + // This should output 1 as argument is missing + Information("Exit code: {0}", exitCodeWithoutArguments); + + + + + + Starts the process resource that is specified by the filename and arguments + + The context. + Name of the file. + The arguments used in the process settings. + The exit code that the started process specified when it terminated. + + + var exitCodeWithArgument = StartProcess("ping", "localhost"); + // This should output 0 as valid arguments supplied + Information("Exit code: {0}", exitCodeWithArgument); + + + + + + Starts the process resource that is specified by the filename and settings. + + The context. + Name of the file. + The settings. + The exit code that the started process specified when it terminated. + + + var exitCodeWithArgument = StartProcess("ping", new ProcessSettings{ Arguments = "localhost" }); + // This should output 0 as valid arguments supplied + Information("Exit code: {0}", exitCodeWithArgument); + + + + + + Starts the process resource that is specified by the filename and settings. + + The context. + Name of the file. + The settings. + Returns process output if is true. + Otherwise null is returned. + The exit code that the started process specified when it terminated. + + + IEnumerable<string> redirectedStandardOutput; + var exitCodeWithArgument = + StartProcess( + "ping", + new ProcessSettings { + Arguments = "localhost", + RedirectStandardOutput = true + }, + out redirectedStandardOutput + ); + + // Output last line of process output. + Information("Last line of output: {0}", redirectedStandardOutput.LastOrDefault()); + + // This should output 0 as valid arguments supplied + Information("Exit code: {0}", exitCodeWithArgument); + + + + + + Starts the process resource that is specified by the filename and settings. + + The context. + Name of the file. + The settings. + Returns process output if is true. + Otherwise null is returned. + Returns process error output if is true. + Otherwise null is returned. + The exit code that the started process specified when it terminated. + + + IEnumerable<string> redirectedStandardOutput; + IEnumerable<string> redirectedErrorOutput; + var exitCodeWithArgument = + StartProcess( + "ping", + new ProcessSettings { + Arguments = "localhost", + RedirectStandardOutput = true + }, + out redirectedStandardOutput, + out redirectedErrorOutput + ); + + // Output last line of process output. + Information("Last line of output: {0}", redirectedStandardOutput.LastOrDefault()); + + // Throw exception if anything was written to the standard error. + if (redirectedErrorOutput.Any()) + { + throw new Exception( + string.Format( + "Errors ocurred: {0}", + string.Join(", ", redirectedErrorOutput)); + } + + // This should output 0 as valid arguments supplied + Information("Exit code: {0}", exitCodeWithArgument); + + + + + + Starts the process resource that is specified by the filename and settings. + + The context. + Name of the file. + The settings. + The newly started process. + + + using(var process = StartAndReturnProcess("ping", new ProcessSettings{ Arguments = "localhost" })) + { + process.WaitForExit(); + // This should output 0 as valid arguments supplied + Information("Exit code: {0}", process.GetExitCode()); + } + + + , , or is null. + + + + Starts the process resource that is specified by the filename. + + The context. + Name of the file. + The newly started process. + + + using(var process = StartAndReturnProcess("ping")) + { + process.WaitForExit(); + // This should output 0 as valid arguments supplied + Information("Exit code: {0}", process.GetExitCode()); + } + + + , is null. + + + + This namespace contain types used for common operations + such as parsing release notes, retrieving arguments and + to read and write environment variables. + + + + + This namespace contain types that + support interaction with MSBuild solution files. + + + + + This namespace contain types that + support interaction with MSBuild project files. + + + + + This namespace contain types that + enable you to read or create assembly information files. + + + + + Contains functionality related to assembly info. + + + + + Creates an assembly information file. + + The context. + The output path. + The settings. + + + var file = "./SolutionInfo.cs"; + var version = "0.0.1"; + var buildNo = "123"; + var semVersion = string.Concat(version + "-" + buildNo); + CreateAssemblyInfo(file, new AssemblyInfoSettings { + Product = "SampleProject", + Version = version, + FileVersion = version, + InformationalVersion = semVersion, + Copyright = string.Format("Copyright (c) Contoso 2014 - {0}", DateTime.Now.Year) + }); + + + + + + Parses an existing assembly information file. + + The context. + The assembly info path. + The content of the assembly info file. + + + var assemblyInfo = ParseAssemblyInfo("./SolutionInfo.cs"); + Information("Version: {0}", assemblyInfo.AssemblyVersion); + Information("File version: {0}", assemblyInfo.AssemblyFileVersion); + Information("Informational version: {0}", assemblyInfo.AssemblyInformationalVersion); + + + + + + The assembly info creator. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The log. + + + + Creates an assembly info file. + + The output path. + The settings. + + + + Custom Attribute class used by . + + + + + Gets or sets the name. + + The attribute name. + + + + Gets or sets the namespace. + + The namespace for the attribute. + + + + Gets or sets the value. + + The value for the attribute. + + + + Metadata Attribute class used by . + + + + + Gets the name. + + The attribute name. + + + + Gets or sets the key for meta data. + + The key for meta data + + + + Gets the namespace. + + The namespace for the meta data attribute. + + + + Gets or sets the value. + + The value for the meta data. + + + + The assembly info parser. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + + + + Parses information from an assembly info file. + + The file path. + Information about the assembly info content. + + + + Represents the content in an assembly info file. + + + + + Gets a value indicating whether the assembly is CLS compliant. + + + true if the assembly is CLS compliant; otherwise, false. + + + + + Gets the assembly company attribute. + + The assembly company attribute. + + + + Gets a value indicating whether the assembly is accessible from COM. + + + true if the assembly is accessible from COM; otherwise, false. + + + + + Gets the assembly configuration attribute. + + The assembly Configuration attribute. + + + + Gets the assembly copyright attribute. + + The assembly copyright attribute. + + + + Gets the assembly's description attribute. + + The assembly's Description attribute. + + + + Gets the assembly file version. + + The assembly file version. + + + + Gets the assembly GUID attribute. + + The assembly GUID attribute. + + + + Gets the assembly informational version. + + The assembly informational version. + + + + Gets the assembly product Attribute. + + The assembly product attribute. + + + + Gets the assembly title Attribute. + + The assembly Title attribute. + + + + Gets the assembly trademark Attribute. + + The assembly Trademark attribute. + + + + Gets the assembly version. + + The assembly version. + + + + Gets the assemblies that internals are visible to. + + The assemblies that internals are visible to. + + + + Initializes a new instance of the class. + + Whether the assembly is CLS compliant. + The assembly company attribute. + Whether the assembly is accessible from COM. + The assembly configuration attribute. + The assembly copyright attribute. + The assembly description attribute. + The assembly file version. + The assembly GUID attribute. + The assembly informational version. + The assembly product attribute. + The assembly title attribute. + The assembly trademark attribute. + The assembly version. + The assemblies that internals are visible to. + + + + Contains settings used by . + + + + + Gets or sets the title. + + The assembly title. + + + + Gets or sets the description. + + The assembly description. + + + + Gets or sets the unique identifier. + + The unique identifier. + + + + Gets or sets the product. + + The assembly product. + + + + Gets or sets the copyright. + + The copyright. + + + + Gets or sets the trademark. + + The trademark. + + + + Gets or sets the version. + + The version. + + + + Gets or sets the file version. + + The file version. + + + + Gets or sets the informational version. + + The informational version. + + + + Gets or sets whether or not the assembly is COM visible. + + Whether or not the assembly is COM visible. + + + + Gets or sets whether or not the assembly is CLS compliant. + + Whether or not the assembly is CLS compliant. + + + + Gets or sets the company. + + The company. + + + + Gets or sets the name(s) of the assembly(s) that internals should be visible to. + + The name(s) of the assembly(s). + + + + Gets or sets the configuration of the assembly. + + The configuration. + + + + Gets or sets the custom attribute(s) that should be added to the assembly info file. + + The namespace(s). + + + + Gets or sets the meta data attribute(s) that should be added to the assembly info file. + + The meta data. + + + + Contains functionality related to AssemblyInfo settings. + + + + + Adds a custom attribute to the AssemblyInfo settings. + + The settings. + The name of the custom attribute. + The namespace for the custom attribute. + The value for the attribute. + The same instance so that multiple calls can be chained. + + + + Adds a meta data attribute to the AssemblyInfo settings. + + The settings. + The key of the meta data attribute. + The value for the attribute. + The same instance so that multiple calls can be chained. + + + + This namespace contain types that + enable you to read XML documentation comments. + + + + + Contains functionality related to MSBuild XML document files. + + + + + Parses Xml documentation example code from given path. + + The context. + The Path to the file to parse. + Parsed example code. + + + var exampleCodes = ParseXmlDocExampleCode("./Cake.Common.xml"); + foreach(var exampleCode in exampleCodes) + { + Information( + "{0}\r\n{1}", + exampleCode.Name, + exampleCode.Code + ); + } + + + + + + Parses Xml documentation example code from file(s) using given pattern. + + The context. + The globber file pattern. + Parsed example code. + + + var filesExampleCodes = ParseXmlDocFilesExampleCode("./Cake.*.xml"); + foreach(var exampleCode in filesExampleCodes) + { + Information( + "{0}\r\n{1}", + exampleCode.Name, + exampleCode.Code + ); + } + + + + + + Parsed Xml documentation example code + + + + + Gets Example code parent name + + + + + Gets Example code + + + + + Initializes a new instance of the class. + + The name of code parent. + The example code. + + + + The MSBuild Xml documentation example code parser + + + + + Initializes a new instance of the class. + + The file system. + The globber. + The log. + + + + Parses Xml documentation example code from given path + + Path to the file to parse. + Parsed Example Code + + + + Parses Xml documentation example code from file(s) using given pattern + + The globber file pattern. + Parsed Example Code + + + + Contains functionality related to MSBuild project files. + + + + + Parses project information from project file + + The context. + The project file path. + A parsed project. + + + var parsedProject = ParseProject("./src/Cake/Cake.csproj"); + Information( + @" Parsed project file: + Configuration : {0} + Platform : {1} + OutputType : {2} + OutputPath : {3} + RootNameSpace : {4} + AssemblyName : {5} + TargetFrameworkVersion: {6} + Files : {7}", + parsedProject.Configuration, + parsedProject.Platform, + parsedProject.OutputType, + parsedProject.OutputPath, + parsedProject.RootNameSpace, + parsedProject.AssemblyName, + parsedProject.TargetFrameworkVersion, + string.Concat( + parsedProject + .Files + .Select( + file=> string.Format( + "\r\n {0}", + file.FilePath + ) + ) + ) + ); + + + + + + Represents a project assembly reference. + + + Schema from https://msdn.microsoft.com/en-us/library/ms164283.aspx + and https://msdn.microsoft.com/en-us/library/bb629388.aspx + + + + + Gets or sets the reference to include. + + + The reference to include. + + + + + Gets or sets the relative or absolute path of the assembly. + + + The relative or absolute path of the assembly. + + + + + Gets or sets the display name of the assembly. + + + The display name of the assembly. + + + + + Gets or sets the simple or strong fusion name for the item. + + + The simple or strong fusion name for the item. + + + + + Gets or sets whether only the version in the fusion name should be referenced. + + + Whether only the version in the fusion name should be referenced. + + + + + Gets or sets any aliases for the reference. + + + Any aliases for the reference. + + + + + Gets or sets whether the reference should be copied to the output folder. + + + Whether the reference should be copied to the output folder. + + + + + Represents a MSBuild project file. + + + + + Gets or sets the project file path. + + The project file path. + + + + Gets or sets the relative path to the project file. + + + The relative path to the project file. + + + + + Gets or sets a value indicating whether this is compiled. + + + true if compiled; otherwise, false. + + + + + The MSBuild project file parser. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + + + + Parses a project file. + + The project path. + The parsed project. + + + + Represents the content in an MSBuild project file. + + + + + Gets the build configuration. + + The build configuration. + + + + Gets the target platform. + + The platform. + + + + Gets the unique project identifier. + + The unique project identifier. + + + + Gets the compiler output type, i.e. Exe/Library. + + The output type. + + + + Gets the compiler output path. + + The output path. + + + + Gets the default root namespace. + + The root namespace. + + + + Gets the build target assembly name. + + The assembly name. + + + + Gets the compiler target framework version. + + The target framework version. + + + + Gets the compiler target framework profile. + + The target framework profile. + + + + Gets the project content files. + + The files. + + + + Gets the references. + + + The references. + + + + + Gets the references to other projects. + + + The references. + + + + + Initializes a new instance of the class. + + The build configuration. + The target platform. + The unique project identifier. + The compiler output type. + The compiler output path + The default root namespace. + Gets the build target assembly name. + The compiler framework version. + The compiler framework profile. + The project content files. + The references. + The references to other projects. + + + + Represents a project reference to another project. + + + Schema from https://msdn.microsoft.com/en-us/library/ms164283.aspx + and https://msdn.microsoft.com/en-us/library/bb629388.aspx + + + + + Gets or sets the path to the referenced project file. + + + The path to the referenced project file. + + + + + Gets or sets the relative path to the referenced project file. + + + The relative path to the referenced project file. + + + + + Gets or sets the display name of the reference. + + + The display name of the reference. + + + + + Gets or sets a GUID for the reference. + + + A GUID for the reference. + + + + + Gets or sets the path of the project file that is being referenced. + + + The path of the project file that is being referenced. + + + + + MSBuild Project Xml Element XNames + + + + + Project root element + + + + + Item group element + + + + + Assembly reference element + + + + + Namespace import element + + + + + Namespace compile element + + + + + Namespace property group element + + + + + Namespace root namespace element + + + + + Namespace output type element + + + + + Namespace output path element + + + + + Namespace assembly name element + + + + + Gets the namespace for the target framework version element. + + + + + Gets the namespace for the target framework version element. + + + + + Gets the namespace for the configuration element. + + + + + Gets the namespace for the platform element. + + + + + Gets the namespace for the project GUID. + + + + + Gets the namespace for the bootstrapper package element. + + + + + Gets the namespace for the project reference element. + + + + + Gets the namespace for the service element. + + + + + Gets the namespace for the hint path element. + + + + + Gets the namespace for the name element. + + + + + Gets the namespace for the fusion name element. + + + + + Gets the namespace for the specific version element. + + + + + Gets the namespace for the aliases element. + + + + + Gets the namespace for the private element. + + + + + Gets the namespace for the package element. + + + + + Contains functionality related to MSBuild solution files. + + + + + Parses project information from a solution file. + + The context. + The solution path. + A parsed solution. + + + var solutionPath = "./src/Cake.sln"; + Information("Parsing {0}", solutionPath); + var parsedSolution = ParseSolution(solutionPath); + foreach(var project in parsedSolution.Projects) + { + Information( + @"Solution project file: + Name: {0} + Path: {1} + Id : {2} + Type: {3}", + project.Name, + project.Path, + project.Id, + project.Type + ); + } + + + + + + Represents a folder in a MSBuild solution. + + + + + Visual Studio project type guid for solution folder + + + More information can be found http://www.codeproject.com/Reference/720512/List-of-Visual-Studio-Project-Type-GUIDs + + + + + Gets Child items of this folder + + + + + Initializes a new instance of the class. + + The folder project identity. + The folder name. + The folder path. + + + + The MSBuild solution file parser. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + + + + Parses a MSBuild solution. + + The solution path. + A parsed solution. + + + + Represents the content in an MSBuild solution file. + + + + + Gets the file format version. + + + + + Gets the version of Visual Studio that created the file. + + + + + Gets the minimum supported version of Visual Studio. + + + + + Gets all solution projects. + + + + + Initializes a new instance of the class. + + The file format version. + The version of Visual Studio that created the file. + The minimum supported version of Visual Studio. + The solution projects. + + + + Represents a project in a MSBuild solution. + + + + + Gets the project identity. + + + + + Gets the project name. + + + + + Gets the project path. + + + + + Gets the project type identity. + + + + + Gets the parent project if any, otherwise null. + + + + + Initializes a new instance of the class. + + The project identity. + The project name. + The project path. + The project type identity. + + + + This namespace contain types for + text templating and transformations. + + + + + Provides functionality to perform simple text transformations + from a Cake build script and save them to disc. + + The text transformation template. + + + + Gets the text transformation template. + + The text transformation template. + + + + Initializes a new instance of the class. + + The file system. + The environment. + The text template. + + + + Saves the text transformation to a file. + + The to save the test transformation to. + + + + Returns a string containing the rendered template. + + A string containing the rendered template. + + + + Contains functionality related to text transformation. + + + + + Creates a text transformation from the provided template. + + The context. + The template. + A representing the provided template. + + This sample shows how to create a using + the specified template. + + string text = TransformText("Hello <%subject%>!") + .WithToken("subject", "world") + .ToString(); + + + + + + Creates a text transformation from the provided template, using the specified placeholder. + + The context. + The template. + The left placeholder. + The right placeholder. + A representing the provided template. + + This sample shows how to create a using + the specified template and placeholder. + + string text = TransformText("Hello {subject}!", "{", "}") + .WithToken("subject", "world") + .ToString(); + + + + + + Creates a text transformation from the provided template on disc. + + The context. + The template file path. + A representing the provided template. + + This sample shows how to create a using + the specified template file with the placeholder format <%key%>. + + string text = TransformTextFile("./template.txt") + .WithToken("subject", "world") + .ToString(); + + + + + + Creates a text transformation from the provided template on disc, using the specified placeholder. + + The context. + The template file path. + The left placeholder. + The right placeholder. + A representing the provided template. + + This sample shows how to create a using + the specified template file and placeholder. + + string text = TransformTextFile("./template.txt", "{", "}") + .WithToken("subject", "world") + .ToString(); + + + + + + Contains extension methods for . + + + + + Registers a key and a value to be used with the + text transformation. + + The text transformation template. + The text transformation. + The key. + The value. + + The same instance so that multiple calls can be chained. + + + + + This namespace contain types used to interact + with different third party tools. + + + + + This namespace contain types used to interact with Cake. + + + + + Contains functionality related to running Cake scripts out of process. + + + + + Executes cake script out of process + + The context. + The script file. + + + CakeExecuteScript("./helloworld.cake"); + + + + + + Executes cake script out of process + + The context. + The script file. + The settings . + + + CakeExecuteScript("./helloworld.cake", new CakeSettings{ ToolPath="./Cake.exe" }); + + + + + + Executes Cake expression out of process + + The context. + The cake expression + + + CakeExecuteExpression("Information(\"Hello {0}\", \"World\");"); + + + + + + Executes Cake expression out of process + + The context. + The cake expression + The settings . + + + CakeExecuteExpression( + "Information(\"Hello {0}!\", Argument<string>(\"name\"));", + new CakeSettings { + ToolPath="./Cake.exe" , + Arguments = new Dictionary<string, string>{{"name", "World"}} + }); + + + + + + Cake out process runner + + + + + Initializes static members of the class. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The globber. + The process runner. + The tool locator. + + + + Executes supplied cake script in own process and supplied settings + + Path to script to execute + optional cake settings + + + + Executes supplied cake code expression in own process and supplied settings + + Code expression to execute + optional cake settings + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the name of the tool executable. + + The tool executable name. + + + + Gets alternative file paths which the tool may exist in + + The settings. + The default tool path. + + + + Contains settings used by . + + + + + Gets or sets the output verbosity. + + The output verbosity. + + + + Gets or sets cake additional arguments. + + The properties. + + + + This namespace contain types used to interact with ILMerge. + + + + + Contains functionality related to ILMerge. + + In order to use the commands for this alias, include the following in your build.cake file to download and + install from NuGet.org, or specify the ToolPath within the class: + + #tool "nuget:?package=ilmerge" + + + + + + + Merges the specified assemblies. + + The context. + The output file. + The primary assembly. + The assembly paths. + + + var assemblyPaths = GetFiles("./**/Cake.*.dll"); + ILMerge("./MergedCake.exe", "./Cake.exe", assemblyPaths); + + + + + + Merges the specified assemblies. + + The context. + The output file. + The primary assembly. + The assembly paths. + The settings. + + + var assemblyPaths = GetFiles("./**/Cake.*.dll"); + ILMerge( + "./MergedCake.exe", + "./Cake.exe", + assemblyPaths, + new ILMergeSettings { Internalize = true }); + + + + + + The ILMerge runner. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Merges the specified assemblies. + + The output assembly path. + The primary assembly path. + The assembly paths. + The settings. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the name of the tool executable. + + The tool executable name. + + + + Contains settings used by . + + + + + Gets or sets a value indicating whether whether types in assemblies other + than the primary assembly should have their visibility modified to internal. + + + true if types in assemblies other than the primary assembly should + have their visibility modified to internal; otherwise, false. + + + + + Gets or sets the target kind. + + The target kind. + + + + Gets or sets the target platform. + + The target platform. + + + + Initializes a new instance of the class. + + + + + Represents an ILMerge target. + + + + + TargetKind: Default + + + + + TargetKind: Dynamic Link Library + + + + + TargetKind: Executable + + + + + TargetKind: Windows executable + + + + + Represents a target platform. + + + + + Initializes a new instance of the class. + + The .NET framework target version. + + + + Initializes a new instance of the class. + + The .NET framework target version. + The directory where mscorlib.dll can be found. + + + + Gets the .NET framework target version. + + + + + Gets the directory where mscorlib.dll can be found. + + + + + Represents the .NET Framework for the target assembly + + + + + NET Framework v1 + + + + + NET Framework v1.1 + + + + + NET Framework v2 + + + + + NET Framework v4 + + + + + This namespace contain types used to interact with MSBuild. + + + + + Contains functionality related to MSBuild. + + In order to use the commands for this alias, MSBuild will already have to be installed on the machine the Cake Script + is being executed. + + + + + + Builds the specified solution using MSBuild. + + The context. + The solution. + + + MSBuild("./src/Cake.sln"); + + + + + + Builds the specified solution using MSBuild. + + The context. + The solution to build. + The settings configurator. + + + MSBuild("./src/Cake.sln", configurator => + configurator.SetConfiguration("Debug") + .SetVerbosity(Verbosity.Minimal) + .UseToolVersion(MSBuildToolVersion.VS2015) + .SetMSBuildPlatform(MSBuildPlatform.x86) + .SetPlatformTarget(PlatformTarget.MSIL)); + + + + + + Builds the specified solution using MSBuild. + + The context. + The solution to build. + The settings. + + + MSBuild("./src/Cake.sln", new MSBuildSettings { + Verbosity = Verbosity.Minimal, + ToolVersion = MSBuildToolVersion.VS2015, + Configuration = "Release", + PlatformTarget = PlatformTarget.MSIL + }); + + + + + + What files to include in the binary log + + + + Don't specify imports + + + Do not collect project and imports files + + + Embed in the binlog file + + + Produce a separate .ProjectImports.zip + + + + MSBuild binary logging settings used by . + + + + + Gets or sets a value indicating whether binary logging should be enabled. + + + + + Gets or sets the output filename. + + + + + Gets or sets what source files should be included in the log. + + + + + Contains settings for specifying a MSBuild file logger. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether PerformanceSummary will Show the time that’s spent in tasks, targets, and projects. + + + + + Gets or sets a value indicating whether Summary will Show the error and warning summary at the end. + + + + + Gets or sets show ErrorsOnly, WarningsOnly, or All. + + + + + Gets or sets a value indicating whether NoItemAndPropertyList will be set to Don't show the list of items and properties that would appear at the start of each project build if the verbosity level is set to diagnostic. + + + + + Gets or sets a value indicating whether ShowCommandLine. Show TaskCommandLineEvent messages. + + + + + Gets or sets a value indicating whether ShowTimestamp. Show the timestamp as a prefix to any message. + + + + + Gets or sets a value indicating whether ShowEventId. Show the event ID for each started event, finished event, and message. + + + + + Gets or sets Verbosity. Override the /verbosity setting for this logger. + Specify the following verbosity levels: q[uiet], m[inimal], n[ormal], v[erbose] (detailed), and diag[nostic]. + + + + + Gets or sets LogFile. The path to the log file into which the build log is written. + An empty string will use msbuild.log. + + + + + Gets or sets a value indicating whether the build log is appended to the log file or overwrites it. When true, the build log is appended to the log file. + + + + + Gets or sets Specifies the encoding for the file (for example, UTF-8, Unicode, or ASCII). + + + + + Process the file logger config and return parameters as a string. + + The environment. + The parameters separated by semi-colons. + + + + The type of file logger output to generate. + + + + + Show errors and warnings. + + + + + Show errors only. + + + + + Show warnings only. + + + + + Contains settings for specifying a MSBuild logger. + + + + + Gets or sets the assembly containing the logger. Should match the format {AssemblyName[,StrongName] | AssemblyFile} + + + + + Gets or sets the class implementing the logger. Should match the format [PartialOrFullNamespace.]LoggerClassName + If the assembly contains only one logger, class does not need to be specified. + + + + + Gets or sets the parameters to be passed to the logger. + + + + + Represents an MSBuild exe platform. + + + + + Will build using MSBuild version based on PlatformTarget/Host OS. + + + + + MSBuildPlatform: x86 + + + + + MSBuildPlatform: x64 + + + + + The MSBuild runner. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The runner. + The tool locator. + + + + Runs MSBuild with the specified settings. + + The solution to build. + The settings. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Gets alternative file paths which the tool may exist in + + The settings. + The default tool path. + + + + Contains settings used by . + + + + + Gets the targets. + + The targets. + + + + Gets the properties. + + The properties. + + + + Gets or sets the platform target. + + The platform target. + + + + Gets or sets the MSBuild platform. + + The MSBuild platform. + + + + Gets or sets the tool version. + + The tool version. + + + + Gets or sets the configuration. + + The configuration. + + + + Gets or sets the maximum CPU count. + If this value is zero, MSBuild will use as many processes as + there are available CPUs to build the project. If not set + MSBuild compile projects in this solution one at a time. + + The maximum CPU count. + + + + Gets or sets whether or not node reuse is used. + When you’re doing multiple builds in a row, this helps reduce your total build time, + by avoiding the start up costs of each MSBuild child node. + + + + + Gets or sets whether or not detailed summary is created. + Shows detailed information at the end of the build + about the configurations built and how they were + scheduled to nodes. + + + + + Gets or sets whether or not information is logged to the console. + Disable the default console logger and do not log events + to the console. + + + + + Gets or sets the amount of information to display in the build log. + Each logger displays events based on the verbosity level that you set for that logger. + + The build log verbosity. + + + + Gets the loggers. + + + + + Gets the file loggers + + + + + Gets or sets the binary logging options + + + + + Gets or sets a value indicating whether warnings should be treated as errors. + Treats all warnings as errors unless has specific codes specified. + + + + + Gets the warning codes to treat as errors. + If any specified will implicitly be treated as true. + + + + + Gets the warning codes to NOT treat as errors. + + Only available MSBuild version 15 (VS2017) and newer. + + + + Gets or sets a value indicating whether the Restore target should be run before any other targets. + This setting will pass the /restore option down to MSBuild. + Use this setting when working with the new csproj format. + + + + + Gets the console logger parameters. + + + + + Initializes a new instance of the class. + + + + + Contains functionality related to MSBuild settings. + + + + + Adds a MSBuild target to the configuration. + + The settings. + The MSBuild target. + The same instance so that multiple calls can be chained. + + + + Sets the tool version. + + The settings. + The version. + The same instance so that multiple calls can be chained. + + + + Sets the platform target. + + The settings. + The target. + The same instance so that multiple calls can be chained. + + + + Sets the MSBuild platform. + + The settings. + The platform. + The same instance so that multiple calls can be chained. + + + + Adds a property to the configuration. + + The settings. + The property name. + The property values. + The same instance so that multiple calls can be chained. + + + + Sets the configuration. + + The settings. + The configuration. + The same instance so that multiple calls can be chained. + + + + Sets the maximum CPU count. Without this set MSBuild will compile projects in this solution one at a time. + + The settings. + The maximum CPU count. Set this value to zero to use as many MSBuild processes as available CPUs. + The same instance so that multiple calls can be chained. + + + + Sets whether or not node reuse should be enabled. + + The settings. + true if node reuse should be enabled; otherwise false. + The same instance so that multiple calls can be chained. + + + + Sets whether or not detailed summary should be enabled. + + The settings. + true if detailed summary should be enabled; otherwise false. + The same instance so that multiple calls can be chained. + + + + Sets whether or not no console logging should be enabled. + + The settings. + true if no console log should be enabled; otherwise false. + The same instance so that multiple calls can be chained. + + + + Sets the build log verbosity. + + The settings. + The build log verbosity. + The same instance so that multiple calls can be chained. + + + + Adds a custom logger. + + The settings. + The assembly containing the logger. Should match the format {AssemblyName[,StrongName] | AssemblyFile} + The class implementing the logger. Should match the format [PartialOrFullNamespace.]LoggerClassName. If the assembly contains only one logger, class does not need to be specified. + Parameters to be passed to the logger. + The same instance so that multiple calls can be chained. + + + + Adds a file logger. + Each file logger will be declared in the order added. + The first file logger will match up to the /fl parameter. + The next nine (max) file loggers will match up to the /fl1 through /fl9 respectively. + + The settings. + Parameters to be passed to the logger. + The same instance so that multiple calls can be chained. + + + + Adds a file logger with all the default settings. + Each file logger will be declared in the order added. + The first file logger will match up to the /fl parameter. + The next nine (max) file loggers will match up to the /fl1 through /fl9 respectively. + + The settings. + The same instance so that multiple calls can be chained. + + + + Treat warnnings as errors, if no codes specified all errors will be treated as errors. + + The settings. + Only treat specified warning codes as errors. + The same instance so that multiple calls can be chained. + + + + Warnings to not treat as errors. + + The settings. + Warning codes to not treat as errors. + The same instance so that multiple calls can be chained. + + + + Invoke the Restore target before any other target. + + The setting + The same instance so that multiple calls can be chained. + + + + Adds a console logger parameter. + + The settings. + The console logger parameter. + The same instance so that multiple calls can be chained. + + + + Represents a MSBuild tool version. + + + + + The highest available MSBuild tool version. + + + + + MSBuild tool version: .NET 2.0 + + + + + MSBuild tool version: .NET 3.0 + + + + + MSBuild tool version: Visual Studio 2005 + + + + + MSBuild tool version: .NET 3.5 + + + + + MSBuild tool version: Visual Studio 2008 + + + + + MSBuild tool version: .NET 4.0 + + + + + MSBuild tool version: .NET 4.5 + + + + + MSBuild tool version: Visual Studio 2010 + + + + + MSBuild tool version: Visual Studio 2011 + + + + + MSBuild tool version: Visual Studio 2012 + + + + + MSBuild tool version: .NET 4.5.1 + + + + + MSBuild tool version: .NET 4.5.2 + + + + + MSBuild tool version: Visual Studio 2013 + + + + + MSBuild tool version: Visual Studio 2015 + + + + + MSBuild tool version: .NET 4.6 + + + + + MSBuild tool version: Visual Studio 2017 + + + + + Contains functionality related to MSBuild verbosity. + + + + + Gets the MSBuild verbosity from . + + The verbosity. + MSBuild verbosity string. + + + + Gets the MSBuild from string value. + + The verbosity string value. + MSBuild enumeration. + Valid values are 'quiet', 'minimal', 'normal', 'detailed' and 'diagnostic'. + + + + Represents a MSBuild version + + + + Version 2.0 + + + Version 3.5 + + + Version 4.0 + + + Version 12.0 + + + Version 14.0 + + + Version 15.0 + + + + Represents a MSBuild platform target. + + + + + Platform target: MSIL (Any CPU) + + + + + Platform target: x86 + + + + + Platform target: x64 + + + + + Platform target: ARM + + + + + Platform target: Win32 + + + + + This namespace contain types used to interact with MSTest. + + + + + Contains functionality related to running MSTest unit tests. + + In order to use the commands for this alias, MSTest will need to be installed on the machine where + the Cake script is being executed. This is typically achieved by having either Visual Studio installed, or by + using the Micrsoft Build Tools, for example, for 2015. + + + + + + Runs all MSTest unit tests in the assemblies matching the specified pattern. + + + + MSTest("./Tests/*.UnitTests.dll"); + + + The context. + The pattern. + + + + Runs all MSTest unit tests in the assemblies matching the specified pattern. + + + + MSTest("./Tests/*.UnitTests.dll", new MSTestSettings() { NoIsolation = false }); + + + The context. + The pattern. + The settings. + + + + Runs all MSTest unit tests in the specified assemblies. + + + + var paths = new List<FilePath>() { "./assemblydir1", "./assemblydir2" }; + MSTest(paths); + + + The context. + The assembly paths. + + + + Runs all MSTest unit tests in the specified assemblies. + + + + var paths = new List<FilePath>() { "./assemblydir1", "./assemblydir2" }; + MSTest(paths, new MSTestSettings() { NoIsolation = false }); + + + The context. + The assembly paths. + The settings. + + + + The MSTest unit test runner. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Runs the tests in the specified assembly. + + The assembly path. + The settings. + + + + Gets the name of the tool. + + The tool name. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Gets alternative file paths which the tool may exist in + + The settings. + The default tool path. + + + + Contains settings used by . + + + + + Gets or sets a value indicating whether to run tests within the MSTest process. + This choice improves test run speed but increases risk to the MSTest.exe process. + Defaults to true. + + + true if running without isolation; otherwise, false. + + + + + Gets or sets a value indicating the test category filter string to pass to + MSTest.exe flag /testcategory. + + + + + Gets or sets the filepath for a named resulting test file. + MSTest.exe flag /resultsfile. + + + + + Gets or sets the test settings file to pass to MSTest.exe flag /testsettings. + + + + + Initializes a new instance of the class. + + + + + This namespace contain types used to interact with NuGet. + + + + + This namespace contain types used to interact + with the NuGet package installer. + + + + + The NuGet package installer used to install NuGet packages. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The NuGet tool resolver. + + + + Installs NuGet packages using the specified package configuration file and settings. + + Path to package configuration to use for install. + The settings. + + + + Installs NuGet packages using the specified package id and settings. + + The source package id. + The settings. + + + + Contains settings used by . + + + + + Gets or sets the directory in which packages will be installed. + If none is specified, the current directory will be used. + + + + + Gets or sets the version of the package to install. + If none specified, the latest will be used. + + + + + Gets or sets a value indicating whether to exclude the version number from the package folder. + + + true if to exclude the version number from the package folder; otherwise, false. + + + + + Gets or sets a value indicating whether to allow installation of prerelease packages. + This flag is not required when restoring packages by installing from packages.config. + + + true to allow installation of prerelease packages; otherwise, false. + + + + + Gets or sets a value indicating whether to check if package + install consent is granted before installing a package. + + + true if to check if package install consent is granted before installing a package; otherwise, false. + + + + + Gets or sets the solution directory path for package restore. + + + The solution directory path. + + + + + Gets or sets a list of packages sources to use for this command. + + The list of packages sources to use for this command. + + + + Gets or sets a value indicating whether or not to use the machine cache as the first package source. + + + true to not use the machine cache as the first package source; otherwise, false. + + + + + Gets or sets a value indicating whether to disable parallel processing of packages for this command. + Disable parallel processing of packages for this command. + + + true to disable parallel processing of packages for this command; otherwise, false. + + + + + Gets or sets the output verbosity. + + The output verbosity. + + + + Gets or sets the NuGet configuration file. + If not specified, the file %AppData%\NuGet\NuGet.config is used as the configuration file. + + The NuGet configuration file. + + + + Gets or sets a list of packages sources to use as fallbacks for this command. + This setting requires NuGet V3 or later. + + The list of packages sources to use as fallbacks for this command. + + + + This namespace contain types used to + pack NuGet packages. + + + + + The NuGet packer. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The log. + The tool locator. + The NuGet tool resolver + + + + Creates a NuGet package from the specified settings. + + The settings. + + + + Creates a NuGet package from the specified Nuspec or project file. + + The nuspec or project file path. + The settings. + + + + Contains settings used by . + + + + + Gets or sets the base path. + + The base path. + + + + Gets or sets the output directory. + + The output directory. + + + + Gets or sets a value indicating whether package analysis should be performed. + Defaults to true. + + + true if package analysis should be performed; otherwise, false. + + + + + Gets or sets a value indicating whether referenced projects should be included. + Defaults to false. + + + true if referenced projects should be included; otherwise, false. + + + + + Gets or sets a value indicating whether a symbol package should be created. + Defaults to false. + + + true if a symbol package should be created; otherwise, false. + + + + + Gets or sets the package ID. + + The package ID. + + + + Gets or sets the Nuspec version. + + The Nuspec version. + + + + Gets or sets the package title. + + The package title. + + + + Gets or sets the package authors. + + The package authors. + + + + Gets or sets the package owners. + + The package owners. + + + + Gets or sets the package description. + + The package description. + + + + Gets or sets the package summary. + + The package summary. + + + + Gets or sets the package project URL. + + The package project URL. + + + + Gets or sets the package icon URL. + + The package icon URL. + + + + Gets or sets the package license URL. + + The package license URL. + + + + Gets or sets the package copyright. + + The package copyright. + + + + Gets or sets the package release notes. + + The package release notes. + + + + Gets or sets the package tags. + + The package tags. + + + + Gets or sets the package repository data + + + + + Gets or sets a value indicating whether this package should be marked as a development dependency. + + + true if a development dependency; otherwise, false. + + + + + Gets or sets a value indicating whether users has to accept the package license. + + + true if users has to accept the package license; otherwise, false. + + + + + Gets or sets the package files. + + The package files. + + + + Gets or sets the package dependencies. + + The package files. + + + + Gets or sets the verbosity. + + The verbosity. + + + + Gets or sets the properties. + + + The properties. + + + + + Gets or sets the version of MSBuild to be used with this command. + By default the MSBuild in your path is picked, otherwise it defaults to the highest installed version of MSBuild. + This setting requires NuGet V3 or later. + + The version of MSBuild to be used with this command. + + + + Gets or sets a value indicating whether the temporarily autogenerated NuSpec file should be kept or not. + Defaults to false. + + + true if the temporarily autogenerated NuSpec file should be kept; otherwise false. + + + + + Gets or sets the package language. + + The package language. + + + + Gets or sets a value indicating whether the files should be packed into the tool folder. + Defaults to false. + + + true if the output should be placed in the tool folder inside the nuget package; otherwise false. + + + + + Specifies the package's source code location, allowing IDEs to download and debug the code. + + + + + Gets or sets the type of repository e.g. git. + + + + + Gets or sets the repository's URL. + + + + + Gets or sets the name of the branch within the repository. + + + + + Gets or sets the corresponding commit ID for the specified version of the package. + + + + + Represents a NuGet nuspec file + + + + + Gets or sets the location of the file or files to include. + The path is relative to the NuSpec file unless an absolute path is specified. + The wildcard character - * - is allowed. + Using a double wildcard - ** implies a recursive directory search. + + + + + Gets or sets the relative path to the directory within the package where the source files will be placed. + + + + + Gets or sets the file or files to exclude. + This is usually combined with a wildcard value in the src attribute. + The exclude attribute can contain a semi-colon delimited list of files or a file pattern. + Using a double wildcard - ** - implies a recursive exclude pattern. + + + + + Represents a NuGet nuspec dependency + + + + + Gets or sets the dependency's package ID. + + The dependency's package ID. + + + + Gets or sets the dependency's version. + + The dependency's version. + + + + Gets or sets the target framework for the dependency. + + The target framework for the dependency. + + + + This namespace contain types used to + push NuGet packages. + + + + + The NuGet package pusher. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The NuGet tool resolver. + The logger. + + + + Pushes a NuGet package to a NuGet server and publishes it. + + The package file path. + The settings. + + + + Contains settings used by . + + + + + Gets or sets the server URL. + When using NuGet pre 3.4.2, this value is optional + and nuget.org is used if omitted (unless DefaultPushSource + config value is set in the NuGet config file. + When using Nuget 3.4.2 (or more recent), this value is mandatory. + Starting with NuGet 2.5, if NuGet.exe identifies a UNC/folder source, + it will perform the file copy to the source. + + The server URL. + + For your convenience, here is the URL for some of the most popular + public nuget servers: + - Nuget: https://nuget.org/api/v2/package + - MyGet: https://www.myget.org/F/<your_username>/api/v2/package + + + + + Gets or sets the API key for the server. + + The API key for the server. + + + + Gets or sets the timeout for pushing to a server. + Defaults to 300 seconds (5 minutes). + + The timeout for pushing to a server. + + + + Gets or sets the verbosity. + + The verbosity. + + + + Gets or sets the NuGet configuration file. + + The NuGet configuration file. + + + + This namespace contain types used to + restore NuGet packages. + + + + + The NuGet package restorer used to restore solution packages. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The NuGet tool resolver + + + + Restores NuGet packages using the specified settings. + + The target file path. + The settings. + + + + Contains settings used by . + + + + + Gets or sets a value indicating whether package restore consent is granted before installing a package. + + + true if package restore consent is granted; otherwise, false. + + + + + Gets or sets the packages folder. + + + + + Gets or sets a list of packages sources to use for this command. + + + + + Gets or sets a value indicating whether or not to use the machine cache as the first package source. + + + true to not use the machine cache as the first package source; otherwise, false. + + + + + Gets or sets a value indicating whether or not to disable parallel processing of packages for this command. + + + true to disable parallel processing; otherwise, false. + + + + + Gets or sets the amount of output details. + + + + + Gets or sets the NuGet configuration file. + If not specified, the file %AppData%\NuGet\NuGet.config is used as the configuration file. + + + + + Gets or sets a list of packages sources to use as fallbacks for this command. + This setting requires NuGet V3 or later. + + The list of packages sources to use as fallbacks for this command. + + + + Gets or sets the version of MSBuild to be used with this command. + By default the MSBuild in your path is picked, otherwise it defaults to the highest installed version of MSBuild. + This setting requires NuGet V3 or later. + + The version of MSBuild to be used with this command. + + + + This namespace contain types used to + set NuGet API keys. + + + + + The NuGet set API key used to set API key used for API/feed authentication. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The NuGet tool resolver. + + + + Installs NuGet packages using the specified package id and settings. + + The API key. + The Server URL where the API key is valid. + The settings. + + + + Contains settings used by . + + + + + Gets or sets the output verbosity. + + The output verbosity. + + + + Gets or sets the NuGet configuration file. + If not specified, the file %AppData%\NuGet\NuGet.config is used as the configuration file. + + The NuGet configuration file. + + + + This namespace contain types used to + set proxy settings. + + + + + The NuGet set command used to set the proxy settings to be used while connecting to your NuGet feed. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The NuGet tool resolver. + + + + Set the proxy settings to be used while connecting to your NuGet feed. + + The url of the proxy. + The username used to access the proxy. + The password used to access the proxy. + The settings. + + + + Contains settings used by . + + + + + Gets or sets the output verbosity. + + The output verbosity. + + + + Gets or sets the NuGet configuration file. + If not specified, the file %AppData%\NuGet\NuGet.config is used as the configuration file. + + The NuGet configuration file. + + + + This namespace contain types used to + interact with NuGet sources. + + + + + The NuGet sources is used to work with user config feeds & credentials + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The NuGet tool resolver. + + + + Adds NuGet package source using the specified settings to global user config + + Name of the source. + Path to the package(s) source. + The settings. + + + + Remove specified NuGet package source + + Name of the source. + Path to the package(s) source. + The settings. + + + + Determines whether the specified NuGet package source exist. + + Path to the package(s) source. + The settings. + Whether the specified NuGet package source exist. + + + + Contains settings used by . + + + + + Gets or sets the (optional) user name. + + Optional user name to be used when connecting to an authenticated source. + + + + Gets or sets the (optional) password. + + Optional password to be used when connecting to an authenticated source. + + + + Gets or sets the output verbosity. + + The output verbosity. + + + + Gets or sets a value indicating whether this source contains sensitive data, i.e. authentication token in url. + + + true if this source contains sensitive data; otherwise, false. + + + + + Gets or sets a value indicating whether to not encrypt the password and store it in clear text. (Default: false) + + + true if password is stored as unencrypted; otherwise, false. + + + + + Gets or sets the location of the NuGet configuration file. If not specified, file %AppData%\NuGet\NuGet.config is used as configuration file. + + + + + This namespace contain types used to + update NuGet packages. + + + + + The NuGet package updater. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The nuget tool resolver. + + + + Updates NuGet packages using the specified settings. + + The target file path. + The settings. + + + + Contains settings used by . + + + + + Gets or sets the package ids to update. + + The package ids to update. + + + + Gets or sets a list of package sources to use for this command. + + + + + Gets or sets a value indicating whether to look for updates with the highest + version available within the same major and minor version as the installed package. + + + true if safe; otherwise, false. + + + + + Gets or sets a value indicating whether to allow updating to prerelease versions. + This flag is not required when updating prerelease packages that are already installed. + + + true to allow updating to prerelease versions; otherwise, false. + + + + + Gets or sets the amount of output details. + + + + + Gets or sets the version of MSBuild to be used with this command. + By default the MSBuild in your path is picked, otherwise it defaults to the highest installed version of MSBuild. + This setting requires NuGet V3 or later. + + The version of MSBuild to be used with this command. + + + + Gets or sets package version to be used with this command. + + The package version to be used with this command. + + + + The NuGet package add tool used to add NuGet packages to folder or UNC shares. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The NuGet tool resolver. + + + + Adds NuGet packages to the package source, which is a folder or a UNC share. Http sources are not supported. + + The source package id. + The settings. + + + + Contains settings used by . + + + + + Gets or sets a a package sources to use for this command. + + The package sources to use for this command. + + + + Gets or sets a value indicating whether a package added to an offline feed is also expanded. + + true if package should also be expanded; otherwise, false. + + + + Gets or sets the output verbosity. + + The output verbosity. + + + + Gets or sets the NuGet configuration file. + If not specified, the file %AppData%\NuGet\NuGet.config is used as the configuration file. + + The NuGet configuration file. + + + + The NuGet package init tool copies all the packages from the source to the hierarchical destination. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The NuGet tool resolver. + + + + Init adds all the packages from the source to the hierarchical destination. + + Package source to be copied from. + Package destination to be copied to. + The settings. + + + + Contains settings used by . + + + + + Gets or sets a value indicating whether a package added to an offline feed is also expanded. + + true if package should also be expanded; otherwise, false. + + + + Gets or sets the output verbosity. + + The output verbosity. + + + + Gets or sets the NuGet configuration file. + If not specified, the file %AppData%\NuGet\NuGet.config is used as the configuration file. + + The NuGet configuration file. + + + + The NuGet package lister used to list NuGet packages from a source. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The NuGet tool resolver. + + + + Lists available packages with their versions + + The settings + A list of available packages + + + + Lists available packages with their versions + + The source package id. If it equals an empty string, it will match all packageIds + The settings + A list of available packages + + + + An item as returned by + + + + + Gets or sets the name of the NuGetListItem + + + + + Gets or sets the version of the NuGetListItem as string + + + + + Contains settings used by . + + + + + Gets or sets a value indicating whether list all versions of a package.By default, only the latest package version is displayed + + + + + Gets or sets a value indicating whether to allow prerelease packages to be shown. + + + + + Gets or sets a value indicating whether to allow unlisted packages to be shown. + + + + + Gets or sets the NuGet configuration file. If not specified, file %AppData%\NuGet\NuGet.config is used as configuration file. + + + + + Gets or sets a list of packages sources to search. + + + + + Contains functionality for working with NuGet. + + + Since Cake requires NuGet to be available very early in the build pipeline, we recommend that NuGet is made + available via the Cake BootStrapper. + + + + + Creates a NuGet package using the specified Nuspec or project file. + + The context. + The nuspec or project file path. + The settings. + + + var nuGetPackSettings = new NuGetPackSettings { + Id = "TestNuget", + Version = "0.0.0.1", + Title = "The tile of the package", + Authors = new[] {"John Doe"}, + Owners = new[] {"Contoso"}, + Description = "The description of the package", + Summary = "Excellent summary of what the package does", + ProjectUrl = new Uri("https://github.com/SomeUser/TestNuget/"), + IconUrl = new Uri("http://cdn.rawgit.com/SomeUser/TestNuget/master/icons/testnuget.png"), + LicenseUrl = new Uri("https://github.com/SomeUser/TestNuget/blob/master/LICENSE.md"), + Copyright = "Some company 2015", + ReleaseNotes = new [] {"Bug fixes", "Issue fixes", "Typos"}, + Tags = new [] {"Cake", "Script", "Build"}, + RequireLicenseAcceptance= false, + Symbols = false, + NoPackageAnalysis = true, + Files = new [] { + new NuSpecContent {Source = "bin/TestNuget.dll", Target = "bin"}, + }, + BasePath = "./src/TestNuget/bin/release", + OutputDirectory = "./nuget" + }; + + NuGetPack("./nuspec/TestNuget.nuspec", nuGetPackSettings); + + + + + + Creates NuGet packages using the specified Nuspec or project files. + + The context. + The nuspec or project file paths. + The settings. + + + var nuGetPackSettings = new NuGetPackSettings { + Id = "TestNuget", + Version = "0.0.0.1", + Title = "The tile of the package", + Authors = new[] {"John Doe"}, + Owners = new[] {"Contoso"}, + Description = "The description of the package", + Summary = "Excellent summary of what the package does", + ProjectUrl = new Uri("https://github.com/SomeUser/TestNuget/"), + IconUrl = new Uri("http://cdn.rawgit.com/SomeUser/TestNuget/master/icons/testnuget.png"), + LicenseUrl = new Uri("https://github.com/SomeUser/TestNuget/blob/master/LICENSE.md"), + Copyright = "Some company 2015", + ReleaseNotes = new [] {"Bug fixes", "Issue fixes", "Typos"}, + Tags = new [] {"Cake", "Script", "Build"}, + RequireLicenseAcceptance= false, + Symbols = false, + NoPackageAnalysis = true, + Files = new [] { + new NuSpecContent {Source = "bin/TestNuget.dll", Target = "bin"}, + }, + BasePath = "./src/TestNuget/bin/release", + OutputDirectory = "./nuget" + }; + + var nuspecFiles = GetFiles("./**/*.nuspec"); + NuGetPack(nuspecFiles, nuGetPackSettings); + + + + + + Creates a NuGet package using the specified settings. + + The context. + The settings. + + + var nuGetPackSettings = new NuGetPackSettings { + Id = "TestNuget", + Version = "0.0.0.1", + Title = "The tile of the package", + Authors = new[] {"John Doe"}, + Owners = new[] {"Contoso"}, + Description = "The description of the package", + Summary = "Excellent summary of what the package does", + ProjectUrl = new Uri("https://github.com/SomeUser/TestNuget/"), + IconUrl = new Uri("http://cdn.rawgit.com/SomeUser/TestNuget/master/icons/testnuget.png"), + LicenseUrl = new Uri("https://github.com/SomeUser/TestNuget/blob/master/LICENSE.md"), + Copyright = "Some company 2015", + ReleaseNotes = new [] {"Bug fixes", "Issue fixes", "Typos"}, + Tags = new [] {"Cake", "Script", "Build"}, + RequireLicenseAcceptance= false, + Symbols = false, + NoPackageAnalysis = true, + Files = new [] { + new NuSpecContent {Source = "bin/TestNuget.dll", Target = "bin"}, + }, + BasePath = "./src/TestNuget/bin/release", + OutputDirectory = "./nuget" + }; + + NuGetPack(nuGetPackSettings); + + + + + + Restores NuGet packages for the specified target. + + The context. + The target to restore. + + + var solutions = GetFiles("./**/*.sln"); + // Restore all NuGet packages. + foreach(var solution in solutions) + { + Information("Restoring {0}", solution); + NuGetRestore(solution); + } + + + + + + Restores NuGet packages for the specified targets. + + The context. + The targets to restore. + + + var solutions = GetFiles("./**/*.sln"); + NuGetRestore(solutions); + + + + + + Restores NuGet packages using the specified settings. + + The context. + The target to restore. + The settings. + + + var solutions = GetFiles("./**/*.sln"); + // Restore all NuGet packages. + foreach(var solution in solutions) + { + Information("Restoring {0}", solution); + NuGetRestore(solution, new NuGetRestoreSettings { NoCache = true }); + } + + + + + + Restores NuGet packages using the specified settings. + + The context. + The targets to restore. + The settings. + + + var solutions = GetFiles("./**/*.sln"); + NuGetRestore(solutions, new NuGetRestoreSettings { NoCache = true }); + + + + + + Pushes a NuGet package to a NuGet server and publishes it. + + The context. + The .nupkg file path. + The settings. + + NOTE: Starting with NuGet 3.4.2, the Source parameter is a mandatory parameter. + It is strongly recommended that you ALWAYS set the Source property within the instance. + + // Get the path to the package. + var package = "./nuget/SlackPRTGCommander.0.0.1.nupkg"; + + // Push the package. + NuGetPush(package, new NuGetPushSettings { + Source = "http://example.com/nugetfeed", + ApiKey = "4003d786-cc37-4004-bfdf-c4f3e8ef9b3a" + }); + + + + + + Pushes NuGet packages to a NuGet server and publishes them. + + The context. + The .nupkg file paths. + The settings. + + NOTE: Starting with NuGet 3.4.2, the Source parameter is a mandatory parameter. + It is strongly recommended that you ALWAYS set the Source property within the instance. + + // Get the paths to the packages. + var packages = GetFiles("./**/*.nupkg"); + + // Push the package. + NuGetPush(packages, new NuGetPushSettings { + Source = "http://example.com/nugetfeed", + ApiKey = "4003d786-cc37-4004-bfdf-c4f3e8ef9b3a" + }); + + + + + + Adds NuGet package source using the specified name &source to global user config + + The context. + Name of the source. + Path to the package(s) source. + + + var feed = new + { + Name = EnvironmentVariable("PUBLIC_FEED_NAME"), + Source = EnvironmentVariable("PUBLIC_FEED_SOURCE") + }; + + NuGetAddSource( + name:feed.Name, + source:feed.Source + ); + + + + + + Adds NuGet package source using the specified name, source & settings to global user config + + The context. + Name of the source. + Path to the package(s) source. + The settings. + + + var nugetSourceSettings = new NuGetSourcesSettings + { + UserName = EnvironmentVariable("PRIVATE_FEED_USERNAME"), + Password = EnvironmentVariable("PRIVATE_FEED_PASSWORD"), + IsSensitiveSource = true, + Verbosity = NuGetVerbosity.Detailed + }; + + var feed = new + { + Name = EnvironmentVariable("PRIVATE_FEED_NAME"), + Source = EnvironmentVariable("PRIVATE_FEED_SOURCE") + }; + + NuGetAddSource( + name:feed.Name, + source:feed.Source, + settings:nugetSourceSettings + ); + + + + + + Removes NuGet package source using the specified name & source from global user config + + The context. + Name of the source. + Path to the package(s) source. + + + var feed = new + { + Name = EnvironmentVariable("PRIVATE_FEED_NAME"), + Source = EnvironmentVariable("PRIVATE_FEED_SOURCE") + }; + + NuGetRemoveSource( + name:feed.Name, + source:feed.Source + ); + + + + + + Removes NuGet package source using the specified name, source & settings from global user config + + The context. + Name of the source. + Path to the package(s) source. + The settings. + + + var nugetSourceSettings = new NuGetSourcesSettings + { + UserName = EnvironmentVariable("PRIVATE_FEED_USERNAME"), + Password = EnvironmentVariable("PRIVATE_FEED_PASSWORD"), + IsSensitiveSource = true, + Verbosity = NuGetVerbosity.Detailed + }; + + var feed = new + { + Name = EnvironmentVariable("PRIVATE_FEED_NAME"), + Source = EnvironmentVariable("PRIVATE_FEED_SOURCE") + }; + + NuGetRemoveSource( + name:feed.Name, + source:feed.Source, + settings:nugetSourceSettings + ); + + + + + + Checks whether or not a NuGet package source exists in the global user configuration, using the specified source. + + The context. + Path to the package(s) source. + Whether or not the NuGet package source exists in the global user configuration. + + + var feed = new + { + Name = EnvironmentVariable("PRIVATE_FEED_NAME"), + Source = EnvironmentVariable("PRIVATE_FEED_SOURCE") + }; + if (!NuGetHasSource(source:feed.Source)) + { + Information("Source missing"); + } + else + { + Information("Source already exists"); + } + + + + + + Checks whether or not a NuGet package source exists in the global user configuration, using the specified source and settings. + + The context. + Path to the package(s) source. + The settings. + Whether the specified NuGet package source exist. + + + var nugetSourceSettings = new NuGetSourcesSettings + { + UserName = EnvironmentVariable("PRIVATE_FEED_USERNAME"), + Password = EnvironmentVariable("PRIVATE_FEED_PASSWORD"), + IsSensitiveSource = true, + Verbosity = NuGetVerbosity.Detailed + }; + var feed = new + { + Name = EnvironmentVariable("PRIVATE_FEED_NAME"), + Source = EnvironmentVariable("PRIVATE_FEED_SOURCE") + }; + if (!NuGetHasSource( + source:feed.Source, + settings:nugetSourceSettings)) + { + Information("Source missing"); + } + else + { + Information("Source already exists"); + } + + + + + + Installs a NuGet package. + + The context. + The id of the package to install. + + + NuGetInstall("MyNugetPackage"); + + + + + + Installs NuGet packages. + + The context. + The id's of the package to install. + + + NuGetInstall(new[] { "MyNugetPackage", "OtherNugetPackage" }); + + + + + + Installs a NuGet package using the specified settings. + + The context. + The id of the package to install. + The settings. + + + NuGetInstall("MyNugetPackage", new NuGetInstallSettings { + ExcludeVersion = true, + OutputDirectory = "./tools" + }); + + + + + + Installs NuGet packages using the specified settings. + + The context. + The id's of the package to install. + The settings. + + + NuGetInstall(new[] { "MyNugetPackage", "OtherNugetPackage" }, new NuGetInstallSettings { + ExcludeVersion = true, + OutputDirectory = "./tools" + }); + + + + + + Installs NuGet packages using the specified package configuration. + + The context. + The package configuration to install. + + + NuGetInstallFromConfig("./tools/packages.config"); + + + + + + Installs NuGet packages using the specified package configurations. + + The context. + The package configurations to install. + + + var packageConfigs = GetFiles("./**/packages.config"); + + NuGetInstallFromConfig(packageConfigs); + + + + + + Installs NuGet packages using the specified package configuration and settings. + + The context. + The package configuration to install. + The settings. + + + NuGetInstallFromConfig("./tools/packages.config", new NuGetInstallSettings { + ExcludeVersion = true, + OutputDirectory = "./tools" + }); + + + + + + Installs NuGet packages using the specified package configurations and settings. + + The context. + The package configurations to install. + The settings. + + + var packageConfigs = GetFiles("./**/packages.config"); + + NuGetInstallFromConfig(packageConfigs, new NuGetInstallSettings { + ExcludeVersion = true, + OutputDirectory = "./tools" + }); + + + + + + Installs NuGet packages using the specified API key, source and settings. + + + + var setting = new NuGetSetApiKeySettings { + Verbosity = NuGetVerbosity.Detailed + }; + NuGetSetApiKey("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "https://nuget.org/api/v2/", setting); + + + The context. + The API key. + Server URL where the API key is valid. + The settings. + + + + Installs NuGet packages using the specified API key and source. + + + + NuGetSetApiKey("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "https://nuget.org/api/v2/"); + + + The context. + The API key. + Server URL where the API key is valid. + + + + Set the proxy settings to be used while connecting to your NuGet feed, including settings. + + + + var setting = new NuGetSetProxySettings { + Verbosity = NuGetVerbosity.Detailed + }; + NuGetSetProxy("127.0.0.1:8080", "proxyuser","Pa$$w0rd1", setting); + + + The context. + The url of the proxy. + The username used to access the proxy. + The password used to access the proxy. + The settings. + + + + Set the proxy settings to be used while connecting to your NuGet feed. + + + + NuGetSetProxy("127.0.0.1:8080", "proxyuser","Pa$$w0rd1"); + + + The context. + The url of the proxy. + The username used to access the proxy. + The password used to access the proxy. + + + + Updates NuGet packages. + + The context. + The target to update. + + + NuGetUpdate("./tools/packages.config"); + + + + + + Updates NuGet packages. + + The context. + The targets to update. + + + var targets = GetFiles("./**/packages.config"); + + NuGetUpdate(targets); + + + + + + Updates NuGet packages using the specified settings. + + The context. + The target to update. + The settings. + + + NuGetUpdate("./tools/packages.config", new NuGetUpdateSettings { + Prerelease = true, + }); + + + + + + Updates NuGet packages using the specified settings. + + The context. + The targets to update. + The settings. + + + var targets = GetFiles("./**/packages.config"); + + NuGetUpdate(targets, new NuGetUpdateSettings { + Prerelease = true, + }); + + + + + + Adds a NuGet package using package id and source. + + The context. + The id of the package to add. + Path to the local feed source. + + + NuGetAdd("MyNugetPackage", "//bar/packages/"); + + + + + + Adds a NuGet package using package id and source. + + The context. + The id of the package to add. + The settings. + + + NuGetAdd("MyNugetPackage", new NuGetAddSettings({ + Source = "//bar/packages/" + }); + + + + + + Adds all packages from source to destination. + + The context. + The local feed package source. + The local feed destination source. + + + NuGetInit("//foo/packages", "//bar/packages/"); + + + + + + Adds all packages from source to destination using specified settings. + + The context. + The local feed package source. + The local feed destination source. + The settings. + + + NuGetInit("//foo/packages", "//bar/packages/", new NuGetInitSettings { + Expand = true + }); + + + + + + List packages on available from source using specified settings + + The context. + The package Id + The settings. + List of packages with their version + + + var packageList = NuGetList("Cake", new NuGetListSettings { + AllVersions = false, + Prerelease = false + }); + foreach(var package in packageList) + { + Information("Found package {0}, version {1}", package.Name, package.Version); + } + + + + + + List packages on available from source using specified settings + + The context. + The package Id + List of packages with their version + + + var packageList = NuGetList("Cake"); + foreach(var package in packageList) + { + Information("Found package {0}, version {1}", package.Name, package.Version); + } + + + + + + List packages on available from source using specified settings + + The context. + The settings. + List of packages with their version + + + var packageList = NuGetList(new NuGetListSettings { + AllVersions = false, + Prerelease = false + }); + foreach(var package in packageList) + { + Information("Found package {0}, version {1}", package.Name, package.Version); + } + + + + + + NuGet MSBuild version + + + + + MSBuildVersion : 4 + + + + + MSBuildVersion : 12 + + + + + MSBuildVersion : 14 + + + + + MSBuildVersion : 15 + + + + + Base class for all NuGet related tools. + + The settings type. + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The NuGet tool resolver. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Gets alternative file paths which the tool may exist in + + The settings. + The default tool path. + + + + Represents NuGet verbosity. + + + + + Verbosity: Normal + + + + + Verbosity: Quiet + + + + + Verbosity: Detailed + + + + + This namespace contain types used to interact with NUnit. + + + + + Contains functionality related to running NUnit v2 and v3 unit tests. + + In order to use the commands for this alias, include the following in your build.cake file to download and + install from NuGet.org, or specify the ToolPath within the class: + + #tool "nuget:?package=NUnit.ConsoleRunner" + + + + + + + Runs all NUnit unit tests in the assemblies matching the specified pattern. + + The context. + The pattern. + + + NUnit3("./src/**/bin/Release/*.Tests.dll"); + + + + + + Runs all NUnit unit tests in the assemblies matching the specified pattern, + using the specified settings. + + The context. + The pattern. + The settings. + + + NUnit3("./src/**/bin/Release/*.Tests.dll", new NUnit3Settings { + NoResults = true + }); + + + + + + Runs all NUnit unit tests in the specified assemblies. + + The context. + The assemblies. + + + NUnit3(new [] { "./src/Example.Tests/bin/Release/Example.Tests.dll" }); + + + + + + Runs all NUnit unit tests in the specified assemblies. + + The context. + The assemblies. + + + var testAssemblies = GetFiles("./src/**/bin/Release/*.Tests.dll"); + NUnit3(testAssemblies); + + + + + + Runs all NUnit unit tests in the specified assemblies, + using the specified settings. + + The context. + The assemblies. + The settings. + + + NUnit3(new [] { "./src/Example.Tests/bin/Release/Example.Tests.dll" }, new NUnit3Settings { + NoResults = true + }); + + + + + + Runs all NUnit unit tests in the specified assemblies, + using the specified settings. + + The context. + The assemblies. + The settings. + + + var testAssemblies = GetFiles("./src/**/bin/Release/*.Tests.dll"); + NUnit3(testAssemblies, new NUnit3Settings { + NoResults = true + }); + + + + + + The /domain option controls of the creation of AppDomains for running tests. + + + + + Create a separate AppDomain for each assembly if more than one is listed on the command + line, otherwise creates a single AppDomain. + + + + + No AppDomain is created - the tests are run in the primary domain. + This normally requires copying the NUnit assemblies into the same directory as your tests. + + + + + A single test AppDomain is created for all test assemblies + This is how NUnit worked prior to version 2.4. + + + + + An AppDomain is created for each assembly specified on the command line. + + + + + Represents the possible values for the Labels option. + + + + + Does not output labels. This is the default. + + + + + Outputs labels for tests that are run. + + + + + Outputs labels for all tests. + + + + + Outputs labels at the start of every test. + + + + + Outputs labels at the end of every test. + + + + + Represents the various ways NUnit loads tests in processes. + + + + + A separate process is created for each test assembly. This is the default. + + + + + One separate process is created to run all of the test assemblies. + + + + + All the tests are run in the nunit-console process. + + + + + Contains information for the results that should be exported. + + + + + Gets or sets the name of the XML result file. + + + The name of the XML result file. Defaults to TestResult.xml. + + + + + Gets or sets the format that the results should be in. must be set to + have any effect. Specify nunit2 to output the results in NUnit 2 xml format. + nunit3 may be specified for NUnit 3 format, however this is the default. Additional + formats may be supported in the future, check the NUnit documentation. + + + The format of the result file. Defaults to nunit3. + + + + + Gets or sets the file name of an XSL transform that will be applied to the results. + + + The name of an XSLT file that will be applied to the results. + + + + + The NUnit3 unit test runner. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Runs the tests in the specified assemblies, using the specified settings. + + The assembly paths. + The settings. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Customized Nunit3 exit code handling. + Throws on non-zero exit code + + The process exit code + + + + Contains settings used by . + + + + + Gets or sets the list of tests to run or explore. + + + A comma-separated list of test names. + + + + + Gets or sets a file containing the tests to run. + + + File path containing a list of tests to run, one per line. + + + + + Gets or sets the test selection expression indicating what tests will be run. + + + The --where option is intended to extend or replace the earlier + --test, --include and --exclude options by use of a selection expression + describing exactly which tests to use. Examples of usage are: + --where:cat==Data + --where "method =~ /DataTest*/ && cat = Slow" + See https://github.com/nunit/docs/wiki/Test-Selection-Language. + + + + + Gets or sets the default timeout to be used for test cases in this run. + If any test exceeds the timeout value, it is cancelled and reported as an error. + + + The timeout in milliseconds. + + + + + Gets or sets the random seed used to generate test cases. + + + The random seed. + + + + + Gets or sets the number of worker threads to be used + in running tests.If not specified, defaults to + 2 or the number of processors, whichever is greater. + + + The number of worker threads. + + + + + Gets or sets a value indicating whether execution of the test run should terminate + immediately on the first test failure or error. + + + true if execution of the test run should terminate immediately on the first test failure or error; + otherwise, false. + + + + + Gets or sets a value indicating whether execution of the test run should + skip any non-test assemblies specified, without error. + + + true if execution of the test run should skip any non-test assemblies specified, without error; + otherwise, false. + + + + + Gets or sets the directory to use for output files. If + not specified, defaults to the current directory. + + + PATH of the directory. + + + + + Gets or sets the location that NUnit should write test output. + + The location that NUnit should write test output. + + + + Gets or sets the location that NUnit should write test error output. + + The location that NUnit should write test error output. + + + + Gets or sets a value indicating whether to print full report of all test results. + + + true if a full report of test results should be printed; + otherwise, false. + + + + + Gets or sets the results that should be saved. + + The package owners. + + + + Gets or sets a value indicating whether to generate the XML result file. + + + true if the XML result file should be generated; otherwise, false. + + + + + Gets or sets a value specifying whether to write test case names to the output. + + + On to write labels for tests that are run,All to write labels + for all tests,Before to write labels at the start of every test + ,or After to write labels at the end of every test. + + + + + Gets or sets a value indicating whether to turn on TeamCity service messages. + + + true to turn on TeamCity service messages; otherwise, false. + + + + + Gets or sets a value indicating whether to show copyright information at the start of the program. + + + true if to show copyright information at the start of the program; otherwise, false. + + + + + Gets or sets a value indicating whether to show the output in color. + + + true disable color output; otherwise, false. + + + + + Gets or sets a value indicating whether to show additional information as the tests run. + + + true shows additional information as the tests run; otherwise, false. + + + + + Gets or sets the name of a project configuration to load (e.g.:Debug). + This selects the configuration within the NUnit project file. + + + The name of the configuration to load. + + + + + Gets or sets a value indicating whether to run tests in an x86 process on 64 bit systems. + + + true to run tests in an x86 process on 64 bit systems; otherwise, false. + + + + + Gets or sets a value indicating whether to Dispose each test runner after it has finished + running its tests. + + + true to Dispose each test runner after it has finished + running its tests; otherwise, false. + + + + + Gets or sets a value indicating whether to shadow copy tests. + Default value is false. + + + true if tests should be run as a shadow copy; otherwise, false. + + + + + Gets or sets the version of the runtime to be used when executing tests. + + + The version of the runtime to be used when executing tests. + + + + + Gets or sets a value indicating how NUnit should load tests in processes. + The Default value is . + + + + + Gets or sets a value to control creation of AppDomains for running tests. + Corresponds to the /domain command line switch. + The default is to use multiple domains if multiple assemblies are listed on the command line, + otherwise a single domain is used. + + + + + Gets or sets the maximum number of test assembly agents to run at one + time. If not specified, there is no limit. + + + The maximum number of test assembly agents to run at one time. + + + + + Gets or sets the parameters that should be passed to the runner. + + + List of parameters (key/value) which are passed to the runner. + + + + + Gets or sets the level of detail at which the runner should write to its internal trace log. + Corresponds to the -trace=LEVEL command line argument. + If null, no argument will be specified + + + The trace level. + + + + + Contains functionality related to running NUnit tests. + + In order to use the commands for this alias, include the following in your build.cake file to download and + install from NuGet.org, or specify the ToolPath within the class: + + #tool "nuget:?package=NUnit.Runners&version=2.6.4" + + + + + + + Runs all NUnit unit tests in the assemblies matching the specified pattern. + + + + NUnit("./src/UnitTests/*.dll"); + + + The context. + The pattern. + + + + Runs all NUnit unit tests in the assemblies matching the specified pattern, + using the specified settings. + + + + NUnit("./src/UnitTests/*.dll", new NUnitSettings { + Timeout = 4000, + StopOnError = true + }); + + + The context. + The pattern. + The settings. + + + + Runs all NUnit unit tests in the specified assemblies. + + + + var assemblies = new [] { + "UnitTests1.dll", + "UnitTests2.dll" + }; + NUnit(assemblies); + + + The context. + The assemblies. + + + + Runs all NUnit unit tests in the specified assemblies. + + + + var assemblies = GetFiles("./src/UnitTests/*.dll"); + NUnit(assemblies); + + + The context. + The assemblies. + + + + Runs all NUnit unit tests in the specified assemblies, + using the specified settings. + + + + var assemblies = new [] { + "UnitTests1.dll", + "UnitTests2.dll" + }; + NUnit(assemblies, new NUnitSettings { + Timeout = 4000, + StopOnError = true + }); + + + The context. + The assemblies. + The settings. + + + + Runs all NUnit unit tests in the specified assemblies, + using the specified settings. + + + + var assemblies = GetFiles(""./src/UnitTests/*.dll""); + NUnit(assemblies, new NUnitSettings { + Timeout = 4000, + StopOnError = true + }); + + + The context. + The assemblies. + The settings. + + + + The /domain option controls of the creation of AppDomains for running tests. + + + + + Create a separate AppDomain for each assembly listed on the command line. + + + + + No domain is created - the tests are run in the primary domain. + This normally requires copying the NUnit assemblies into the same directory as your tests. + + + + + A test domain is created - this is how NUnit worked prior to version 2.4 + + + + + Represents the level of detail at which NUnit should set internal tracing + + + + + Do not display any trace messages + + + + + Display Error messages only + + + + + Display Warning level and higher messages + + + + + Display informational and higher messages + + + + + Display debug messages and higher - i.e. all messages + + + + + Display debug messages and higher - i.e. all messages + + + + + Contains extension methods for . + + + + + Gets the LEVEL value for the --trace command line argument for the given + + The value for which to get the representation + Returns the appropriate representation for the given value + + + + Represents the various ways NUnit loads tests in processes. + + + + + All the tests are run in the nunit-console process. This is the default. + + + + + A separate process is created to run the tests. + + + + + A separate process is created for each test assembly. + + + + + The NUnit unit test runner. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Runs the tests in the specified assemblies, using the specified settings. + + The assembly paths. + The settings. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Customized Nunit exit code handling. + Throws on non-zero exit code + + The process exit code + + + + Contains settings used by . + + + + + Initializes a new instance of the class. + + + + + Gets or sets the name of the XML result file. + + + The name of the XML result file. Defaults to TestResult.xml. + + + + + Gets or sets a value indicating whether to generate the XML result file. + + + true if the XML result file should be generated; otherwise, false. + + + + + Gets or sets the version of the runtime to be used when executing tests. + + + The version of the runtime to be used when executing tests. + + + + + Gets or sets the categories to include in a run. + + The categories to include in a run. + + + + Gets or sets the categories to exclude from a run. + + + The categories to exclude from a run. + + + + + Gets or sets the default timeout to be used for test cases in this run. + If any test exceeds the timeout value, it is cancelled and reported as an error. + + The default timeout to be used for test cases in this run. + + + + Gets or sets a value indicating whether tests should be run as a shadow copy. + Default value is true. + + + true if tests should be run as a shadow copy; otherwise, false. + + + + + Gets or sets a value indicating whether the main thread should be used for running tests. + + + true if the main thread should be used for running tests; otherwise, false. + + + + + Gets or sets a value indicating whether to show copyright information at the start of the program. + + + true if to show copyright information at the start of the program; otherwise, false. + + + + + Gets or sets a value indicating whether execution of the test run should terminate + immediately on the first test failure or error. + + + true if execution of the test run should terminate immediately on the first test failure or error; + otherwise, false. + + + + + Gets or sets the amount of information that NUnit should write to its internal trace log. + + The amount of information that NUnit should write to its internal trace log. + + + + Gets or sets the location that NUnit should write test output. + + The location that NUnit should write test output. + + + + Gets or sets the location that NUnit should write test error output. + + The location that NUnit should write test error output. + + + + Gets or sets a value indicating how NUnit should load tests in processes. + The Default value is + + + + + Gets or sets a value indicating whether Single Threaded Apartment state (STA) will be used. + Corresponds to the /apartment command line option + + + + + Gets or sets a value to control creation of AppDomains for running tests. + Corresponds to the /domain command line switch. + The default is to use multiple domains if multiple assemblies are listed on the command line. + Otherwise a single domain is used. + + + + + Gets or sets a value indicating whether to run tests in an x86 process on 64 bit systems. + + + true to run tests in an x86 process on 64 bit systems; otherwise, false. + + + + + Gets or sets a value indicating whether to cause an identifying label to be displayed at the start of each test case. + + + true to cause an identifying label to be displayed at the start of each test case; otherwise, false. + + + + + This namespace contain types used + to interact with Octopus Deploy. + + + + + Contains settings used by . + See Octopus Deploy documentation here + + + + + Initializes a new instance of the class. + + + + + Gets or sets the release number to use for the new release. + + + + + Gets or sets the default version number of all packages to use the new release. + + + + + Gets or sets the version number to use for a package in the release. + + + + + Gets or sets the folder containing NuGet packages. + + + + + Gets or sets the release notes for the new release. + + + + + Gets or sets the path to a file that contains Release Notes for the new release. + + + + + Gets or sets a value indicating whether to Ignore Existing release flag. + + + + + Gets or sets environment to automatically deploy to, e.g., Production. + + + + + Gets or sets a value indicating whether progress of the deployment should be followed. (Sets --waitfordeployment and --norawlog to true.) + + + + + Gets or sets a value indicating whether to force downloading of already installed packages. Default false. + + + + + Gets or sets a value indicating whether to wait synchronously for deployment to finish. + + + + + Gets or sets maximum time (timespan format) that the console session will wait for the deployment to finish (default 00:10:00). + This will not stop the deployment. Requires WaitForDeployment parameter set. + + + + + Gets or sets a value indicating whether to cancel the deployment if the deployment timeout is reached(default false). + + + + + Gets or sets how much time should elapse between deployment status checks(default 00:00:10). + + + + + Gets or sets a value indicating whether to use Guided Failure mode. If not specified, will use default setting from environment. + + + + + Gets or sets list of machines names to target in the deployed environment.If not specified all machines in the environment will be considered. + + + + + Gets or sets a value indicating whether a project is configured to skip packages with already-installed versions, override this setting to force re-deployment (flag, default false). + + + + + Gets or sets a list of steps to be skipped. Takes step names. + + + + + Gets or sets a value indicating whether print the raw log of failed tasks or not. + + + + + Gets or sets a file where to redirect the raw log of failed tasks. + + + + + Gets or sets values for any prompted variables. + + + + + Gets or sets time at which deployment should start (scheduled deployment), specified as any valid DateTimeOffset format, and assuming the time zone is the current local time zone. + + + + + Gets or sets a tenant the deployment will be performed for; specify this argument multiple times to add multiple tenants or use `*` wildcard to deploy to tenants able to deploy. + + + + + Gets or sets a tenant tags used to match tenants that the deployment will be performed for; specify this argument multiple times to add multiple tenant tags. + + + + + Gets or sets the octopus channel for the new release. + + + + + Gets or sets a value indicating whether octopus channel rules should be ignored. + + + + + Gets or sets a value indicating whether progress of the deployment will be shown. + + + + + Parses the Console Output of the octo.exe call when called with list-deployments + + + + + Initializes a new instance of the class. + + + + + Parse the results from The Deployment Query + + Console Output from the Run Process + A collection of Octopus deployments. + + + + Parses a set of lines from the output + + A set of lines to parse + an OctopusDeployment or null + + + + Contains functionality related to Octopus Deploy. + + In order to use the commands for this alias, include the following in your build.cake file to download and + install from NuGet.org, or specify the ToolPath within the appropriate settings class: + + #tool "nuget:?package=OctopusTools" + + + + + + + Creates a release for the specified Octopus Deploy Project. + + The cake context. + The name of the project. + The settings. + + + // Minimum required + OctoCreateRelease(projectNameOnServer, new CreateReleaseSettings { + Server = "http://octopus-deploy.example", + ApiKey = "API-XXXXXXXXXXXXXXXXXXXX" + }); + + OctoCreateRelease(projectNameOnServer, new CreateReleaseSettings { + Server = "http://octopus-deploy.example", + Username = "DeployUser", + Password = "a-very-secure-password" + }); + + OctoCreateRelease(projectNameOnServer, new CreateReleaseSettings { + ConfigurationFile = @"C:\OctopusDeploy.config" + }); + + // Additional Options + OctoCreateRelease(projectNameOnServer, new CreateReleaseSettings { + ToolPath = "./tools/OctopusTools/Octo.exe" + EnableDebugLogging = true, + IgnoreSslErrors = true, + EnableServiceMessages = true, // Enables teamcity services messages when logging + ReleaseNumber = "1.8.2", + DefaultPackageVersion = "1.0.0.0", // All packages in the release should be 1.0.0.0 + Packages = new Dictionary<string, string> + { + { "PackageOne", "1.0.2.3" }, + { "PackageTwo", "5.2.3" } + }, + PackagesFolder = @"C:\MyOtherNugetFeed", + + // One or the other + ReleaseNotes = "Version 2.0 \n What a milestone we have ...", + ReleaseNotesFile = "./ReleaseNotes.md", + + IgnoreExisting = true // if this release number already exists, ignore it + }); + + + + + + Pushes the specified package to the Octopus Deploy repository + + The cake context + The Octopus server URL + The user's API key + Path to the package + The settings + + + + Pushes the specified packages to the Octopus Deploy repository + + The cake context + The Octopus server URL + The user's API key + Paths to the packages + The settings + + + + Packs the specified folder into an Octopus Deploy package. + + The cake context + The package ID. + + + + Packs the specified folder into an Octopus Deploy package. + + The cake context + The package ID. + The settings + + + + Deploys the specified already existing release into a specified environment + See Octopus Documentation for more details. + + The cake context + The Octopus server URL + The user's API key + Name of the target project + Target environment name + Version number of the release to deploy. Specify "latest" for the latest release + Deployment settings + + + // bare minimum + OctoDeployRelease("http://octopus-deploy.example", "API-XXXXXXXXXXXXXXXXXXXX", "MyGreatProject", "Testing", "2.1.15-RC" new OctopusDeployReleaseDeploymentSettings()); + + // All of deployment arguments + OctoDeployRelease("http://octopus-deploy.example", "API-XXXXXXXXXXXXXXXXXXXX", "MyGreatProject", "Testing", "2.1.15-RC" new OctopusDeployReleaseDeploymentSettings { + ShowProgress = true, + ForcePackageDownload = true, + WaitForDeployment = true, + DeploymentTimeout = TimeSpan.FromMinutes(1), + CancelOnTimeout = true, + DeploymentChecksLeepCycle = TimeSpan.FromMinutes(77), + GuidedFailure = true, + SpecificMachines = new string[] { "Machine1", "Machine2" }, + Force = true, + SkipSteps = new[] { "Step1", "Step2" }, + NoRawLog = true, + RawLogFile = "someFile.txt", + DeployAt = new DateTime(2010, 6, 15).AddMinutes(1), + Tenant = new[] { "Tenant1", "Tenant2" }, + TenantTags = new[] { "Tag1", "Tag2" }, + }); + + + + + + Promotes the specified already existing release into a specified environment + See Octopus Documentation for more details. + + The cake context + The Octopus server URL + The user's API key + Name of the target project + Source environment name + Target environment name + Deployment settings + + + // bare minimum + OctoPromoteRelease("http://octopus-deploy.example", "API-XXXXXXXXXXXXXXXXXXXX", "MyGreatProject", "Testing", "Staging", new OctopusDeployPromoteReleaseSettings()); + + // All of deployment arguments + OctoPromoteRelease("http://octopus-deploy.example", "API-XXXXXXXXXXXXXXXXXXXX", "MyGreatProject", "Testing", "Staging", new OctopusDeployPromoteReleaseSettings { + ShowProgress = true, + ForcePackageDownload = true, + WaitForDeployment = true, + DeploymentTimeout = TimeSpan.FromMinutes(1), + CancelOnTimeout = true, + DeploymentChecksLeepCycle = TimeSpan.FromMinutes(77), + GuidedFailure = true, + SpecificMachines = new string[] { "Machine1", "Machine2" }, + Force = true, + SkipSteps = new[] { "Step1", "Step2" }, + NoRawLog = true, + RawLogFile = "someFile.txt", + DeployAt = new DateTime(2010, 6, 15).AddMinutes(1), + Tenant = new[] { "Tenant1", "Tenant2" }, + TenantTags = new[] { "Tag1", "Tag2" }, + }); + + + + + + Allows you to query your Octopus Deploy server deployment history + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Pushes the specified packages to Octopus Deploy internal repository + + The Octopus server URL + The user's API key + The query + A list of Octopus Deployments + + + + An object representing a deployment in Octopus Deploy + + + + + gets or sets the Name of the Deployment's Project + + + + + gets or sets the Environment the project was deployed to + + + + + gets or sets the Deployment's channel + + + + + gets or sets When the deployment was created + + + + + gets or sets when the deployment was assembled + + + + + gets or sets the deployed project version + + + + + gets or sets the list of packages in the deployment + + + + + gets or sets the release notes for the deployment (HTML Markup) + + + + + Contains settings used by . + + + + + Gets or Sets a value that is an Octopus Environment Name to filter for. + + + + + Gets or Sets a value that is an Octopus Project Name to filter for. + + + + + Gets or Sets a value that is an Octopus Tenamt Name to filter for. + + + + + Gets or Sets a value that indicates how many deployments to retrieve + in Date Descending order (most recent first) + Default: 1 + + + + + The Octopus deploy package packer + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Creates an Octopus deploy package with the specified ID. + + The package ID. + The settings. + + + + Possible arguments to pass to Octo.exe for promoting a release. See Octopus Deploy documentation + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether overwrite the variable snapshot for the release by re-importing the variables from the project + + + + + Gets or sets a value indicating whether progress of the deployment should be followed. (Sets --waitfordeployment and --norawlog to true.) + + + + + Gets or sets a value indicating whether to force downloading of already installed packages. Default false. + + + + + Gets or sets a value indicating whether to wait synchronously for deployment to finish. + + + + + Gets or sets maximum time (timespan format) that the console session will wait for the deployment to finish (default 00:10:00). + This will not stop the deployment. Requires WaitForDeployment parameter set. + + + + + Gets or sets a value indicating whether to cancel the deployment if the deployment timeout is reached(default false). + + + + + Gets or sets how much time should elapse between deployment status checks(default 00:00:10). + + + + + Gets or sets a value indicating whether to use Guided Failure mode. If not specified, will use default setting from environment. + + + + + Gets or sets list of machines names to target in the deployed environment.If not specified all machines in the environment will be considered. + + + + + Gets or sets a value indicating whether a project is configured to skip packages with already-installed versions, override this setting to force re-deployment (flag, default false). + + + + + Gets or sets a list of steps to be skipped. Takes step names. + + + + + Gets or sets a value indicating whether print the raw log of failed tasks or not. + + + + + Gets or sets a file where to redirect the raw log of failed tasks. + + + + + Gets or sets values for any prompted variables. + + + + + Gets or sets time at which deployment should start (scheduled deployment), specified as any valid DateTimeOffset format, and assuming the time zone is the current local time zone. + + + + + Gets or sets a tenant the deployment will be performed for; specify this argument multiple times to add multiple tenants or use `*` wildcard to deploy to tenants able to deploy. + + + + + Gets or sets a tenant tags used to match tenants that the deployment will be performed for; specify this argument multiple times to add multiple tenant tags. + + + + + The Octopus Deploy package push runner + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Pushes the specified packages to Octopus Deploy internal repository + + The Octopus server URL + The user's API key + Paths to the packages to be pushed + The settings + + + + The Octopus Deploy release creator runner + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Creates a release for the specified project in OctopusDeploy + + The target project name + The settings + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + The Octopus Deploy Release Deploy runner. This class facilitates deploying existing releases in Octopus Deploy. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Requests a deployment of a specified release to an environment. + + Octopus Server URL + The user's API key + Name of the target project + Environment to deploy to, e.g., Production + Release number to be deployed to + Settings for the deployment + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Possible arguments to pass to Octo.exe for deploying a release. See Octopus Deploy documentation + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether progress of the deployment should be followed. (Sets --waitfordeployment and --norawlog to true.) + + + + + Gets or sets a value indicating whether to force downloading of already installed packages. Default false. + + + + + Gets or sets a value indicating whether to wait synchronously for deployment to finish. + + + + + Gets or sets maximum time (timespan format) that the console session will wait for the deployment to finish (default 00:10:00). + This will not stop the deployment. Requires WaitForDeployment parameter set. + + + + + Gets or sets a value indicating whether to cancel the deployment if the deployment timeout is reached(default false). + + + + + Gets or sets how much time should elapse between deployment status checks(default 00:00:10). + + + + + Gets or sets a value indicating whether to use Guided Failure mode. If not specified, will use default setting from environment. + + + + + Gets or sets list of machines names to target in the deployed environment.If not specified all machines in the environment will be considered. + + + + + Gets or sets a value indicating whether a project is configured to skip packages with already-installed versions, override this setting to force re-deployment (flag, default false). + + + + + Gets or sets a list of steps to be skipped. Takes step names. + + + + + Gets or sets a value indicating whether print the raw log of failed tasks or not. + + + + + Gets or sets a file where to redirect the raw log of failed tasks. + + + + + Gets or sets values for any prompted variables. + + + + + Gets or sets time at which deployment should start (scheduled deployment), specified as any valid DateTimeOffset format, and assuming the time zone is the current local time zone. + + + + + Gets or sets a tenant the deployment will be performed for; specify this argument multiple times to add multiple tenants or use `*` wildcard to deploy to tenants able to deploy. + + + + + Gets or sets a tenant tags used to match tenants that the deployment will be performed for; specify this argument multiple times to add multiple tenant tags. + + + + + Gets or sets the channel to use when getting the release to deploy. + + + + + The Octopus Deploy Promote Release runner. This class facilitates promoting existing releases in Octopus Deploy. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Requests a promotion of a specified release to an environment. + + Octopus Server URL + The user's API key + Name of the target project + Environment to promote from, e.g., Staging + Environment to promote to, e.g., Production + Settings for the deployment + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Contains the common settings used by all commands in . + + + + + Gets or sets the username to use when authenticating with the server + + + + + Gets or sets the password to use when authenticating with the server + + + + + Gets or sets the octopus server url. + + + + + Gets or sets the user's API key. + + + + + Gets or sets the text file of default values + + + + + Gets or sets a value indicating whether the enable debug logging flag is set + + + + + Gets or sets a value indicating whether the ignore SSL errors flag is set + + + + + Gets or sets a value indicating whether the enable service messages flag is set + + + + + Represents the format of an Octopus package. + + + + + NuGet package + + + + + Zip package + + + + + Contains the settings used by OctoPack. + + + + + Gets or sets the version. + + + + + Gets or sets the package format. + + + + + Gets or sets the folder into which the package will be written. Defaults to the current folder. + + + + + Gets or sets the root folder containing files and folders to pack. Defaults to the current folder. + + + + + Gets or sets the author. Only applies to NuGet packages. + + + + + Gets or sets the title. Only applies to NuGet packages. + + + + + Gets or sets the description. Only applies to NuGet packages. + + + + + Gets or sets the release notes. Only applies to NuGet packages. + + + + + Gets or sets the release notes file. Only applies to NuGet packages. + + + + + Gets or sets the file patterns to include. If none are specified, defaults to **. + + + + + Gets or sets a value indicating whether to allow an existing package with the same ID/version to be overwriten. + + + + + Contains settings used by . + + + + + Gets or sets a value indicating whether to overwrite an existing package + + + + + This namespace contain types used + to interact with Roundhouse. + + + + + Defines the recovery model for SQL Server + + + + + Doesn't change the mode + + + + + Does not create backup before migration + + + + + Creates log backup before migration + + + + + Contains functionality related to RoundhousE. + + In order to use the commands for this alias, include the following in your build.cake file to download and + install from NuGet.org, or specify the ToolPath within the class: + + #tool "nuget:?package=roundhouse" + + + + + + + Executes Roundhouse with the given configured settings. + + The context. + The settings. + + + RoundhouseMigrate(new RoundhouseSettings{ + ServerName = "Sql2008R2", + DatabaseName = "AdventureWorks2008R2", + SqlFilesDirectory = "./src/sql" + }); + + + + + + Executes Roundhouse migration to drop the database using the provided settings. + + The context. + The settings. + + + RoundhouseDrop(new RoundhouseSettings{ + ServerName = "Sql2008R2", + DatabaseName = "AdventureWorks2008R2" + }); + + + + + + The Roundhouse console application runner. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Runs Roundhouse with the given settings. + + The settings. + Will drop/delete the database if set to true. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Contains settings used by . + + + + + Gets or sets the server name. + + + The server on which create/migrate should happen. + + + + + Gets or sets the database name. + + + The database you want to create/migrate. + + + + + Gets or sets the connection string. + + + As an alternative to ServerName and Database - You can provide an entire connection string instead. + + + + + Gets or sets the connection string for admin connections. + + + This is used for connecting to master when you may have a different uid and password than normal. + + + + + Gets or sets the timeout (in seconds) for normal connections. + + + This is the timeout when commands are run. This is not for admin commands or restore. + + + + + Gets or sets the timeout (in seconds) for admin connections. + + + This is the timeout when administration commands are run (except for restore, which has its own). + + + + + Gets or sets the sql files directory. + + + The directory where your SQL scripts are. + + + + + Gets or sets the location of the source code repository + + + Path to code repository to be able to correlate versions + + + + + Gets or sets the version file. + + + Path to the file to use for applying version number. Either a .XML file, a .DLL or a .TXT file that a version can be resolved from. + + + + + Gets or sets the XPath to locate version in the . + + + Works in conjunction with an XML version file. + + + + + Gets or sets the folder name for 'alterDatabase' scripts. + + + The name of the folder where you keep your alter database scripts. Read up on token replacement. You will want to use {{DatabaseName}} here instead of specifying a database name. + + + + + Gets or sets the folder name for 'runAfterCreateDatabase' scripts. + + + The name of the folder where you will keep scripts that ONLY run after a database is created. + + + + + Gets or sets the folder name for 'runBeforeUp' scripts. + + + The name of the folder where you keep scripts that you want to run before your update scripts. + + + + + Gets or sets the folder name for 'up' scripts. + + + The name of the folder where you keep your update scripts. + + + + + Gets or sets the folder name for 'runFirstAfterUp' scripts. + + + The name of the folder where you keep any functions, views, or sprocs that are order dependent. If you have a function that depends on a view, you definitely need the view in this folder. + + + + + Gets or sets the folder name for 'functions' scripts. + + + The name of the folder where you keep your functions. + + + + + Gets or sets the folder name for 'views' scripts. + + + The name of the folder where you keep your views. + + + + + Gets or sets the folder name for 'sprocs' scripts. + + + The name of the folder where you keep your stored procedures. + + + + + Gets or sets the folder name for 'indexes' scripts. + + + The name of the folder where you keep your indexes. + + + + + Gets or sets the folder name for 'runAfterOtherAnyTimeScripts' scripts. + + + The name of the folder where you keep scripts that will be run after all of the other any time scripts complete. + + + + + Gets or sets the folder name for 'permissions' scripts. + + + The name of the folder where you keep your permissions scripts. + + + + + Gets or sets the folder name for 'beforeMig' scripts. + + + The name of the folder for scripts to run before migration and outside of a transaction. + + + + + Gets or sets the folder name for 'afterMig' scripts. + + + The name of the folder for scripts to run before migration and outside of a transaction. + + + + + Gets or sets the schema name to use instead of [RoundhousE]. + + + The schema where RH stores its tables. + + + + + Gets or sets the environment for RH to be scoped. + + + This allows RH to be environment aware and only run scripts that are in a particular environment based on the namingof the script. LOCAL.something**.ENV.**sql would only be run in the LOCAL environment. + + + + + Gets or sets a value indicating whether perform a restore. + + + This instructs RH to do a restore (with the parameter) of a database before running migration scripts. + + + + + Gets or sets the restore file path. + + + File path of back when Restore is set to true + + + + + Gets or sets the custom database creation script. + + + This instructs RH to use this script for creating a database instead of the default based on the SQLType. + + + + + Gets or sets the output path. + + + Path to where migration artifacts are stored. + + + + + Gets or sets a value indicating whether to warn when previously run scripts have changed. + + + Instructs RH to execute changed one time scripts (DDL/DML in 'Up'/) that have previously been run against the database instead of failing. A warning is logged for each one time scripts that is rerun. + + + + + Gets or sets a value indicating whether to keep RH silent. + + + Tells RH not to ask for any input when it runs. + + + + + Gets or sets database type. + + + Database Type (fully qualified class name implementing [roundhouse.sql.Database, roundhouse]) + + + + + Gets or sets a value indicating whether to drop the DB. + + + This instructs RH to remove a database and not run migration scripts. + + + + + Gets or sets a value indicating whether to use transactions. + + + This instructs RH to run inside of a transaction. + + + + + Gets or sets SQL Server recovery mode. + + + This sets the recovery model for SQL Server during migration. (NoChange, Simple, Full) + + + + + Gets or sets a value indicating whether to perform a dry run. + + + This instructs RH to log what would have run, but not to actually run anything against the database. Use this option if you are trying to figure out what RH is going to do. + + + + + Gets or sets a value indicating whether to create a database if it does not exist. + + + This instructs RH to not create a database if it does not exists. Defaults to false. + + + + + Gets or sets a value indicating whether to disable output of backup, items ran, permissions dumps, etc. + + + Disable output of backups, items ran, permissions dumps, etc. Log files are kept. Useful for example in CI environment. Defaults to false. + + + + + Gets or sets a value indicating whether to create an insert for its recording tables, but not run anything. + + + This instructs RH to create an insert for its recording tables, but not to actually run anything against the database. Use this option if you already have scripts that have been run through other means. Defaults to false. + + + + + Gets or sets a value indicating whether to write debug messages. + + + This instructs RH to write out all messages. Defaults to false. + + + + + Gets or sets a value indicating whether to execute any time scripts. + + + This instructs RH to run any time scripts every time it is run. Defaults to false. + + + + + Gets or sets a value indicating whether to perform token replacement. + + + This instructs RH to not perform token replacement {{somename}}. Defaults to false. + + + + + Gets or sets a value indicating whether to search all subdirectories. + + + Each Migration folder's subdirectories are traversed by default. This option pulls back scripts from the main directory and all subdirectories at once. Defaults to false. + + + + + This namespace contain types used for + signing assemblies with SignTool. + + + + + Represents a sign tool resolver. + + + This exists only to be able to test the sign tool. + Do not use this interface since it will be removed. + + + + + Resolves the path to the sign tool. + + The path to the sign tool. + + + + Digest algorithm for SignTool + + + + + SHA-1 digest algorithm + + + + + SHA-256 digest algorithm. + + + + + Contains functionality related to signing assemblies with PFX certificates using SignTool. + + In order to use the commands for this alias, SignTool will need to be installed on the machine where + the Cake script is being executed. This is typically achieved by installing the correct Windows SDK. + + + + + + Signs the specified assembly. + + The context. + The target assembly. + The settings. + + + Task("Sign") + .IsDependentOn("Clean") + .IsDependentOn("Restore") + .IsDependentOn("Build") + .Does(() => + { + var file = "Core.dll"; + Sign(file, new SignToolSignSettings { + TimeStampUri = new Uri("http://timestamp.digicert.com"), + CertPath = "digitalcertificate.pfx", + Password = "TopSecret" + }); + }); + + + + + + Signs the specified assembly. + + The context. + The target assembly. + The settings. + + + Task("Sign") + .IsDependentOn("Clean") + .IsDependentOn("Restore") + .IsDependentOn("Build") + .Does(() => + { + var file = new FilePath("Core.dll"); + Sign(file, new SignToolSignSettings { + TimeStampUri = new Uri("http://timestamp.digicert.com"), + CertPath = "digitalcertificate.pfx", + Password = "TopSecret" + }); + }); + + + + + + Signs the specified assemblies. + + The context. + The target assembly. + The settings. + + + Task("Sign") + .IsDependentOn("Clean") + .IsDependentOn("Restore") + .IsDependentOn("Build") + .Does(() => + { + var files = new string[] { "Core.dll", "Common.dll" }; + Sign(files, new SignToolSignSettings { + TimeStampUri = new Uri("http://timestamp.digicert.com"), + CertPath = "digitalcertificate.pfx", + Password = "TopSecret" + }); + }); + + + + + + Signs the specified assemblies. + + The context. + The target assembly. + The settings. + + + Task("Sign") + .IsDependentOn("Clean") + .IsDependentOn("Restore") + .IsDependentOn("Build") + .Does(() => + { + var files = GetFiles(solutionDir + "/**/bin/" + configuration + "/**/*.exe"); + Sign(files, new SignToolSignSettings { + TimeStampUri = new Uri("http://timestamp.digicert.com"), + CertPath = "digitalcertificate.pfx", + Password = "TopSecret" + }); + }); + + + + + + The SignTool SIGN assembly runner. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The registry. + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The registry. + The resolver. + + + + Signs the specified assemblies. + + The assembly paths. + The settings. + + + + Gets the name of the tool. + + + The name of the tool (SignTool SIGN). + + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Gets alternative file paths which the tool may exist in + + The settings. + The default tool path. + + + + Contains settings used by . + + + + + Gets or sets the timestamp server's URL. + + + + + Gets or sets the thumbprint for locating a certificate in the store. + + + + + Gets or sets the name of the subject of the signing certificate. This value can be a substring of the entire subject name. + + + + + Gets or sets the PFX certificate path. + + + + + Gets or sets the PFX certificate password. + + + + + Gets or sets the signed content's description. + + + + + Gets or sets the signed content's expanded description URL. + + + + + Gets or sets the file digest algorithm + + + + + Gets or sets the timestamp digest algorithm + + + + + Gets or sets a value indicating whether the signature should be appended + + + + + This namespace contain types used to interact with WiX. + + + + + The architecture for the package. + + + + + Architecture: x86_64 + + + + + Architecture: x86 + + + + + Architecture: Itanium + + + + + The WiX Candle runner. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Runs Candle with the specified source files and settings. + + The source files (.wxs) to compile. + The settings. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Contains settings used by . + + + + + Gets or sets a value indicating which architecture to build the MSI package for. + + + + + Gets or sets the pre processor defines. + + + + + Gets or sets the WiX extensions to use. + + + + + Gets or sets a value indicating whether FIPS compliant algorithms should be used. + + + true if FIPS compliant algorithms should be used, otherwise false. + + + + + Gets or sets a value indicating whether to show the logo information. + + + + + Gets or sets the output directory for the object files. + + + + + Gets or sets a value indicating whether to show pedantic messages. + + + + + Gets or sets a value indicating whether to show source trace for errors, warnings and verbose messages. + + + + + Gets or sets a value indicating whether to show verbose output. + + + + + The WiX Heat runner. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool service. + + + + Runs the Wix Heat runner for the specified directory path. + + The directory path. + The output file. + The WiX harvest type. + The settings. + + + + Runs the Wix Heat runner for the specified directory path. + + The object file. + The output file. + The WiX harvest type. + The settings. + + + + Runs the Wix Heat runner for the specified directory path. + + The harvest target. + The output file. + The WiX harvest type. + The settings. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Contains settings used by . + + + + + Gets or sets the WiX extensions to use. + + + + + Gets or sets a value indicating whether [no logo]. + + + true if [no logo]; otherwise, false. + + + + + Gets or sets the suppress specific warnings. + + + The suppress specific warnings. + + + + + Gets or sets the treat specific warnings as errors. + + + The treat specific warnings as errors. + + + + + Gets or sets a value indicating whether output is verbose. + + + true if verbose; otherwise, false. + + + + + Gets or sets a value indicating whether to auto generate at compile time. + + + true if [autogenerated unique identifier]; otherwise, false. + + + + + Gets or sets a value indicating whether all components are given a guid. + + + true if [generate unique identifier]; otherwise, false. + + + + + Gets or sets the output file. + + + The output file. + + + + + Gets or sets a value indicating whether to suppress the + generation of fragments for directories and components. + + + true if [suppress fragments]; otherwise, false. + + + + + Gets or sets a value indicating whether to suppress unique identifiers + for files, components, and directories. + + + true if [suppress unique ids]; otherwise, false. + + + + + Gets or sets the transform to apply to harvested files. + + + The transform. + + + + + Gets or sets the file. + + + The file. + + + + + Gets or sets the name of the component group. + + + The name of the component group. + + + + + Gets or sets the directory reference identifier for generated directory elements. + + + The directory reference identifier. + + + + + Gets or sets the preprocessor variable. + + + The preprocessor variable. + + + + + Gets or sets a value indicating whether generate binder variables instead + of preprocessor variables. + + + true if [generate binder variables]; otherwise, false. + + + + + Gets or sets a value indicating whether the COM elements. + + + true if [suppress COM]; otherwise, false. + + + + + Gets or sets a value indicating whether [suppress registry]. + + + true if [suppress registry]; otherwise, false. + + + + + Gets or sets a value indicating whether [suppress root directory]. + + + true if [suppress root directory]; otherwise, false. + + + + + Gets or sets the configuration to set when harvesting the project. + + + The configuration. + + + + + Gets or sets the overridden directory identifier for generated directory elements. + + + The directory identifier. + + + + + Gets or sets the type of elements to generate. + + + The generate. + + + + + Gets or sets a value indicating whether to generate guids without curly braces. + + + true if generate guids without curly braces; otherwise, false. + + + + + Gets or sets a value indicating whether to keep empty directories. + + + true if keep empty directories; otherwise, false. + + + + + Gets or sets the platform to set when harvesting the project. + + + The platform. + + + + + Gets or sets the output group of Visual Studio project. + + + The output group. + + + + + Gets or sets the overridden project name to use in variables. + + + The name of the project. + + + + + Gets or sets the template to use when harvesting. + + + The template. + + + + + Gets or sets the indentation multiplier, overrides default of 4. + + + The indent. + + + + + Gets or sets a value indicating whether to suppress VB6 COM registration entries. + + + true if suppress VB6 COM registration entries; otherwise, false. + + + + + Type of elements to generate + + + + + Generates components + + + + + Generates a container + + + + + Generates a payload group + + + + + Generates a layout + + + + + The type of object file to harvest from. + + + + + Harvest a directory. + + + + + Harvest a file + + + + + Harvest outputs of a Visual Studio project. + + + + + Harvest an IIS web site. + + + + + Harvest performance counters from a category. + + + + + Harvest registry information from a reg file. + + + + + The Output Group of Visual Studio project + + + + + OutputGroup: Binaries + + + + + OutputGroup: Symbols + + + + + OutputGroup: Documents + + + + + OutputGroup: Satellites + + + + + OutputGroup: Sources + + + + + OutputGroup: Content + + + + + Template type to use for harvesting. + + + + + TemplateType: Fragment + + + + + TemplateType: Module + + + + + TemplateType: Product + + + + + The WiX Light runner. + + + + + Initializes a new instance of the class. + + The file system. + The Cake environment. + The process runner. + The tool locator. + + + + Runs Light with the specified input object files and settings. + + The object files (.wixobj). + The settings. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Contains settings used by the . + + + + + Gets or sets the defined WiX variables. + + + + + Gets or sets the WiX extensions to use. + + + + + Gets or sets raw command line arguments to pass through to the linker. + + + + + Gets or sets a value indicating whether to show the logo information. + + + + + Gets or sets the path to the output file (i.e. the resulting MSI package). + + + + + Contains functionality related to WiX. + + In order to use the commands for this alias, include the following in your build.cake file to download and + install from NuGet.org, or specify the ToolPath within the appropriate settings class: + + #tool "nuget:?package=WiX" + + + + + + + Compiles all .wxs sources matching the specified pattern. + + + + CandleSettings settings = new CandleSettings { + Architecture = Architecture.X64, + Verbose = true + }; + WiXCandle("./src/*.wxs", settings); + + + The context. + The globbing pattern. + The settings. + + + + Compiles all .wxs sources in the provided source files. + + + + var files = GetFiles("./src/*.wxs"); + CandleSettings settings = new CandleSettings { + Architecture = Architecture.X64, + Verbose = true + }; + WiXCandle(files, settings); + + + The context. + The source files. + The settings. + + + + Links all .wixobj files matching the specified pattern. + + + + LightSettings settings = new LightSettings { + RawArguments = "-O1 -pedantic -v" + }; + WiXLight("./src/*.wixobj", settings); + + + The context. + The globbing pattern. + The settings. + + + + Links all .wixobj files in the provided object files. + + + + var files = GetFiles("./src/*.wxs"); + LightSettings settings = new LightSettings { + RawArguments = "-O1 -pedantic -v" + }; + WiXLight(files, settings); + + + The context. + The object files. + The settings. + + + + Harvests files in the provided object files. + + + + DirectoryPath harvestDirectory = Directory("./src"); + var filePath = new FilePath("Wix.Directory.wxs"); + WiXHeat(harvestDirectory, filePath, WiXHarvestType.Dir); + + + The context. + The object files. + The output file. + The WiX harvest type. + + + + Harvests files in the provided directory path. + + + + DirectoryPath harvestDirectory = Directory("./src"); + var filePath = File("Wix.Directory.wxs"); + Information(MakeAbsolute(harvestDirectory).FullPath); + WiXHeat(harvestDirectory, filePath, WiXHarvestType.Dir, new HeatSettings { NoLogo = true }); + + + The context. + The directory path. + The output file. + The WiX harvest type. + The settings. + + + + Harvests from the desired files. + + + + var harvestFile = File("./tools/Cake/Cake.Core.dll"); + var filePath = File("Wix.File.wxs"); + WiXHeat(harvestFile, filePath, WiXHarvestType.File); + + + The context. + The object file. + The output file. + The WiX harvest type. + + + + Harvests from the desired files. + + + + var harvestFiles = File("./tools/Cake/*.dll"); + var filePath = File("Wix.File.wxs"); + WiXHeat(harvestFiles, filePath, WiXHarvestType.File, new HeatSettings { NoLogo = true }); + + + The context. + The object file. + The output file. + The WiX harvest type. + The settings. + + + + Harvests files for a website or performance. + + + + var filePath = File("Wix.Website.wxs"); + WiXHeat("Default Web Site", filePath, WiXHarvestType.Website); + + + The context. + The harvest target. + The output file. + The WiX harvest type. + + + + Harvests files for a website or performance. + + + + var filePath = File("Wix.Website.wxs"); + WiXHeat("Default Web Site", filePath, WiXHarvestType.Website, new HeatSettings { NoLogo = true }); + + + The context. + The harvest target. + The output file. + The WiX harvest type. + The settings. + + + + This namespace contain types used + to interact with XBuild. + + + + + Contains functionality related to XBuild. + + In order to use the commands for this alias, XBuild (which is part of Mono) will already have to be installed on the machine the + Cake Script is being executed. + + + + + + Builds the specified solution using XBuild. + + The context. + The solution to build. + + + XBuild("./src/Cake.sln"); + + + + + + Builds the specified solution using XBuild. + + The context. + The solution to build. + The settings configurator. + + + XBuild("./src/Cake.sln", configurator => + configurator.SetConfiguration("Debug") + .SetVerbosity(Verbosity.Minimal) + .UseToolVersion(XBuildToolVersion.NET40)); + + + + + + Builds the specified solution using XBuild. + + The context. + The solution to build. + The settings. + + + XBuild("./src/Cake.sln", new XBuildSettings { + Verbosity = Verbosity.Minimal, + ToolVersion = XBuildToolVersion.NET40, + Configuration = "Release" + }); + + + + + + The XBuild runner. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The runner. + The tool locator. + + + + Runs XBuild with the specified settings. + + The solution to build. + The settings. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Gets alternative file paths which the tool may exist in + + The settings. + The default tool path. + + + + Contains settings used by . + + + + + Gets the targets. + + The targets. + + + + Gets the properties. + + The properties. + + + + Gets or sets the tool version. + + The tool version. + + + + Gets or sets the configuration. + + The configuration. + + + + Gets or sets the amount of information to display in the build log. + Each logger displays events based on the verbosity level that you set for that logger. + + The build log verbosity. + + + + Initializes a new instance of the class. + + + + + Contains functionality related to XBuild settings. + + + + + Adds a XBuild target to the configuration. + + The settings. + The XBuild target. + The same instance so that multiple calls can be chained. + + + + Sets the tool version. + + The settings. + The version. + The same instance so that multiple calls can be chained. + + + + Adds a property to the configuration. + + The settings. + The property name. + The property values. + The same instance so that multiple calls can be chained. + + + + Sets the configuration. + + The settings. + The configuration. + The same instance so that multiple calls can be chained. + + + + Sets the build log verbosity. + + The settings. + The build log verbosity. + The same instance so that multiple calls can be chained. + + + + Represents a XBuild tool version. + + + + + The highest available XBuild tool version. + + + + + XBuild tool version: .NET 2.0 + + + + + XBuild tool version: .NET 3.0 + + + + + XBuild tool version: .NET 3.5 + + + + + XBuild tool version: .NET 4.0 + + + + + This namespace contain types used to interact with XUnit. + + + + + Represents XUnit2's options for parallel test execution + + + + + Turn off all parallelization + + + + + Only parallelize collections + + + + + Only parallelize assemblies + + + + + Parallelize assemblies and collections. + + + + + Contains functionality related to running xunit tests. + + In order to use the commands for this alias, include the following in your build.cake file to download and + install from NuGet.org, or specify the ToolPath within the class: + + #tool "nuget:?package=xunit.runner.console" + + + + + + + Runs all xUnit.net v2 tests in the assemblies matching the specified pattern. + + The context. + The pattern. + + + XUnit2("./src/**/bin/Release/*.Tests.dll"); + + + + + + Runs all xUnit.net v2 tests in the assemblies matching the specified pattern. + + The context. + The pattern. + The settings. + + + XUnit2("./src/**/bin/Release/*.Tests.dll", + new XUnit2Settings { + Parallelism = ParallelismOption.All, + HtmlReport = true, + NoAppDomain = true, + OutputDirectory = "./build" + }); + + + + + + Runs all xUnit.net v2 tests in the specified assemblies. + + The context. + The assemblies. + + + XUnit2(new []{ + "./src/Cake.Common.Tests/bin/Release/Cake.Common.Tests.dll", + "./src/Cake.Core.Tests/bin/Release/Cake.Core.Tests.dll", + "./src/Cake.NuGet.Tests/bin/Release/Cake.NuGet.Tests.dll", + "./src/Cake.Tests/bin/Release/Cake.Tests.dll" + }); + + + + + + Runs all xUnit.net tests in the specified assemblies. + + The context. + The assemblies. + + + var testAssemblies = GetFiles("./src/**/bin/Release/*.Tests.dll"); + XUnit2(testAssemblies); + + + + + + Runs all xUnit.net v2 tests in the specified assemblies. + + The context. + The assemblies. + The settings. + + + XUnit2(new []{ + "./src/Cake.Common.Tests/bin/Release/Cake.Common.Tests.dll", + "./src/Cake.Core.Tests/bin/Release/Cake.Core.Tests.dll", + "./src/Cake.NuGet.Tests/bin/Release/Cake.NuGet.Tests.dll", + "./src/Cake.Tests/bin/Release/Cake.Tests.dll" + }, + new XUnit2Settings { + Parallelism = ParallelismOption.All, + HtmlReport = true, + NoAppDomain = true, + OutputDirectory = "./build" + }); + + + + + + Runs all xUnit.net v2 tests in the specified assemblies. + + The context. + The assemblies. + The settings. + + + var testAssemblies = GetFiles("./src/**/bin/Release/*.Tests.dll"); + XUnit2(testAssemblies, + new XUnit2Settings { + Parallelism = ParallelismOption.All, + HtmlReport = true, + NoAppDomain = true, + OutputDirectory = "./build" + }); + + + + + + The xUnit.net v2 test runner. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The runner. + The tool locator. + + + + Runs the tests in the specified assembly. + + The assembly paths. + The settings. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Contains settings used by . + + + + + Gets or sets a value indicating whether tests should be run as a shadow copy. + Default value is true. + + + true if tests should be run as a shadow copy; otherwise, false. + + + + + Gets or sets the output directory. + + The output directory. + + + + Gets or sets a value indicating whether an NUnit style XML report should be generated. + + + true if an NUnit Style XML report should be generated; otherwise, false. + + + + + Gets or sets a value indicating whether an XML report should be generated. + + + true if an XML report should be generated; otherwise, false. + + + + + Gets or sets a value indicating whether an xUnit.net v1 style XML report should be generated. + + + + + Gets or sets a value indicating whether an HTML report should be generated. + + + true if an HTML report should be generated; otherwise, false. + + + + + Gets or sets the name that should be used for the HTML and XML reports. + + The custom report name. + + + + Gets or sets a value indicating whether to not use app domains to run test code. + + + true to not use app domains to run test code; otherwise, false. + + + + + Gets or sets the parallelism option. + Corresponds to the -parallel command line switch. + + + The parallelism option. + + + + + Gets or sets a value indicating whether to run tests in using x86 test runner. + + + true to run tests with the x86 test runner; otherwise, false. + + + + + Gets or sets the maximum thread count for collection parallelization. + + + null (default); + 0: run with unbounded thread count; + >0: limit task thread pool size to value; + + value < 0 + + + + Gets the traits to include. + + + Only run tests with matching name/value traits. + If more than one is specified, it acts as an OR operation. + + + The traits to include. + + + + + Gets the traits to exclude. + + + Do not run tests with matching name/value traits. + If more than one is specified, it acts as an AND operation. + + + The traits to exclude. + + + + + Gets the namespaces to include. + + + Runs all methods in a given namespace (i.e., 'MyNamespace.MySubNamespace') + If more than one is specified, it acts as an OR operation. + + + The namespaces to include + + + + + Gets the class names to include. + + + Runs all methods in a given test class (should be fully specified; i.e., 'MyNamespace.MyClass') + If more than one is specified, it acts as an OR operation. + + + The class names to include + + + + + Gets the test methods to include. + + + Runs the given test methods (should be fully specified; i.e., 'MyNamespace.MyClass.MyTestMethod') + If more than one is specified, it acts as an OR operation. + + + The namespaces to include + + + + + Initializes a new instance of the class. + + + + + Contains functionality related to XUnit2 settings. + + + + + Adds a trait to the settings, to include in test execution. + + The settings. + The trait name. + The trait values. + The same instance so that multiple calls can be chained. + + + + Adds a trait to the settings, to exclude in test execution. + + The settings. + The trait name. + The trait values. + The same instance so that multiple calls can be chained. + + + + Adds a namespace to the settings, to include in test execution. Namespace should be fully qualified; i.e., MyNameSpace.MySubNamespace + + The settings. + The namespace to include. + The same instance so that multiple calls can be chained. + + + + Adds a class name to the settings, to include in test execution. Class name should be fully qualified; i.e., MyNameSpace.MyClassName + + The settings. + The class name to include. + The same instance so that multiple calls can be chained. + + + + Adds a method name to the settings, to include in test execution. Method name should be fully qualified; i.e., MyNameSpace.MyClassName.MyMethod + + The settings. + The method name to include. + The same instance so that multiple calls can be chained. + + + + Contains functionality related to running xunit tests. + + In order to use the commands for this alias, include the following in your build.cake file to download and + install from NuGet.org, or specify the ToolPath within the class: + + #tool "nuget:?package=xunit.runner.console&version=2.2.0" + + + + + + + Runs all xUnit.net tests in the assemblies matching the specified pattern. + + The context. + The pattern. + + + XUnit("./src/**/bin/Release/*.Tests.dll"); + + + + + + Runs all xUnit.net tests in the assemblies matching the specified pattern. + + The context. + The pattern. + The settings. + + + XUnit("./src/**/bin/Release/*.Tests.dll", + new XUnitSettings { + HtmlReport = true, + OutputDirectory = "./build" + }); + + + + + + Runs all xUnit.net tests in the specified assemblies. + + The context. + The assemblies. + + + XUnit(new []{ + "./src/Cake.Common.Tests/bin/Release/Cake.Common.Tests.dll", + "./src/Cake.Core.Tests/bin/Release/Cake.Core.Tests.dll", + "./src/Cake.NuGet.Tests/bin/Release/Cake.NuGet.Tests.dll", + "./src/Cake.Tests/bin/Release/Cake.Tests.dll" + }); + + + + + + Runs all xUnit.net tests in the specified assemblies. + + The context. + The assemblies. + + + var testAssemblies = GetFiles("./src/**/bin/Release/*.Tests.dll"); + XUnit(testAssemblies); + + + + + + Runs all xUnit.net tests in the specified assemblies. + + The context. + The assemblies. + The settings. + + + XUnit(new []{ + "./src/Cake.Common.Tests/bin/Release/Cake.Common.Tests.dll", + "./src/Cake.Core.Tests/bin/Release/Cake.Core.Tests.dll", + "./src/Cake.NuGet.Tests/bin/Release/Cake.NuGet.Tests.dll", + "./src/Cake.Tests/bin/Release/Cake.Tests.dll" + }, + new XUnitSettings { + HtmlReport = true, + OutputDirectory = "./build" + }); + + + + + + Runs all xUnit.net tests in the specified assemblies. + + The context. + The assemblies. + The settings. + + + var testAssemblies = GetFiles("./src/**/bin/Release/*.Tests.dll"); + XUnit(testAssemblies, + new XUnitSettings { + HtmlReport = true, + OutputDirectory = "./build" + }); + + + + + + The xUnit.net (v1) test runner. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The runner. + The tool locator. + + + + Runs the tests in the specified assembly. + + The assembly path. + The settings. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Contains settings used by . + + + + + Gets or sets a value indicating whether tests should be run as a shadow copy. + Default value is true. + + + true if tests should be run as a shadow copy; otherwise, false. + + + + + Gets or sets the output directory. + + The output directory. + + + + Gets or sets a value indicating whether an XML report should be generated. + + + true if an XML report should be generated; otherwise, false. + + + + + Gets or sets a value indicating whether an HTML report should be generated. + + + true if an HTML report should be generated; otherwise, false. + + + + + Gets or sets a value indicating whether or not output running test count. + + + true if running test count should be outputted; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + This namespace contain types used to + interact with XML documents. + + + + + The Chocolatey package pinner used to pin Chocolatey packages. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The Chocolatey tool resolver. + + + + Pins Chocolatey packages using the specified package id and settings. + + The API key. + The Server URL where the API key is valid. + The settings. + + + + Contains settings used by . + + + + + Gets or sets a value indicating whether to run in debug mode. + + The debug flag + + + + Gets or sets a value indicating whether to run in verbose mode. + + The verbose flag. + + + + Gets or sets a value indicating whether to run in forced mode. + + The force flag + + + + Gets or sets a value indicating whether to run in noop mode. + + The noop flag. + + + + Gets or sets a value indicating whether to run in limited output mode. + + The limit output flag + + + + Gets or sets the execution timeout value. + + The execution timeout + Default is 2700 seconds + + + + Gets or sets the location of the download cache. + + The download cache location + + + + Gets or sets a value indicating whether to run in allow unofficial mode. + + The allow unofficial flag + + + + Contains functionality for working with Chocolatey. + + In order to use the commands for this alias, Chocolatey will require to be installed on the machine where the build script + is being run. See this page for details on how + Chocolatey can be installed. + + + + + + Creates a Chocolatey package using the specified Nuspec file. + + The context. + The nuspec file path. + The settings. + + + var chocolateyPackSettings = new ChocolateyPackSettings { + Id = "TestChocolatey", + Title = "The tile of the package", + Version = "0.0.0.1", + Authors = new[] {"John Doe"}, + Owners = new[] {"Contoso"}, + Summary = "Excellent summary of what the package does", + Description = "The description of the package", + ProjectUrl = new Uri("https://github.com/SomeUser/TestChocolatey/"), + PackageSourceUrl = new Uri("https://github.com/SomeUser/TestChocolatey/"), + ProjectSourceUrl = new Uri("https://github.com/SomeUser/TestChocolatey/"), + DocsUrl = new Uri("https://github.com/SomeUser/TestChocolatey/"), + MailingListUrl = new Uri("https://github.com/SomeUser/TestChocolatey/"), + BugTrackerUrl = new Uri("https://github.com/SomeUser/TestChocolatey/"), + Tags = new [] {"Cake", "Script", "Build"}, + Copyright = "Some company 2015", + LicenseUrl = new Uri("https://github.com/SomeUser/TestChocolatey/blob/master/LICENSE.md"), + RequireLicenseAcceptance= false, + IconUrl = new Uri("http://cdn.rawgit.com/SomeUser/TestChocolatey/master/icons/testchocolatey.png"), + ReleaseNotes = new [] {"Bug fixes", "Issue fixes", "Typos"}, + Files = new [] { + new ChocolateyNuSpecContent {Source = "bin/TestChocolatey.dll", Target = "bin"}, + }, + Debug = false, + Verbose = false, + Force = false, + Noop = false, + LimitOutput = false, + ExecutionTimeout = 13, + CacheLocation = @"C:\temp", + AllowUnofficial = false + }; + + ChocolateyPack("./nuspec/TestChocolatey.nuspec", chocolateyPackSettings); + + + + + + Creates Chocolatey packages using the specified Nuspec files. + + The context. + The nuspec file paths. + The settings. + + + var chocolateyPackSettings = new ChocolateyPackSettings { + Id = "TestChocolatey", + Title = "The tile of the package", + Version = "0.0.0.1", + Authors = new[] {"John Doe"}, + Owners = new[] {"Contoso"}, + Summary = "Excellent summary of what the package does", + Description = "The description of the package", + ProjectUrl = new Uri("https://github.com/SomeUser/TestChocolatey/"), + PackageSourceUrl = new Uri("https://github.com/SomeUser/TestChocolatey/"), + ProjectSourceUrl = new Uri("https://github.com/SomeUser/TestChocolatey/"), + DocsUrl = new Uri("https://github.com/SomeUser/TestChocolatey/"), + MailingListUrl = new Uri("https://github.com/SomeUser/TestChocolatey/"), + BugTrackerUrl = new Uri("https://github.com/SomeUser/TestChocolatey/"), + Tags = new [] {"Cake", "Script", "Build"}, + Copyright = "Some company 2015", + LicenseUrl = new Uri("https://github.com/SomeUser/TestChocolatey/blob/master/LICENSE.md"), + RequireLicenseAcceptance= false, + IconUrl = new Uri("http://cdn.rawgit.com/SomeUser/TestChocolatey/master/icons/testchocolatey.png"), + ReleaseNotes = new [] {"Bug fixes", "Issue fixes", "Typos"}, + Files = new [] { + new ChocolateyNuSpecContent {Source = "bin/TestChocolatey.dll", Target = "bin"}, + }, + Debug = false, + Verbose = false, + Force = false, + Noop = false, + LimitOutput = false, + ExecutionTimeout = 13, + CacheLocation = @"C:\temp", + AllowUnofficial = false + }; + + var nuspecFiles = GetFiles("./**/*.nuspec"); + ChocolateyPack(nuspecFiles, chocolateyPackSettings); + + + + + + Creates a Chocolatey package using the specified settings. + + The context. + The settings. + + + var chocolateyPackSettings = new ChocolateyPackSettings { + Id = "TestChocolatey", + Title = "The tile of the package", + Version = "0.0.0.1", + Authors = new[] {"John Doe"}, + Owners = new[] {"Contoso"}, + Summary = "Excellent summary of what the package does", + Description = "The description of the package", + ProjectUrl = new Uri("https://github.com/SomeUser/TestChocolatey/"), + PackageSourceUrl = new Uri("https://github.com/SomeUser/TestChocolatey/"), + ProjectSourceUrl = new Uri("https://github.com/SomeUser/TestChocolatey/"), + DocsUrl = new Uri("https://github.com/SomeUser/TestChocolatey/"), + MailingListUrl = new Uri("https://github.com/SomeUser/TestChocolatey/"), + BugTrackerUrl = new Uri("https://github.com/SomeUser/TestChocolatey/"), + Tags = new [] {"Cake", "Script", "Build"}, + Copyright = "Some company 2015", + LicenseUrl = new Uri("https://github.com/SomeUser/TestChocolatey/blob/master/LICENSE.md"), + RequireLicenseAcceptance= false, + IconUrl = new Uri("http://cdn.rawgit.com/SomeUser/TestChocolatey/master/icons/testchocolatey.png"), + ReleaseNotes = new [] {"Bug fixes", "Issue fixes", "Typos"}, + Files = new [] { + new ChocolateyNuSpecContent {Source = "bin/TestChocolatey.dll", Target = "bin"}, + }, + Debug = false, + Verbose = false, + Force = false, + Noop = false, + LimitOutput = false, + ExecutionTimeout = 13, + CacheLocation = @"C:\temp", + AllowUnofficial = false + }; + + ChocolateyPack(chocolateyPackSettings); + + + + + + Installs a Chocolatey package. + + The context. + The id of the package to install. + + + ChocolateyInstall("MyChocolateyPackage"); + + + + + + Installs a Chocolatey package using the specified settings. + + The context. + The id of the package to install. + The settings. + + + ChocolateyInstall("MyChocolateyPackage", new ChocolateyInstallSettings { + Source = true, + Version = "1.2.3", + Prerelease = false, + Forcex86 = false, + InstallArguments = "arg1", + OverrideArguments = false, + NotSilent = false, + PackageParameters = "param1", + AllowDowngrade = false, + SideBySide = false, + IgnoreDependencies = false, + ForceDependencies = false, + SkipPowerShell = false, + User = "user", + Password = "password", + IgnoreChecksums = false, + Debug = false, + Verbose = false, + Force = false, + Noop = false, + LimitOutput = false, + ExecutionTimeout = 13, + CacheLocation = @"C:\temp", + AllowUnofficial = false + }); + + + + + + Installs Chocolatey packages using the specified package configuration. + + The context. + The package configuration to install. + + + ChocolateyInstallFromConfig("./tools/packages.config"); + + + + + + Installs Chocolatey packages using the specified package configuration and settings. + + The context. + The package configuration to install. + The settings. + + + ChocolateyInstallFromConfig("./tools/packages.config", new ChocolateyInstallSettings { + Source = true, + Version = "1.2.3", + Prerelease = false, + Forcex86 = false, + InstallArguments = "arg1", + OverrideArguments = false, + NotSilent = false, + PackageParameters = "param1", + AllowDowngrade = false, + SideBySide = false, + IgnoreDependencies = false, + ForceDependencies = false, + SkipPowerShell = false, + User = "user", + Password = "password", + IgnoreChecksums = false, + Debug = false, + Verbose = false, + Force = false, + Noop = false, + LimitOutput = false, + ExecutionTimeout = 13, + CacheLocation = @"C:\temp", + AllowUnofficial = false + }); + + + + + + Uninstalls a Chocolatey package. + + The context. + The id of the package to uninstall. + + + ChocolateyUninstall("MyChocolateyPackage"); + + + + + + Uninstalls a Chocolatey package using the specified settings. + + The context. + The id of the package to uninstall. + The settings. + + + ChocolateyUninstall("MyChocolateyPackage", new ChocolateyUninstallSettings { + Source = true, + Version = "1.2.3", + UninstallArguments = "arg1", + OverrideArguments = false, + NotSilent = false, + PackageParameters = "param1", + SideBySide = false, + IgnoreDependencies = false, + ForceDependencies = false, + SkipPowerShell = false, + Debug = false, + Verbose = false, + FailOnStandardError = false, + UseSystemPowershell = false, + AllVersions = false, + Force = false, + Noop = false, + LimitOutput = false, + ExecutionTimeout = 13, + CacheLocation = @"C:\temp", + AllowUnofficial = false, + GlobalArguments = false, + GlobalPackageParameters = false, + IgnorePackageExitCodes = false, + UsePackageExitCodes = false, + UseAutoUninstaller = false, + SkipAutoUninstaller = false, + FailOnAutoUninstaller = false, + IgnoreAutoUninstaller = false + }); + + + + + + Uninstalls a Chocolatey package. + + The context. + The ids of the packages to uninstall. + + + ChocolateyUninstall("MyChocolateyPackage"); + + + + + + Uninstalls Chocolatey packages using the specified settings. + + The context. + The ids of the packages to uninstall. + The settings. + + + ChocolateyUninstall("MyChocolateyPackage", new ChocolateyUninstallSettings { + Source = true, + Version = "1.2.3", + UninstallArguments = "arg1", + OverrideArguments = false, + NotSilent = false, + PackageParameters = "param1", + SideBySide = false, + IgnoreDependencies = false, + ForceDependencies = false, + SkipPowerShell = false, + Debug = false, + Verbose = false, + FailOnStandardError = false, + UseSystemPowershell = false, + AllVersions = false, + Force = false, + Noop = false, + LimitOutput = false, + ExecutionTimeout = 13, + CacheLocation = @"C:\temp", + AllowUnofficial = false, + GlobalArguments = false, + GlobalPackageParameters = false, + IgnorePackageExitCodes = false, + UsePackageExitCodes = false, + UseAutoUninstaller = false, + SkipAutoUninstaller = false, + FailOnAutoUninstaller = false, + IgnoreAutoUninstaller = false + }); + + + + + + Pins a Chocolatey package using the specified settings. + + The context. + The name. + The settings. + + + ChocolateyPin("MyChocolateyPackage", new ChocolateyPinSettings { + Version = "1.2.3", + Debug = false, + Verbose = false, + Force = false, + Noop = false, + LimitOutput = false, + ExecutionTimeout = 13, + CacheLocation = @"C:\temp", + AllowUnofficial = false + }); + + + + + + Sets the Api Key for a Chocolatey Source using the specified settings. + + The context. + The API Key. + The source. + The settings. + + + ChocolateyApiKey("myApiKey", "http://www.mysource.com", new ChocolateyApiKeySettings { + Debug = false, + Verbose = false, + Force = false, + Noop = false, + LimitOutput = false, + ExecutionTimeout = 13, + CacheLocation = @"C:\temp", + AllowUnofficial = false + }); + + + + + + Sets the config parameter using the specified settings. + + The context. + The name. + The value. + The settings. + + + ChocolateyConfig("cacheLocation", @"c:\temp", new ChocolateyConfigSettings { + Debug = false, + Verbose = false, + Force = false, + Noop = false, + LimitOutput = false, + ExecutionTimeout = 13, + CacheLocation = @"C:\temp", + AllowUnofficial = false + }); + + + + + + Enables a Chocolatey Feature using the specified name + + The context. + Name of the feature. + + + ChocolateyEnableFeature("checkSumFiles"); + + + + + + Enables a Chocolatey Feature using the specified name and settings + + The context. + Name of the feature. + The settings. + + + ChocolateyEnableFeature("checkSumFiles", new ChocolateyFeatureSettings { + Debug = false, + Verbose = false, + Force = false, + Noop = false, + LimitOutput = false, + ExecutionTimeout = 13, + CacheLocation = @"C:\temp", + AllowUnofficial = false + }); + + + + + + Disables a Chocolatey Feature using the specified name + + The context. + Name of the feature. + + + ChocolateyDisableFeature("checkSumFiles"); + + + + + + Disables a Chocolatey Feature using the specified name and settings + + The context. + Name of the feature. + The settings. + + + ChocolateyDisableFeature("checkSumFiles", new ChocolateyFeatureSettings { + Debug = false, + Verbose = false, + Force = false, + Noop = false, + LimitOutput = false, + ExecutionTimeout = 13, + CacheLocation = @"C:\temp", + AllowUnofficial = false + }); + + + + + + Adds Chocolatey package source using the specified name &source to global user config + + The context. + Name of the source. + Path to the package(s) source. + + + ChocolateyAddSource("MySource", "http://www.mysource.com"); + + + + + + Adds Chocolatey package source using the specified name, source & settings to global user config + + The context. + Name of the source. + Path to the package(s) source. + The settings. + + + ChocolateyAddSource("MySource", "http://www.mysource.com", new ChocolateySourcesSettings { + UserName = "user", + Password = "password", + Priority = 13, + Debug = false, + Verbose = false, + Force = false, + Noop = false, + LimitOutput = false, + ExecutionTimeout = 13, + CacheLocation = @"C:\temp", + AllowUnofficial = false + }); + + + + + + Removes Chocolatey package source using the specified name & source from global user config + + The context. + Name of the source. + + + ChocolateyRemoveSource("MySource"); + + + + + + Removes Chocolatey package source using the specified name, source & settings from global user config + + The context. + Name of the source. + The settings. + + + ChocolateyRemoveSource("MySource", new ChocolateySourcesSettings { + Debug = false, + Verbose = false, + Force = false, + Noop = false, + LimitOutput = false, + ExecutionTimeout = 13, + CacheLocation = @"C:\temp", + AllowUnofficial = false + }); + + + + + + Enables a Chocolatey Source using the specified name + + The context. + Name of the source. + + + ChocolateyEnableSource("MySource"); + + + + + + Enables a Chocolatey Source using the specified name and settings + + The context. + Name of the source. + The settings. + + + ChocolateyEnableSource("MySource", new ChocolateySourcesSettings { + Debug = false, + Verbose = false, + Force = false, + Noop = false, + LimitOutput = false, + ExecutionTimeout = 13, + CacheLocation = @"C:\temp", + AllowUnofficial = false + }); + + + + + + Disables a Chocolatey Source using the specified name + + The context. + Name of the source. + + + ChocolateyDisableSource("MySource"); + + + + + + Disables a Chocolatey Source using the specified name and settings + + The context. + Name of the source. + The settings. + + + ChocolateyDisableSource("MySource", new ChocolateySourcesSettings { + Debug = false, + Verbose = false, + Force = false, + Noop = false, + LimitOutput = false, + ExecutionTimeout = 13, + CacheLocation = @"C:\temp", + AllowUnofficial = false + }); + + + + + + Pushes a Chocolatey package to a Chocolatey server and publishes it. + + The context. + The .nupkg file path. + The settings. + + + // Get the path to the package. + var package = "./chocolatey/MyChocolateyPackage.0.0.1.nupkg"; + + // Push the package. + ChocolateyPush(package, new ChocolateyPushSettings { + Source = "http://example.com/chocolateyfeed", + ApiKey = "4003d786-cc37-4004-bfdf-c4f3e8ef9b3a" + Timeout = 300 + Debug = false, + Verbose = false, + Force = false, + Noop = false, + LimitOutput = false, + ExecutionTimeout = 13, + CacheLocation = @"C:\temp", + AllowUnofficial = false + }); + + + + + + Pushes Chocolatey packages to a Chocolatey server and publishes them. + + The context. + The .nupkg file paths. + The settings. + + + // Get the paths to the packages. + var packages = GetFiles("./**/*.nupkg"); + + // Push the package. + ChocolateyPush(packages, new ChocolateyPushSettings { + Source = "http://example.com/chocolateyfeed", + ApiKey = "4003d786-cc37-4004-bfdf-c4f3e8ef9b3a" + Timeout = 300 + Debug = false, + Verbose = false, + Force = false, + Noop = false, + LimitOutput = false, + ExecutionTimeout = 13, + CacheLocation = @"C:\temp", + AllowUnofficial = false + }); + + + + + + Upgrades Chocolatey package. + + The context. + The id of the package to upgrade. + + + ChocolateyUpgrade("MyChocolateyPackage"); + + + + + + Upgrades Chocolatey package using the specified settings. + + The context. + The id of the package to upgrade. + The settings. + + + ChocolateyUpgrade("MyChocolateyPackage", new ChocolateyUpgradeSettings { + Source = true, + Version = "1.2.3", + Prerelease = false, + Forcex86 = false, + InstallArguments = "arg1", + OverrideArguments = false, + NotSilent = false, + PackageParameters = "param1", + AllowDowngrade = false, + SideBySide = false, + IgnoreDependencies = false, + SkipPowerShell = false, + FailOnUnfound = false, + FailOnNotInstalled = false, + User = "user", + Password = "password", + IgnoreChecksums = false, + Debug = false, + Verbose = false, + Force = false, + Noop = false, + LimitOutput = false, + ExecutionTimeout = 13, + CacheLocation = @"C:\temp", + AllowUnofficial = false + }); + + + + + + Generate package specification files for a new package using the default settings. + + The context. + The id of the package to create. + + + ChocolateyNew("MyChocolateyPackage"); + + + + + + Generate package specification files for a new package using the specified settings. + + The context. + The id of the package to create. + The settings. + + + ChocolateyNew("MyChocolateyPackage", new ChocolateyNewSettings { + PackageVersion = "1.2.3", + MaintainerName = "John Doe", + MaintainerRepo = "johndoe" + }); + + + + + var settings = new ChocolateyNewSettings { + MaintainerName = "John Doe" + } + settings.AdditionalPropertyValues("Tags", "CustomPackage"); + ChocolateyNew("MyChocolateyPackage", settings); + + + + + + Downloads a Chocolatey package to the current working directory. + Requires Chocolatey licensed edition. + + The context. + The id of the package to download. + + + ChocolateyDownload("MyChocolateyPackage"); + + + + + + Downloads a Chocolatey package using the specified settings. + Requires Chocolatey licensed edition. + Features requiring Chocolatey for Business or a minimum version are documented + in . + + The context. + The id of the package to install. + The settings. + + Download a package to a specific folder: + + ChocolateyDownload( + "MyChocolateyPackage", + new ChocolateyDownloadSettings { + OutputDirectory = @"C:\download\" + }); + + Download and internalize a package: + + ChocolateyDownload( + "MyChocolateyPackage", + new ChocolateyDownloadSettings { + Internalize = true + }); + + + + + + Contains settings used by . + + + + + Gets or sets a value indicating whether to run in debug mode. + + The debug flag + + + + Gets or sets a value indicating whether to run in verbose mode. + + The verbose flag. + + + + Gets or sets a value indicating whether to accept license for package. + + The accept license flag + + + + Gets or sets a value indicating whether to run in forced mode. + + The force flag + + + + Gets or sets a value indicating whether to run in noop mode. + + The noop flag. + + + + Gets or sets a value indicating whether to run in limited output mode. + + The limit output flag + + + + Gets or sets the execution timeout value. + + The execution timeout + Default is 2700 seconds + + + + Gets or sets the location of the download cache. + + The download cache location + + + + Gets or sets a value indicating whether to run in allow unofficial mode. + + The allow unofficial flag + + + + Gets or sets a package sources to use for this command. + + The package source to use for this command. + + + + Gets or sets the version of the package to install. + If none specified, the latest will be used. + + + + + Gets or sets a value indicating whether to override the passed arguments. + + The override arguments flag + + + + Gets or sets a value indicating whether or not to install silently. + + The not silent flag + + + + Gets or sets the parameters to pass to the package. + + + + + Gets or sets a value indicating whether to allow side by side installation. + + The side by side installation flag + + + + Gets or sets a value indicating whether to skip the PowerShell installation of package. + + The skip powershell flag + + + + Base class for all Chocolatey related tools. + + The settings type. + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The Chocolatey tool resolver. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Gets alternative file paths which the tool may exist in + + The settings. + The default tool path. + + + + Adds common arguments to the process builder. + + The settings. + The process argument builder. + The process argument builder. + + + + Contains Chocolatey path resolver functionality + + + + + Initializes a new instance of the class. + + The file system. + The environment. + + + + Resolves the path to choco.exe. + + The path to choco.exe. + + + + The Chocolatey configuration setter. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The Chocolatey tool resolver. + + + + Sets Chocolatey configuration paramaters using the settings. + + The name of the config parameter. + The value to assign to the parameter. + The settings. + + + + Contains settings used by . + + + + + Gets or sets a value indicating whether to run in debug mode. + + The debug flag + + + + Gets or sets a value indicating whether to run in verbose mode. + + The verbose flag. + + + + Gets or sets a value indicating whether to run in forced mode. + + The force flag + + + + Gets or sets a value indicating whether to run in noop mode. + + The noop flag. + + + + Gets or sets a value indicating whether to run in limited output mode. + + The limit output flag + + + + Gets or sets the execution timeout value. + + The execution timeout + Default is 2700 seconds + + + + Gets or sets the location of the download cache. + + The download cache location + + + + Gets or sets a value indicating whether to run in allow unofficial mode. + + The allow unofficial flag + + + + The Chocolatey package downloader used to download Chocolatey packages. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The Chocolatey tool resolver. + + + + Downloads Chocolatey packages using the specified package id and settings. + Requires Chocolatey licensed edition. + Features requiring Chocolatey for Business or a minimum version are documented + in . + + The source package id. + The settings. + + + + Contains settings used by . + + + + + Gets or sets a value indicating whether to allow downloading of prerelease packages. + + + + + Gets or sets the directory for the downloaded Chocolatey packages. + By default the current working directory is used. + + + + + Gets or sets a value indicating whether to ignore dependencies. + Requires Chocolatey licensed edition. + + + + + Gets or sets a value indicating whether all external resources should be downloaded + and the package be recompiled to use the local resources instead. + Requires Chocolatey business edition. + + + + + Gets or sets a value indicating whether all URLs, not only from known helpers, should be internalized. + Requires Chocolatey business edition (Licensed version 1.11.1+). + + + + + Gets or sets the location for downloaded resource when is set. + null or if downloaded resources should be embedded in the package. + Can be a file share or an internal URL location. + When it is a file share, it will attempt to download to that location. + When it is an internal url, it will download locally and give further instructions + where it should be uploaded to match package edits. + By default resources are embedded in the package. + Requires Chocolatey business edition. + + + + + Gets or sets the location where resources should be downloaded to when is set. + null or if should be used. + By default is used. + Requires Chocolatey business edition. + + + + + Gets or sets a value indicating whether the -useOriginalLocation parameter will be passed to any + Install-ChocolateyPackage call in the package and avoiding downloading of resources when + is set. + Overrides the global internalizeAppendUseOriginalLocation feature. + By default set to false. + Requires Chocolatey business edition and Chocolatey v0.10.1 or newer. + + + + + Gets or sets the user for authenticated feeds. + + + + + Gets or sets the password for authenticated feeds. + + + + + Contains settings used by . + + + + + Gets or sets a value indicating whether to run in debug mode. + + The debug flag + + + + Gets or sets a value indicating whether to run in verbose mode. + + The verbose flag. + + + + Gets or sets a value indicating whether to run in forced mode. + + The force flag + + + + Gets or sets a value indicating whether to run in noop mode. + + The noop flag. + + + + Gets or sets a value indicating whether to run in limited output mode. + + The limit output flag + + + + Gets or sets the execution timeout value. + + The execution timeout + Default is 2700 seconds + + + + Gets or sets the location of the download cache. + + The download cache location + + + + Gets or sets a value indicating whether to run in allow unofficial mode. + + The allow unofficial flag + + + + The Chocolatey feature toggler used to enable/disable Chocolatey Features. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The Chocolatey tool resolver. + + + + Pins Chocolatey packages using the specified package id and settings. + + The name of the feature. + The settings. + + + + Pins Chocolatey packages using the specified package id and settings. + + The name of the feature. + The settings. + + + + Represents a Chocolatey path resolver. + + + + + Resolves the path to choco.exe. + + The path to choco.exe. + + + + The Chocolatey package installer used to install Chocolatey packages. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The Chocolatey tool resolver. + + + + Installs Chocolatey packages using the specified package configuration file and settings. + + Path to package configuration to use for install. + The settings. + + + + Installs Chocolatey packages using the specified package id and settings. + + The source package id. + The settings. + + + + Contains settings used by . + + + + + Gets or sets a value indicating whether to allow installation of prerelease packages. + This flag is not required when restoring packages by installing from packages.config. + + + true to allow installation of prerelease packages; otherwise, false. + + + + + Gets or sets a value indicating whether to force installation of the x86 version of package. + + The force x86 flag + + + + Gets or sets the install arguments to pass to native installer. + + + + + Gets or sets a value indicating whether to allow downgrade of package. + + The downgrade package flag + + + + Gets or sets a value indicating whether to ignore dependencies. + + The ignore dependencies flag + + + + Gets or sets a value indicating whether to force dependencies. + + The force dependencies flag + + + + Gets or sets the user for authenticated feeds. + + + + + Gets or sets the password for authenticated feeds. + + + + + Gets or sets a value indicating whether to ignore checksums. + + The ignore checksums flag + + + + Contains settings used by . + + + + + Gets or sets the path where the package will be created. + + + + + Gets or sets the version of the package to be created. + + + + + Gets or sets the owner of the package to be created. + + + + + Gets or sets the repository of the package source. + + + + + Gets or sets the type of the installer. + + + + + Gets or sets the URL where the software to be installed can be downloaded from. + + + + + Gets or sets the URL where the 64-Bit version of the software to be installed can be downloaded from. + + + + + Gets or sets the arguments for running the installer silently. + + + + + Gets the list of additional property values which should be passed to the template. + + + + + The Chocolatey project scaffolder used to generate package specification files for a new package. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The Chocolatey tool resolver. + + + + Generate package specification files for a new package. + + Id of the new package. + The settings. + + + + Represents a Chocolatey nuspec file + + + + + Gets or sets the location of the file or files to include. + The path is relative to the NuSpec file unless an absolute path is specified. + The wildcard character - * - is allowed. + Using a double wildcard - ** implies a recursive directory search. + + + + + Gets or sets the relative path to the directory within the package where the source files will be placed. + + + + + Gets or sets the file or files to exclude. + This is usually combined with a wildcard value in the src attribute. + The exclude attribute can contain a semi-colon delimited list of files or a file pattern. + Using a double wildcard - ** - implies a recursive exclude pattern. + + + + + Represents a Chocolatey NuGet nuspec dependency + + + + + Gets or sets the dependency's package ID. + + The dependency's package ID. + + + + Gets or sets the dependency's version. + + The dependency's version. + + + + The Chocolatey packer. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The log. + The tool locator. + The Chocolatey tool resolver + + + + Creates a Chocolatey package from the specified settings. + + The settings. + + + + Creates a Chocolatey package from the specified Nuspec file. + + The nuspec file path. + The settings. + + + + Contains settings used by . + + + + + Gets or sets the package ID. + + The package ID. + + + + Gets or sets the package title. + + The package title. + + + + Gets or sets the Nuspec version. + + The Nuspec version. + + + + Gets or sets the package authors. + + The package authors. + + + + Gets or sets the package owners. + + The package owners. + + + + Gets or sets the package summary. + + The package summary. + + + + Gets or sets the package description. + + The package description. + Markdown format is allowed for this property + + + + Gets or sets the package project URL. + + The package project URL. + + + + Gets or sets the package Source URL. + + The package Source URL. + Requires at least Chocolatey 0.9.9.7. + + + + Gets or sets the package project Source URL. + + The package project Source URL. + Requires at least Chocolatey 0.9.9.7. + + + + Gets or sets the package documentation URL. + + The package documenation URL. + Requires at least Chocolatey 0.9.9.7. + + + + Gets or sets the package mailing list URL. + + The package mailing list URL. + Requires at least Chocolatey 0.9.9.7. + + + + Gets or sets the package bug tracker URL. + + The package bug tracker URL. + Requires at least Chocolatey 0.9.9.7. + + + + Gets or sets the package tags. + + The package tags. + + + + Gets or sets the package copyright. + + The package copyright. + + + + Gets or sets the package license URL. + + The package license URL. + + + + Gets or sets a value indicating whether users has to accept the package license. + + + true if users has to accept the package license; otherwise, false. + + + + + Gets or sets the package icon URL. + + The package icon URL. + + + + Gets or sets the package release notes. + + The package release notes. + Markdown format is allowed for this property + + + + Gets or sets the package files. + + The package files. + + + + Gets or sets the package dependencies. + + The package files. + + + + Gets or sets a value indicating whether to run in debug mode. + + The debug flag + + + + Gets or sets a value indicating whether to run in verbose mode. + + The verbose flag. + + + + Gets or sets a value indicating whether to run in forced mode. + + The force flag + + + + Gets or sets a value indicating whether to run in noop mode. + + The noop flag. + + + + Gets or sets a value indicating whether to run in limited output mode. + + The limit output flag + + + + Gets or sets the execution timeout value. + + The execution timeout + Default is 2700 seconds + + + + Gets or sets the location of the download cache. + + The download cache location + + + + Gets or sets a value indicating whether to run in allow unofficial mode. + + The allow unofficial flag + + + + Gets or sets a value indicating the Working Directory that should be used while running choco.exe. + + + + + The Chocolatey package pinner used to pin Chocolatey packages. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The Chocolatey tool resolver. + + + + Pins Chocolatey packages using the specified package id and settings. + + The name of the package. + The settings. + + + + Contains settings used by . + + + + + Gets or sets a value indicating whether to run in debug mode. + + The debug flag + + + + Gets or sets a value indicating whether to run in verbose mode. + + The verbose flag. + + + + Gets or sets a value indicating whether to run in forced mode. + + The force flag + + + + Gets or sets a value indicating whether to run in noop mode. + + The noop flag. + + + + Gets or sets a value indicating whether to run in limited output mode. + + The limit output flag + + + + Gets or sets the execution timeout value. + + The execution timeout + Default is 2700 seconds + + + + Gets or sets the location of the download cache. + + The download cache location + + + + Gets or sets a value indicating whether to run in allow unofficial mode. + + The allow unofficial flag + + + + Gets or sets the version of the package to install. + If none specified, the latest will be used. + + + + + The Chocolatey package pusher. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The Chocolatey tool resolver. + + + + Pushes a Chocolatey package to a Chocolatey server and publishes it. + + The package file path. + The settings. + + + + Contains settings used by . + + + + + Gets or sets a value indicating whether to run in debug mode. + + The debug flag + + + + Gets or sets a value indicating whether to run in verbose mode. + + The verbose flag. + + + + Gets or sets a value indicating whether to run in forced mode. + + The force flag + + + + Gets or sets a value indicating whether to run in noop mode. + + The noop flag. + + + + Gets or sets a value indicating whether to run in limited output mode. + + The limit output flag + + + + Gets or sets the execution timeout value. + + The execution timeout + Default is 2700 seconds + + + + Gets or sets the location of the download cache. + + The download cache location + + + + Gets or sets a value indicating whether to run in allow unofficial mode. + + The allow unofficial flag + + + + Gets or sets the server URL. If not specified, chocolatey.org is used. + + The server URL. + + + + Gets or sets the API key for the server. + + The API key for the server. + + + + Gets or sets the timeout for pushing to a server. + Defaults to 300 seconds (5 minutes). + + The timeout for pushing to a server. + + + + The Chocolatey sources is used to work with user config feeds & credentials + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The Chocolatey tool resolver. + + + + Adds Chocolatey package source using the specified settings to global user config + + Name of the source. + Path to the package(s) source. + The settings. + + + + Remove specified Chocolatey package source + + Name of the source. + The settings. + + + + Enable specified Chocolatey package source + + Name of the source. + The settings. + + + + Disable specified Chocolatey package source + + Name of the source. + The settings. + + + + Contains settings used by . + + + + + Gets or sets a value indicating whether to run in debug mode. + + The debug flag + + + + Gets or sets a value indicating whether to run in verbose mode. + + The verbose flag. + + + + Gets or sets a value indicating whether to run in forced mode. + + The force flag + + + + Gets or sets a value indicating whether to run in noop mode. + + The noop flag. + + + + Gets or sets a value indicating whether to run in limited output mode. + + The limit output flag + + + + Gets or sets the execution timeout value. + + The execution timeout + Default is 2700 seconds + + + + Gets or sets the location of the download cache. + + The download cache location + + + + Gets or sets a value indicating whether to run in allow unofficial mode. + + The allow unofficial flag + + + + Gets or sets the (optional) user name. + + Optional user name to be used when connecting to an authenticated source. + + + + Gets or sets the (optional) password. + + Optional password to be used when connecting to an authenticated source. + + + + Gets or sets the (optional) priority. + + Optional priority to be used when creating source. + + + + The Chocolatey package uninstall used to uninstall Chocolatey packages. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The Chocolatey tool resolver. + + + + Uninstalls Chocolatey packages using the specified package id and settings. + + List of package ids to uninstall. + The settings. + + + + Contains settings used by . + + + + + Gets or sets a value indicating whether it fails on standard error output. + + The fail on standard error flag + + + + Gets or sets a value indicating whether an external process is used instead of built in PowerShell host. + + The use system powershell flag + + + + Gets or sets a value indicating whether to uninstall all versions. + + The all versions flag + + + + Gets or sets the uinstall arguments to pass to native installer. + + + + + Gets or sets a value indicating whether install arguments should be applied to dependent packages. + + The global arguments flag + + + + Gets or sets a value indicating whether global parameters are passed to the package. + + The global package parameters flag + + + + Gets or sets a value indicating whether to force dependencies. + + The force dependencies flag + + + + Gets or sets a value indicating whether to Exit with a 0 for success and 1 for non-succes + no matter what package scripts provide for exit codes. + + The ignore package exit codes flag + + + + Gets or sets a value indicating whether to use package exit codes. + + The use package exit codes flag + + + + Gets or sets a value indicating whether to use auto uninstaller service when uninstalling. + + The use auto uninstaller flag + + + + Gets or sets a value indicating whether to skip auto uninstaller service when uninstalling. + + The skip auto uninstaller flag + + + + Gets or sets a value indicating whether to fail the package uninstall if the auto + uninstaller reports and error. + + The fail auto uninstaller flag + + + + Gets or sets a value indicating whether to not fail the package if auto + uninstaller reports an error. + + The ignore auto uninstaller flag + + + + The Chocolatey package upgrader. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The Chocolatey tool resolver. + + + + Upgrades Chocolatey packages using the specified settings. + + The source package id. + The settings. + + + + Contains settings used by . + + + + + Gets or sets a value indicating whether to allow upgrading to prerelease versions. + This flag is not required when updating prerelease packages that are already installed. + + + true to allow updating to prerelease versions; otherwise, false. + + + + + Gets or sets a value indicating whether to force installation of the x86 version of package. + + The force x86 flag + + + + Gets or sets the install arguments to pass to native installer. + + + + + Gets or sets a value indicating whether to allow downgrade of package. + + The downgrade package flag + + + + Gets or sets a value indicating whether to ignore dependencies. + + The ignore dependencies flag + + + + Gets or sets a value indicating whether to fail on unfound packages. + + The skip powershell flag + + + + Gets or sets a value indicating whether to fail on not installed packages. + + The skip powershell flag + + + + Gets or sets the user for authenticated feeds. + + + + + Gets or sets the password for authenticated feeds. + + + + + Gets or sets a value indicating whether to ignore checksums. + + The ignore checksums flag + + + + DotCover Analyser builder. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Runs DotCover Analyse with the specified settings. + + The context. + The action. + The output file path. + The settings. + + + + Contains settings used by . + + + + + Gets or sets the type of the report. + This represents the /ReportType option. + The Default value is . + + + + + DotCover Coverer builder. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Runs DotCover Cover with the specified settings. + + The context. + The action. + The output file path. + The settings. + + + + Contains settings used by . + + + + + Contains functionality related to DotCover. + + In order to use the commands for this alias, include the following in your build.cake file to download and + install from NuGet.org, or specify the ToolPath within the appropriate settings class: + + #tool "nuget:?package=JetBrains.dotCover.CommandLineTools" + + + + + + + Runs DotCover Analyse + for the specified action and settings. + + The context. + The action to run DotCover for. + The DotCover output file. + The settings. + + + DotCoverAnalyse(tool => { + tool.XUnit2("./**/App.Tests.dll", + new XUnit2Settings { + ShadowCopy = false + }); + }, + new FilePath("./result.xml"), + new DotCoverAnalyseSettings() + .WithFilter("+:App") + .WithFilter("-:App.Tests")); + + + + + + Runs DotCover Cover + for the specified action and settings. + + The context. + The action to run DotCover for. + The DotCover output file. + The settings. + + + DotCoverCover(tool => { + tool.XUnit2("./**/App.Tests.dll", + new XUnit2Settings { + ShadowCopy = false + }); + }, + new FilePath("./result.dcvr"), + new DotCoverCoverSettings() + .WithFilter("+:App") + .WithFilter("-:App.Tests")); + + + + + + Runs DotCover Report + for the specified action and settings. + + The context. + The DotCover coverage snapshot file name. + The DotCover output file. + The settings + + + DotCoverReport(new FilePath("./result.dcvr"), + new FilePath("./result.html"), + new DotCoverReportSettings { + ReportType = DotCoverReportType.HTML + }); + + + + + + Runs DotCover Merge + for the specified action and settings. + + The context. + The list of DotCover coverage snapshot files. + The merged output file. + + + DotCoverMerge(new[] { + new FilePath("./result1.dcvr"), + new FilePath("./result2.dcvr") + }, + new FilePath("./merged.dcvr")); + + + + + + Runs DotCover Merge + for the specified action and settings. + + The context. + The list of DotCover coverage snapshot files. + The merged output file. + The settings + + + DotCoverMerge(new[] { + new FilePath("./result1.dcvr"), + new FilePath("./result2.dcvr") + }, + new FilePath("./merged.dcvr"), + new DotCoverMergeSettings { + LogFile = new FilePath("./log.txt") + }); + + + + + + Contains settings used by . + + + + + Gets or sets program working directory + This represents the /TargetWorkingDir option. + + + + + Gets the assemblies loaded in the specified scope into coverage results. + Ant-style patterns are supported here (e.g.ProjectFolder/**/*.dll) + This represents the /Scope option. + + + + + Gets the coverage filters using the following syntax: +:module=*;class=*;function=*; + Use -:myassembly to exclude an assembly from code coverage. + Asterisk wildcard (*) is supported here. + This represents the /Filters option. + + + + + Gets the attribute filters using the following syntax: filter1;filter2;... + Asterisk wildcard(*) is supported here + This represents the /AttributeFilters option. + + + + + Gets the coverage process filters using the following syntax: +:test.exe;program.exe*; + Use -:anexe to exclude an assembly from code coverage. + This represents the /ProcessFilters option. + + + + + Gets or sets a value indicating whether the default (automatically added) filters should be disabled + This represents the /DisableDefaultFilters option. + + + + + Initializes a new instance of the class. + + + + + Contains extensions for . + + + + + Adds the scope. + + The settings. + The scope. + The settings type, derived from + The same instance so that multiple calls can be chained. + + + + Adds the filter + + The settings. + The filter. + The settings type, derived from + The same instance so that multiple calls can be chained. + + + + Adds the attribute filter + + The settings. + The filter. + The settings type, derived from + The same instance so that multiple calls can be chained. + + + + Adds the filter + + The settings. + The processfilter. + The settings type, derived from + The same instance so that multiple calls can be chained. + + + + DotCover Coverage tool. + + The settings type + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Get arguments from the target executable + + The context. + The action to run DotCover for. + The process arguments + + + + Get arguments from coverage settings + + The settings + The process arguments + + + + Represents DotCover ReportType + + + + + ReportType: XML + + + + + ReportType: HTML + + + + + ReportType: JSON + + + + + ReportType: DetailedXML + + + + + ReportType: NDependXML + + + + + Contains settings used by . + + + + + Gets or sets a value that enables logging and specifies log file name + This represents the /LogFile option. + + + + + Gets or sets a value that enables DotCover configuration file. + A configuration file is a reasonable alternative + to specifying all parameters in-line or having them in a batch file. + + + + + Contains extensions for . + + + + + Adds the scope. + + The settings. + The DotCover configuration file. + The settings type, derived from + The same instance so that multiple calls can be chained. + + + + Base class for all DotCover related tools + + The settings type + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Get arguments from global settings + + The settings + The process arguments + + + + Get configuration full path from coverage settings + + The settings + The process arguments + + + + DotCover Merge merger. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Runs DotCover Merge with the specified settings. + + The list of DotCover coverage snapshot files. + The merged output file. + The settings + + + + Contains settings used by . + + + + + DotCover Report reporter. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Runs DotCover Cover with the specified settings. + + The DotCover coverage snapshot file name. + The DotCover output file. + The settings + + + + Contains settings used by . + + + + + Gets or sets the type of the report. + This represents the /ReportType option. + The Default value is . + + + + + Contains functionality to run either MSBuild on Windows or XBuild on Mac/Linux/Unix. + + + + + Builds the specified solution using MSBuild or XBuild. + + + + DotNetBuild("./project/project.sln"); + + + The context. + The solution. + + + + Builds the specified solution using MSBuild or XBuild. + + + + DotNetBuild("./project/project.sln", settings => + settings.SetConfiguration("Debug") + .SetVerbosity(Core.Diagnostics.Verbosity.Minimal) + .WithTarget("Build") + .WithProperty("TreatWarningsAsErrors","true")); + + + The context. + The solution. + The configurator. + + + + Contains settings used by the DotNetBuild alias. + + + + + Gets the solution path. + + The solution. + + + + Gets the targets. + + The targets. + + + + Gets the properties. + + The properties. + + + + Gets or sets the configuration. + + The configuration. + + + + Gets or sets the amount of information to display in the build log. + Each logger displays events based on the verbosity level that you set for that logger. + + The build log verbosity. + + + + Initializes a new instance of the class. + + The solution. + + + + Contains functionality related to .NET build settings. + + + + + Adds a .NET build target to the configuration. + + The settings. + The .NET build target. + The same instance so that multiple calls can be chained. + + + + Adds a property to the configuration. + + The settings. + The property name. + The property values. + The same instance so that multiple calls can be chained. + + + + Sets the configuration. + + The settings. + The configuration. + The same instance so that multiple calls can be chained. + + + + Sets the build log verbosity. + + The settings. + The build log verbosity. + The same instance so that multiple calls can be chained. + + + + .NET Core project builder. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Build the project using the specified path and settings. + + The target project path. + The settings. + + + + Contains settings used by . + + + + + Gets or sets the output directory. + + + + + Gets or sets the target runtime. + + + + + Gets or sets the configuration under which to build. + + + + + Gets or sets the specific framework to compile. + + + + + Gets or sets the value that defines what `*` should be replaced with in version field in project.json. + + + + + Gets or sets a value indicating whether to mark the build as unsafe for incrementality. + This turns off incremental compilation and forces a clean rebuild of the project dependency graph. + + + + + Gets or sets a value indicating whether to ignore project to project references and only build the root project. + + + + + Gets or sets a value indicating whether to not do implicit NuGet package restore. + This makes build faster, but requires restore to be done before build is executed. + + + Requires .NET Core 2.x or newer. + + + + + Gets or sets additional arguments to be passed to MSBuild. + + + + + .NET Core project cleaner. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Cleans the project's output using the specified path and settings. + + The target project path. + The settings. + + + + Contains settings used by . + + + + + Gets or sets the output directory. + + + + + Gets or sets the configuration under which to build. + + + + + Gets or sets the specific framework to compile. + + + + + Gets or sets additional arguments to be passed to MSBuild. + + + + + Contains functionality related to .NET Core CLI. + + In order to use the commands for this alias, the .Net Core CLI tools will need to be installed on the machine where + the Cake script is being executed. See this page for information + on how to install. + + + + + + Execute an assembly. + + The context. + The assembly path. + + + DotNetCoreExecute("./bin/Debug/app.dll"); + + + + + + Execute an assembly with arguments in the specific path. + + The context. + The assembly path. + The arguments. + + + DotNetCoreExecute("./bin/Debug/app.dll", "--arg"); + + + + + + Execute an assembly with arguments in the specific path with settings. + + The context. + The assembly path. + The arguments. + The settings. + + + var settings = new DotNetCoreExecuteSettings + { + FrameworkVersion = "1.0.3" + }; + + DotNetCoreExecute("./bin/Debug/app.dll", "--arg", settings); + + + + + + Restore all NuGet Packages. + + The context. + + + DotNetCoreRestore(); + + + + + + Restore all NuGet Packages in the specified path. + + The context. + List of projects and project folders to restore. Each value can be: a path to a project.json or global.json file, or a folder to recursively search for project.json files. + + + DotNetCoreRestore("./src/*"); + + + + + + Restore all NuGet Packages with the settings. + + The context. + The settings. + + + var settings = new DotNetCoreRestoreSettings + { + Sources = new[] {"https://www.example.com/nugetfeed", "https://www.example.com/nugetfeed2"}, + FallbackSources = new[] {"https://www.example.com/fallbacknugetfeed"}, + PackagesDirectory = "./packages", + Verbosity = Information, + DisableParallel = true, + InferRuntimes = new[] {"runtime1", "runtime2"} + }; + + DotNetCoreRestore(settings); + + + + + + Restore all NuGet Packages in the specified path with settings. + + The context. + List of projects and project folders to restore. Each value can be: a path to a project.json or global.json file, or a folder to recursively search for project.json files. + The settings. + + + var settings = new DotNetCoreRestoreSettings + { + Sources = new[] {"https://www.example.com/nugetfeed", "https://www.example.com/nugetfeed2"}, + FallbackSources = new[] {"https://www.example.com/fallbacknugetfeed"}, + PackagesDirectory = "./packages", + Verbosity = Information, + DisableParallel = true, + InferRuntimes = new[] {"runtime1", "runtime2"} + }; + + DotNetCoreRestore("./src/*", settings); + + + + + + Build all projects. + + The context. + The projects path. + + + DotNetCoreBuild("./src/*"); + + + + + + Build all projects. + + The context. + The projects path. + The settings. + + + var settings = new DotNetCoreBuildSettings + { + Framework = "netcoreapp2.0", + Configuration = "Debug", + OutputDirectory = "./artifacts/" + }; + + DotNetCoreBuild("./src/*", settings); + + + + + + Package all projects. + + The context. + The projects path. + + + DotNetCorePack("./src/*"); + + + + + + Package all projects. + + The context. + The projects path. + The settings. + + + var settings = new DotNetCorePackSettings + { + Configuration = "Release", + OutputDirectory = "./artifacts/" + }; + + DotNetCorePack("./src/*", settings); + + + + + + Run all projects. + + The context. + + + DotNetCoreRun(); + + + + + + Run project. + + The context. + The project path. + + + DotNetCoreRun("./src/Project"); + + + + + + Run project with path and arguments. + + The context. + The project path. + The arguments. + + + DotNetCoreRun("./src/Project", "--args"); + + + + + + Run project with settings. + + The context. + The project path. + The arguments. + The settings. + + + var settings = new DotNetCoreRunSettings + { + Framework = "netcoreapp2.0", + Configuration = "Release" + }; + + DotNetCoreRun("./src/Project", "--args", settings); + + + + + + Publish all projects. + + The context. + The projects path. + + + DotNetCorePublish("./src/*"); + + + + + + Publish all projects. + + The context. + The projects path. + The settings. + + + var settings = new DotNetCorePublishSettings + { + Framework = "netcoreapp2.0", + Configuration = "Release", + OutputDirectory = "./artifacts/" + }; + + DotNetCorePublish("./src/*", settings); + + + + + + Test project. + + The context. + + + DotNetCoreTest(); + + + + + + Test project with path. + + The context. + The project path. + + Specify the path to the .csproj file in the test project + + DotNetCoreTest("./test/Project.Tests/Project.Tests.csproj"); + + You could also specify a task that runs multiple test projects. + Cake task: + + Task("Test") + .Does(() => + { + var projectFiles = GetFiles("./test/**/*.csproj"); + foreach(var file in projectFiles) + { + DotNetCoreTest(file.FullPath); + } + }); + + If your test project is using project.json, the project parameter should just be the directory path. + + DotNetCoreTest("./test/Project.Tests/"); + + + + + + Test project with settings. + + The context. + The project path. + The settings. + + + var settings = new DotNetCoreTestSettings + { + Configuration = "Release" + }; + + DotNetCoreTest("./test/Project.Tests/Project.Tests.csproj", settings); + + You could also specify a task that runs multiple test projects. + Cake task: + + Task("Test") + .Does(() => + { + var settings = new DotNetCoreTestSettings + { + Configuration = "Release" + }; + + var projectFiles = GetFiles("./test/**/*.csproj"); + foreach(var file in projectFiles) + { + DotNetCoreTest(file.FullPath, settings); + } + }); + + If your test project is using project.json, the project parameter should just be the directory path. + + var settings = new DotNetCoreTestSettings + { + Configuration = "Release" + }; + + DotNetCoreTest("./test/Project.Tests/", settings); + + + + + + Cleans a project's output. + + The context. + The project's path. + + + DotNetCoreClean("./src/project"); + + + + + + Cleans a project's output. + + The context. + The projects path. + The settings. + + + var settings = new DotNetCoreCleanSettings + { + Framework = "netcoreapp2.0", + Configuration = "Debug", + OutputDirectory = "./artifacts/" + }; + + DotNetCoreClean("./src/project", settings); + + + + + + Delete a NuGet Package from a server. + + The context. + + + DotNetCoreNuGetDelete(); + + + + + + Deletes a package from the NuGet.org. + + The context. + Name of package to delete. + + + DotNetCoreNuGetDelete("Microsoft.AspNetCore.Mvc"); + + + + + + Deletes a specific version of a package from the NuGet.org. + + The context. + Name of package to delete. + Version of package to delete. + + + DotNetCoreRestore("Microsoft.AspNetCore.Mvc", "1.0"); + + + + + + Deletes a package from a server + + The context. + Name of package to delete. + The settings. + + + var settings = new DotNetCoreNuGetDeleteSettings + { + Source = "https://www.example.com/nugetfeed", + NonInteractive = true + }; + + DotNetCoreNuGetDelete("Microsoft.AspNetCore.Mvc", settings); + + + + + + Deletes a package from a server using the specified settings. + + The context. + The settings. + + + var settings = new DotNetCoreNuGetDeleteSettings + { + Source = "https://www.example.com/nugetfeed", + NonInteractive = true + }; + + DotNetCoreNuGetDelete(settings); + + + + + + Deletes a package from a server using the specified settings. + + The context. + Name of package to delete. + Version of package to delete. + The settings. + + + var settings = new DotNetCoreNuGetDeleteSettings + { + Source = "https://www.example.com/nugetfeed", + NonInteractive = true + }; + + DotNetCoreNuGetDelete("Microsoft.AspNetCore.Mvc", "1.0", settings); + + + + + + Pushes one or more packages to a server. + + The context. + Name of package to push. + + + DotNetCoreNuGetPush("*.nupkg"); + + + + + + Pushes one or more packages to a server using the specified settings. + + The context. + Name of package to push. + The settings. + + + var settings = new DotNetCoreNuGetPushSettings + { + Source = "https://www.example.com/nugetfeed", + ApiKey = "4003d786-cc37-4004-bfdf-c4f3e8ef9b3a" + }; + + DotNetCoreNuGetPush("foo*.nupkg", settings); + + + + + + Builds the specified targets in a project file found in the current working directory. + + The context. + + + DotNetCoreMSBuild(); + + + + + + Builds the specified targets in the project file. + + The context. + Project file or directory to search for project file. + + + DotNetCoreMSBuild("foobar.proj"); + + + + If a directory is specified, MSBuild searches that directory for a project file. + + + + + Builds the specified targets in a project file found in the current working directory. + + The context. + The settings. + + + var settings = new DotNetCoreMSBuildSettings + { + NoLogo = true, + MaxCpuCount = -1 + }; + + DotNetCoreMSBuild(settings); + + + + + + Builds the specified targets in the project file. + + The context. + Project file or directory to search for project file. + The settings. + + + var settings = new DotNetCoreMSBuildSettings + { + NoLogo = true, + MaxCpuCount = -1 + }; + + DotNetCoreMSBuild("foobar.proj", settings); + + + + If a project file is not specified, MSBuild searches the current working directory for a file that has a file + extension that ends in "proj" and uses that file. If a directory is specified, MSBuild searches that directory for a project file. + + + + + Test one or more projects specified by a path or glob pattern using the VS Test host runner. + + The context. + A path to the test file or glob for one or more test files. + + Specify the path to the .csproj file in the test project + + DotNetCoreTest("./test/Project.Tests/Project.Tests.csproj"); + + You could also specify a glob pattern to run multiple test projects. + + DotNetCoreTest("./**/*.Tests.csproj"); + + + + + + Test one or more projects specified by a path or glob pattern with settings using the VS Test host runner. + + The context. + A path to the test file or glob for one or more test files. + The settings. + + Specify the path to the .csproj file in the test project + + var settings = new DotNetCoreTestSettings + { + Framework = "FrameworkCore10", + Platform = "x64" + }; + + DotNetCoreTest("./test/Project.Tests/Project.Tests.csproj", settings); + + You could also specify a glob pattern to run multiple test projects. + + var settings = new DotNetCoreTestSettings + { + Framework = "FrameworkCore10", + Platform = "x64", + Parallel = true + }; + + DotNetCoreTest("./**/*.Tests.csproj", settings); + + + + + + Test one or more specified projects with settings using the VS Test host runner. + + The context. + The project paths to test. + The settings. + + + var settings = new DotNetCoreTestSettings + { + Framework = "FrameworkCore10", + Platform = "x64" + }; + + DotNetCoreTest(new[] { (FilePath)"./Test/Cake.Common.Tests.csproj" }, settings); + + You could also specify a task that runs multiple test projects. + Cake task: + + Task("Test") + .Does(() => + { + var settings = new DotNetCoreTestSettings + { + Framework = "FrameworkCore10", + Platform = "x64", + Parallel = true + }; + + var projectFiles = GetFiles("./test/**/*.csproj"); + + DotNetCoreTest(projectFiles, settings); + }); + + + + + + /// Execute an .NET Core Extensibility Tool. + + The context. + The project path. + The command to execute. + + + DotNetCoreTool("./src/project", "xunit", "-xml report.xml"); + + + + + + Execute an .NET Core Extensibility Tool. + + The context. + The project path. + The command to execute. + The arguments. + + + DotNetCoreTool("./src/project", "xunit", "-xml report.xml"); + + + + + + Execute an .NET Core Extensibility Tool. + + The context. + The project path. + The command to execute. + The arguments. + The settings. + + + DotNetCoreTool("./src/project", "xunit", "-xml report.xml"); + + + + + + Contains common settings used by . + + + + + Gets or sets the verbosity of logging to use. + + + + + Gets or sets a value indicating whether to not enable diagnostic output. + + + + + Base class for all .NET Core related tools. + + The settings type. + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Runs the dotnet cli command using the specified settings and arguments. + + The settings. + The arguments. + + + + Runs the dotnet cli command using the specified settings and arguments. + + The settings. + The arguments. + The processSettings. + + + + Creates a and adds common commandline arguments. + + The settings. + Instance of . + + + + Adds common commandline arguments. + + Process argument builder to update. + The settings. + Returns updated with common commandline arguments. + + + + Contains the verbosity of logging to use.. + + + + + Quiet level. + + + + + Minimal level. + + + + + Normal level. + + + + + Detailed level. + + + + + Diagnostic level. + + + + + Contains settings used by . + + + + + Gets or sets the version of the installed Shared Framework to use to run the application. + + + + + .NET Core assembly executor. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Execute an assembly using arguments and settings. + + The assembly path. + The arguments. + The settings. + + + + .NET Core project builder. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Build the project using the specified path and settings. + + The target project path. + The settings. + + + + Contains settings used by . + + + + + Gets or sets a value indicating whether to show detailed information at the end of the build log about the configurations that were built and how they were scheduled to nodes. + + + + + Gets or sets extensions to ignore when determining which project file to build. + + + + + Gets or sets the maximum number of concurrent processes to use when building. + + + If you don't include this switch, the default value is 1. If you specifying a value that is zero or less, MSBuild will use up to the number of processors in the computer. + + + + + Gets or sets a value indicating whether to exclude any MSBuild.rsp files automatically. + + + + + Gets or sets a value indicating whether to display the startup banner and the copyright message. + + + + + Gets the project-level properties to set or override. + + + + + Gets the targets to build in the project. + + + If you specify any targets, they are run instead of any targets in the DefaultTargets attribute in the project file. + + + + + Gets or sets the version of the Toolset to use to build the project. + + + + + Gets or sets a value indicating whether to validate the project file and, if validation succeeds, build the project. + + + + + Gets the response files to use. + + + A response file is a text file that is used to insert command-line switches. For more information see https://docs.microsoft.com/en-gb/visualstudio/msbuild/msbuild-response-files + + + + + Gets or sets a value indicating whether to log the build output of each MSBuild node to its own file. + + + The initial location for these files is the current directory. By default, the files are named "MSBuildNodeId.log". You can use the /fileLoggerParameters switch to specify the location of the files and other parameters for the fileLogger. + If you name a log file by using the /fileLoggerParameters switch, the distributed logger will use that name as a template and append the node ID to that name when creating a log file for each node. + + + + + Gets the distributed loggers to use. + + + A distributed logger consists of a central and forwarding logger. MSBuild will attach an instance of the forwarding logger to each secondary node. + For more information see https://msdn.microsoft.com/en-us/library/bb383987.aspx + + + + + Gets or sets the parameters for the console logger. + + + + + Gets the file loggers to use. + + + + + Gets the loggers to use to log events from MSBuild. + + + + + Gets or sets a value indicating whether to disable the default console logger, and not log events to the console. + + + + + Gets the warning codes to treats as errors. + + + When a warning is treated as an error the target will continue to execute as if it was a warning but the overall build will fail. + + + + + Gets or sets a value indicating how all warnings should be treated. + + + + + Gets the warning codes to treats as low importance messages. + + + + + Initializes a new instance of the class. + + + + + Contains functionality related to .NET Core MSBuild settings. + + + + + Adds a MSBuild target to the configuration. + + The settings. + The MSBuild target. + The same instance so that multiple calls can be chained. + Ignores a target if already added. + + + + Adds a property to the configuration. + + The settings. + The property name. + The property values. + The same instance so that multiple calls can be chained. + + + + Shows detailed information at the end of the build log about the configurations that were built and how they were scheduled to nodes. + + The settings. + The same instance so that multiple calls can be chained. + + + + Adds a extension to ignore when determining which project file to build. + + The settings. + The extension to ignore. + The same instance so that multiple calls can be chained. + + + + Sets the maximum CPU count. Without this set MSBuild will compile projects in this solution one at a time. + + The settings. + The maximum CPU count. Set this value to zero to use as many MSBuild processes as available CPUs. + The same instance so that multiple calls can be chained. + + + + Exclude any MSBuild.rsp files automatically. + + The settings. + The same instance so that multiple calls can be chained. + + + + Hide the startup banner and the copyright message. + + The settings. + The same instance so that multiple calls can be chained. + + + + Sets the version of the Toolset to use to build the project. + + The settings. + The version. + The same instance so that multiple calls can be chained. + + + + Validate the project file and, if validation succeeds, build the project. + + The settings. + The same instance so that multiple calls can be chained. + + + + Adds a response file to use. + + The settings. + The response file to add. + The same instance so that multiple calls can be chained. + + A response file is a text file that is used to insert command-line switches. For more information see https://docs.microsoft.com/en-gb/visualstudio/msbuild/msbuild-response-files + + + + + Log the build output of each MSBuild node to its own file. + + The settings. + The same instance so that multiple calls can be chained. + + + + Adds a distributed loggers to use. + + The settings. + The response file to add. + The same instance so that multiple calls can be chained. + + A distributed logger consists of a central and forwarding logger. MSBuild will attach an instance of the forwarding logger to each secondary node. + For more information see https://msdn.microsoft.com/en-us/library/bb383987.aspx + + + + + Sets the parameters for the console logger. + + The settings. + The console logger parameters to set. + The same instance so that multiple calls can be chained. + + + + Adds a file logger. + + The settings. + Parameters to be passed to the logger. + The same instance so that multiple calls can be chained. + + Each file logger will be declared in the order added. + The first file logger will match up to the /fl parameter. + The next nine (max) file loggers will match up to the /fl1 through /fl9 respectively. + + + + + Adds a file logger with all the default settings. + + The settings. + The same instance so that multiple calls can be chained. + + Each file logger will be declared in the order added. + The first file logger will match up to the /fl parameter. + The next nine (max) file loggers will match up to the /fl1 through /fl9 respectively. + + + + + Adds a custom logger. + + The settings. + The assembly containing the logger. Should match the format {AssemblyName[,StrongName] | AssemblyFile} + The class implementing the logger. Should match the format [PartialOrFullNamespace.]LoggerClassName. If the assembly contains only one logger, class does not need to be specified. + Parameters to be passed to the logger. + The same instance so that multiple calls can be chained. + + + + Disables the default console logger, and not log events to the console. + + The settings. + The same instance so that multiple calls can be chained. + + + + Sets the warning code to treats as an error. + + The settings. + The warning code to treat as an error. + The same instance so that multiple calls can be chained. + + When a warning is treated as an error the target will continue to execute as if it was a warning but the overall build will fail. + + + + + Sets the warning code to treats as a message. + + The settings. + The warning code to treat as a message. + The same instance so that multiple calls can be chained. + + + + Sets how all warnings should be treated. + + The settings. + How all warning should be treated. + The same instance so that multiple calls can be chained. + + + + Sets the configuration. + + The settings. + The configuration. + The same instance so that multiple calls can be chained. + + + + Sets the version. + + The settings. + The version. + The same instance so that multiple calls can be chained. + + Version will override VersionPrefix and VersionSuffix if set. + This may also override version settings during packaging. + + + + + Sets the file version. + + The settings. + The file version. + The same instance so that multiple calls can be chained. + + + + Sets the informational version. + + The settings. + The informational version. + The same instance so that multiple calls can be chained. + + + + Suppress warning CS7035. + This is useful when using semantic versioning and either the file or informational version + doesn't match the recommended format. + The recommended format is: major.minor.build.revision where + each is an integer between 0 and 65534 (inclusive). + + The settings. + The same instance so that multiple calls can be chained. + + + + Sets the version prefix. + + The settings. + The version prefix. + The same instance so that multiple calls can be chained. + + + + Sets the version Suffix. + + The settings. + The version prefix. + The same instance so that multiple calls can be chained. + + + + Adds a framework to target. + + The settings. + The framework to target. + The same instance so that multiple calls can be chained. + + For list of target frameworks see https://docs.microsoft.com/en-us/dotnet/standard/frameworks. + + + + + Sets a target operating systems where the application or assembly will run. + + The settings. + The runtime id of the operating system. + The same instance so that multiple calls can be chained. + + For list of runtime ids see https://docs.microsoft.com/en-us/dotnet/core/rid-catalog. + + + + + Contains functionality related to MSBuild arguments. + + + + + Adds MSBuild arguments + + Argument builder. + MSBuild settings to add. + The environment. + Throws if 10 or more file loggers specified. + + + + Represents how the console color should behave in a console. + + + + + Use the normal console color behaviour. + + + + + Use the default console color for all logging messages. + + + + + Use ANSI console colors even if console does not support it + + + + + Represents the Distributed Logging Model with a central logger and forwarding logger. + + + + + Gets or sets the logger to use as the central logger. + + + + + Gets or sets the logger to use as the forwarding logger. + + + + + Represents the settings for a file logger. + + + + + Gets or sets the path to the log file into which the build log is written. + + + An empty string will use msbuild.log, in the current directory. + + + + + Gets or sets a value indicating whether the build log is appended to the log file or overwrites it. + + + + + Gets or sets the encoding for the file (for example, UTF-8, Unicode, or ASCII). + + + + + Represents the logging output level for a MSBuild logger. + + + + + Show the error and warning summary at the end. + + + + + Show only warnings summary at the end. + + + + + Show only errors summary at the end. + + + + + Represents the common settings for a logger. + + + + + Gets or sets a value indicating whether to show the time that’s spent in tasks, targets, and projects. + + + + + Gets or sets a value indicating whether to hide the error and warning summary at the end. + + + + + Gets or sets value that indicates the level of summary output at the end for the logger. + + Default is to show errors and summary. + + + + Gets or sets a value indicating whether to hide the list of items and properties that would appear at the start of each project build if the verbosity level is set to diagnostic. + + + + + Gets or sets a value indicating whether to show TaskCommandLineEvent messages. + + + + + Gets or sets a value indicating whether to show the timestamp as a prefix to any message. + + + + + Gets or sets a value indicating whether to show the event Id for each started event, finished event, and message. + + + + + Gets or sets a value indicating whether to not align the text to the size of the console buffer. + + + + + Gets or sets value that indicates the type of console color to use for all logging messages. + + + + + Gets or sets a value indicating whether to disable the multiprocessor logging style of output when running in non-multiprocessor mode. + + + + + Gets or sets a value that overrides the /verbosity setting for this logger. + + + + + Represents how all warnings should be treated as by MSBuild. + + + + + Use the default MSBuild behaviour. + + + + + Treat all warnings as low importance messages. + + + + + Treat all warnings as errors. + + + + + .NET Core nuget deleter, deletes or unlists a package from the server. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Delete the NuGet package using the specified name, version and settings. + + The name of the target package. + Version of the package. + The settings. + + + + Contains settings used by . + + + + + Gets or sets a value indicating the server URL. + + + Supported URLs for nuget.org include http://www.nuget.org, http://www.nuget.org/api/v3, + and http://www.nuget.org/api/v2/package. For private feeds, substitute the host name + (for example, %hostname%/api/v3). + + + + + Gets or sets a value indicating whether to prompt for user input or confirmations. + + + + + Gets or sets a value indicating the API key for the server. + + + + + Gets or sets a value indicating whether to force command-line output in English. + + + + + .NET Core nuget pusher, pushes a package and it's symbols to the server. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Push one or more NuGet package using the specified name, version and settings. + + The name of the target package. + The settings. + + + + Contains settings used by . + + + + + Gets or sets a value indicating the server URL. + + + This option is required unless DefaultPushSource config value is set in the NuGet config file. + + + + + Gets or sets a value indicating the symbol server URL. + + + + + Gets or sets a value indicating timeout for pushing to a server in seconds. + + Defaults to 300 seconds (5 minutes). Specifying 0 (zero seconds) applies the default value. + + + + + + Gets or sets a value indicating the API key for the server. + + + + + Gets or sets a value indicating the API key for the symbol server. + + + + + Gets or sets a value indicating whether buffering is disabled when pushing to an HTTP(S) server. + + + This decreases memory usage. + + + + + Gets or sets a value indicating whether symbols should be not be pushed if present. + + + + + Gets or sets a value indicating whether to force command-line output in English. + + + + + .NET Core project packer. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Pack the project using the specified path and settings. + + The target file path. + The settings. + + + + Contains settings used by . + + + + + Gets or sets the output directory. + + + + + Gets or sets the configuration under which to build. + + + + + Gets or sets the value that defines what `*` should be replaced with in version field in project.json. + + + + + Gets or sets a value indicating whether to not build project before packing. + + + + + Gets or sets a value indicating whether to ignore project to project references and only build the root project. + + + Requires .NET Core 2.x or newer. + + + + + Gets or sets a value indicating whether to not do implicit NuGet package restore. + This makes build faster, but requires restore to be done before build is executed. + + + Requires .NET Core 2.x or newer. + + + + + Gets or sets a value indicating whether to generate the symbols nupkg. + + + + + Gets or sets a value indicating whether to includes the source files in the NuGet package. + The sources files are included in the src folder within the nupkg. + + + + + Gets or sets a value indicating whether to set the serviceable flag in the package. + + + For more information, see https://aka.ms/nupkgservicing + + + + + Gets or sets additional arguments to be passed to MSBuild. + + + + + .NET Core project runner. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Publish the project using the specified path and settings. + + The target file path. + The settings. + + + + Contains settings used by . + + + + + Gets or sets the output directory. + + + + + Gets or sets the target runtime. + + + + + Gets or sets a specific framework to compile. + + + + + Gets or sets the configuration under which to build. + + + + + Gets or sets the value that defines what `*` should be replaced with in version field in project.json. + + + + + Gets or sets a value indicating whether to not to build the project before publishing. + This makes build faster, but requires build to be done before publish is executed. + + + Requires .NET Core 2.1 or newer. + + + + + Gets or sets a value indicating whether to ignore project to project references and only build the root project. + + + Requires .NET Core 2.x or newer. + + + + + Gets or sets a value indicating whether to not do implicit NuGet package restore. + This makes build faster, but requires restore to be done before build is executed. + + + Requires .NET Core 2.x or newer. + + + + + Gets or sets a value indicating whether to force all dependencies to be resolved even if the last restore was successful. This is equivalent to deleting project.assets.json. + + + Requires .NET Core 2.x or newer. + + + + + Gets or sets a value indicating whether Publish the .NET Core runtime with your application so the runtime doesn't need to be installed on the target machine. Defaults to 'true' if a runtime identifier is specified. + + + Requires .NET Core 2.x or newer. + + + + + Gets or sets the specified NuGet package sources to use during the restore. + + + Requires .NET Core 2.x or newer. + + + + + Gets or sets additional arguments to be passed to MSBuild. + + + + + .NET Core project restorer. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The cake log. + + + + Restore the project using the specified path and settings. + + List of projects and project folders to restore. Each value can be: a path to a project.json or global.json file, or a folder to recursively search for project.json files. + The settings. + + + + Contains settings used by . + + + + + Gets or sets the specified NuGet package sources to use during the restore. + + + + + Gets or sets the NuGet configuration file to use. + + + + + Gets or sets the directory to install packages in. + + + + + Gets or sets a value indicating whether to do not cache packages and http requests. + + + + + Gets or sets a value indicating whether to disable restoring multiple projects in parallel. + + + + + Gets or sets a value indicating whether to only warning failed sources if there are packages meeting version requirement. + + + + + Gets or sets the target runtime to restore packages for. + + + + + Gets or sets a value indicating whether to ignore project to project references and restore only the root project. + + + + + Gets or sets a value indicating whether to force all dependencies to be resolved even if the last restore was successful. + This is equivalent to deleting the project.assets.json file. + + Note: This flag was introduced with the .NET Core 2.x release. + + + + + Gets or sets additional arguments to be passed to MSBuild. + + + + + .NET Core project runner. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Runs the project using the specified path with arguments and settings. + + The target project path. + The arguments. + The settings. + + + + Contains settings used by . + + + + + Gets or sets a specific framework to compile. + + + + + Gets or sets the configuration under which to build. + + + + + Gets or sets a value indicating whether to not do implicit NuGet package restore. + This makes run faster, but requires restore to be done before run is executed. + + + + + Gets or sets a value indicating whether to not do implicit build. + This makes run faster, but requires build to be done before run is executed. + + + + + .NET Core project tester. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Tests the project using the specified path with arguments and settings. + + The target project path. + The settings. + + + + Contains settings used by . + + + + + Gets or sets the settings file to use when running tests. + + + + + Gets or sets the filter expression to filter out tests in the current project. + + + For more information on filtering support, see https://aka.ms/vstest-filtering + + + + + Gets or sets the path to use for the custom test adapter in the test run. + + + + + Gets or sets a logger for test results + + + + + Gets or sets the output directory. + + + + + Gets or sets the configuration under which to build. + + + + + Gets or sets specific framework to compile. + + + + + Gets or sets a value indicating whether to not build the project before testing. + + + + + Gets or sets a value indicating whether to not do implicit NuGet package restore. + This makes build faster, but requires restore to be done before build is executed. + + + Requires .NET Core 2.x or newer. + + + + + Gets or sets a file to write diagnostic messages to. + + + + + Gets or sets the results directory. This setting is only available from 2.0.0 upward. + + + + + .NET Core Extensibility Commands Runner. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Execute an assembly using arguments and settings. + + The target project path. + The command to execute. + The arguments. + The settings. + + + + Contains settings used by . + + + + + .NET Core VSTest tester. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Tests the project using the specified path with arguments and settings. + + A list of test files to run. + The settings. + + + + Contains settings used by . + + + + + Gets or sets the settings file to use when running tests. + + + + + Gets or sets the a list tests to run. + + + + + Gets or sets the path to use for the custom test adapter in the test run. + + + + + Gets or sets the target platform architecture to be used for test execution. + + + + + Gets or sets specific .Net Framework version to be used for test execution. + + + Valid values are ".NETFramework,Version=v4.6", ".NETCoreApp,Version=v1.0" etc. + Other supported values are Framework35, Framework40, Framework45 and FrameworkCore10. + + + + + Gets or sets a value indicating whether the tests should be executed in parallel. + + + By default up to all available cores on the machine may be used. The number of cores to use may be configured using a settings file. + + + + + Gets or sets the filter expression to run test that match. + + + For more information on filtering support, see https://aka.ms/vstest-filtering + + + + + Gets or sets a logger for test results. + + + + + Gets or sets the Process Id of the Parent Process responsible for launching current process. + + + + + Gets or sets the Port for socket connection and receiving the event messages. + + + + + Gets or sets a file to write diagnostic messages to. + + + + + Gets or sets a list of extra arguments that should be passed to adapter. + + + + + Initializes a new instance of the class. + + + + + Contains functionality related to ReSharper's dupFinder tool. + + In order to use the commands for this alias, include the following in your build.cake file to download and + install from NuGet.org, or specify the ToolPath within the class: + + #tool "nuget:?package=JetBrains.ReSharper.CommandLineTools" + + + + + + + Analyses the specified file with ReSharper's DupFinder. + The file can either be a solution/project or a source file. + + The context. + The file to analyze. + + + DupFinder("./src/MySolution.sln"); + + + + + + Analyses the specified file with ReSharper's DupFinder using the specified settings. + The file can either be a solution/project or a source file. + + The context. + The file to analyze. + The settings. + + + var buildOutputDirectory = Directory("./.build"); + var resharperReportsDirectory = buildOutputDirectory + Directory("_ReSharperReports"); + var rootDirectoryPath = MakeAbsolute(Context.Environment.WorkingDirectory); + + DupFinder("./src/MySolution.sln", new DupFinderSettings { + ShowStats = true, + ShowText = true, + ExcludePattern = new String[] + { + rootDirectoryPath + "/**/*Designer.cs", + }, + OutputFile = resharperReportsDirectory + File("dupfinder-output.xml"), + ThrowExceptionOnFindingDuplicates = true + }); + + + + + + Analyses the specified projects with ReSharper's DupFinder. + The files can either be solutions and projects or a source files. + + The context. + The files to analyze. + + + var projects = GetFiles("./src/**/*.csproj"); + DupFinder(projects); + + + + + + Analyses the specified projects with ReSharper's DupFinder using the specified settings. + The files can either be solutions and projects or a source files. + + The context. + The files to analyze. + The settings. + + + var buildOutputDirectory = Directory("./.build"); + var resharperReportsDirectory = buildOutputDirectory + Directory("_ReSharperReports"); + var rootDirectoryPath = MakeAbsolute(Context.Environment.WorkingDirectory); + + var projects = GetFiles("./src/**/*.csproj"); + DupFinder(projects, new DupFinderSettings { + ShowStats = true, + ShowText = true, + ExcludePattern = new String[] + { + rootDirectoryPath + "/**/*Designer.cs", + }, + OutputFile = resharperReportsDirectory + File("dupfinder-output.xml"), + ThrowExceptionOnFindingDuplicates = true + }); + + + + + + Analyses all files matching the specified pattern with ReSharper's DupFinder. + + The context. + The pattern. + + + DupFinder("*.cs"); + + + + + + Analyses all files matching the specified pattern with ReSharper's DupFinder, + using the specified settings. + + The context. + The pattern. + The settings. + + + var buildOutputDirectory = Directory("./.build"); + var resharperReportsDirectory = buildOutputDirectory + Directory("_ReSharperReports"); + + DupFinder("*.cs", new DupFinderSettings { + OutputFile = resharperReportsDirectory + File("dupfinder-output.xml"), + }); + + + + + + Runs ReSharper's DupFinder using the provided config file. + + The context. + The config file. + + + DupFinderFromConfig("./src/dupfinder.config"); + + + + + + DupFinder runner + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The logger. + + + + Analyses the specified files using the specified settings. + + The file paths. + The settings. + + + + Runs ReSharper's DupFinder using the provided config file. + + The config file. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Contains settings used by . + + + + + Gets or sets a value indicating whether the debug output should be enabled. + + + + + Gets or sets the complexity threshold for duplicate fragments. + Code fragment with lower complexity are discarded. + + + + + Gets or sets a value indicating whether to discard similar fields with different names. + + + + + Gets or sets a value indicating whether to discard similar lines of code with different literals. + + + + + Gets or sets a value indicating whether to discard similar local variables with different names. + + + + + Gets or sets a value indicating whether to discard similar types with different names. + + + + + Gets or sets a value indicating whether the process priority should be set to idle. + + + + + Gets or sets a list of keywords to exclude files that contain one of the keywords in their opening comments. + + + + + Gets or sets a list of keywords to exclude regions that contain one of the keywords in their message. + + + + + Gets or sets a lift of patterns which will be excluded from the analysis. + + + + + Gets or sets MsBuild properties. + + + + + Gets or sets a value indicating whether to normalize type names to the last subtype. + + + + + Gets or sets the directory where caches will be stored. + The default is %TEMP%. + + + + + Gets or sets the location DupFinder should write its output. + + The location DupFinder should write its output + + + + Gets or sets a value indicating whether to show CPU and memory usage statistics. + + + + + Gets or sets a value indicating whether to show duplicates text in the report. + + + + + Gets or sets a value indicating whether to throw an exception on finding duplicates + + + + + Contains functionality related to running Fixie tests. + + In order to use the commands for this alias, include the following in your build.cake file to download and + install from NuGet.org, or specify the ToolPath within the class: + + #tool "nuget:?package=Fixie" + + + + + + + Runs all Fixie tests in the assemblies matching the specified pattern. + + + + Fixie("./src/UnitTests/*.dll"); + + + The context. + The pattern. + + + + Runs all Fixie tests in the assemblies matching the specified pattern, + using the specified settings. + + + + Fixie("./src/UnitTests/*.dll", new FixieSettings { + NUnitXml = TestResult.xml + }); + + + The context. + The pattern. + The settings. + + + + Runs all Fixie tests in the specified assemblies. + + + + var assemblies = new [] { + "UnitTests1.dll", + "UnitTests2.dll" + }; + Fixie(assemblies); + + + The context. + The assemblies. + + + + Runs all Fixie tests in the specified assemblies. + + + + var assemblies = GetFiles("./src/UnitTests/*.dll"); + Fixie(assemblies); + + + The context. + The assemblies. + + + + Runs all Fixie tests in the specified assemblies, + using the specified settings. + + + + var assemblies = new [] { + "UnitTests1.dll", + "UnitTests2.dll" + }; + Fixie(assemblies, new FixieSettings { + NUnitXml = TestResult.xml + }); + + + The context. + The assemblies. + The settings. + + + + Runs all Fixie tests in the specified assemblies, + using the specified settings. + + + + var assemblies = GetFiles("./src/UnitTests/*.dll"); + Fixie(assemblies, new FixieSettings { + NUnitXml = TestResult.xml + }); + + + The context. + The assemblies. + The settings. + + + + The Fixie test runner. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The globber. + + + + Runs the tests in the specified assemblies, using the specified settings. + + The assembly paths. + The settings. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Contains settings used by . + + + + + Gets or sets the file to be used to output NUnit style of XML results. + + + The name of the file to write NUnit style of results. + + + + + Gets or sets the file to be used to output xUnit style of XML results. + + + The name of the file to write xUnit style of results. + + + + + Gets or sets the the option to force TeamCity-formatted output on or off. + + + The value of TeamCity-formatted output. Either "on" or "off". + + + + + Gets the collection of Options as KeyValuePairs. + + + The collection of keys and values. + + + + + Contains functionality related to Fixie settings. + + + + + Adds an option to the settings. + + The settings. + The option name. + The option values. + The same instance so that multiple calls can be chained. + + + + Contains functionality related to GitLink version 3. + + In order to use the commands for this alias, include the following in your build.cake file to download and + install from NuGet.org, or specify the ToolPath within the class: + + #tool "nuget:?package=gitlink" + + + + + + + Update the pdb file to link all sources. + This will allow anyone to step through the source code while debugging without a symbol source server. + + The context. + The PDB File to analyze. + + + GitLink3("C:/temp/solution/bin/my.pdb"); + + + + + + Update the pdb file to link all sources. + This will allow anyone to step through the source code while debugging without a symbol source server. + + The context. + The PDB File to analyze. + The settings. + + + GitLink3("C:/temp/solution/bin/my.pdb", new GitLink3Settings { + RepositoryUrl = "http://mydomain.com", + ShaHash = "abcdef" + }); + + + + + + Update the pdb files to link all sources. + This will allow anyone to step through the source code while debugging without a symbol source server. + + The context. + The PDB File collection to analyze. + + + GitLink3("C:/temp/solution/bin/**/*.pdb"); + + + + + + Update the pdb files to link all sources. + This will allow anyone to step through the source code while debugging without a symbol source server. + + The context. + The PDB File collection to analyze. + The settings. + + + GitLink3("C:/temp/solution/bin/**/*.pdb", new GitLink3Settings { + RepositoryUrl = "http://mydomain.com", + ShaHash = "abcdef" + }); + + + + + + GitLink runner + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Update pdb file to link all sources + + The path to the pdb file to link. + The settings. + + + + Update pdb files to link all sources + + The file path collection for the pdb files to link. + The settings. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Contains settings used by . + + + + + Gets or sets the Url to remote git repository. + + + + + Gets or sets the SHA-1 hash of the git commit to be used. + + + + + Gets or sets the path to the root of the git repository + + + + + Gets or sets a value indicating whether the Use PowerShell Command option should be enabled. + This option will use PowerShell instead of HTTP in SRCSRV to retreive the source code. + + + + + Gets or sets a value indicating whether the Skip Verify option should be enabled. + This option indicates whether verification of all source files are available in source control. + + + + + Contains functionality related to GitLink. + + In order to use the commands for this alias, include the following in your build.cake file to download and + install from NuGet.org, or specify the ToolPath within the class: + + #tool "nuget:?package=gitlink&version=2.4.0" + + + + + + + Update pdb files to link all sources. + This will allow anyone to step through the source code while debugging without a symbol source server. + + The context. + The Solution File to analyze. + + + GitLink("C:/temp/solution"); + + + + + + Update pdb files to link all sources, using specified settings. + This will allow anyone to step through the source code while debugging without a symbol source server. + + The context. + The path to the Root of the Repository to analyze. + The settings. + + + GitLink("C:/temp/solution", new GitLinkSettings { + RepositoryUrl = "http://mydomain.com", + Branch = "master", + ShaHash = "abcdef", + }); + + + + + + GitLink runner + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Update pdb files to link all sources. + + The path to the Root of the Repository to analyze. + The settings. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Contains settings used by . + + + + + Gets or sets the Url to remote git repository. + + + + + Gets or sets the Solution file name. + + + + + Gets or sets the name of the configuration. + + Default is Release + + + + Gets or sets the name of the platform. + + Default is AnyCPU + + + + Gets or sets the name of the branch to use on the remote repository. + + + + + Gets or sets the path to the GitLink log file. + + + + + Gets or sets the SHA-1 hash of the git commit to be used. + + + + + Gets or sets the directory where the PDB files are located. + + + + + Gets or sets a value indicating whether the Use PowerShell Command option should be enabled. + + + + + Gets or sets a value indicating whether the ErrorsAsWarnings option should be enabled. + + + + + Gets or sets a value indicating whether the Skip Verify option should be enabled. + + + + + Gets or sets a value indicating whether the debug output should be enabled. + + + + + Contains settings used by . + + + + + Gets or sets the path on which GitReleaseManager should be executed. + + + + + Gets or sets the path to the GitReleaseManager log file. + + + + + The GitReleaseManager Asset Adder used to add assets to a release. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Creates a Release using the specified and settings. + + The user name. + The password. + The owner. + The repository. + The tag name. + The assets to upload. + The settings. + + + + Contains settings used by . + + + + + Gets or sets the path on which GitReleaseManager should be executed. + + + + + Gets or sets the path to the GitReleaseManager log file. + + + + + The GitReleaseManager Milestone Closer used to close milestones. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Creates a Release using the specified settings. + + The user name. + The password. + The owner. + The repository. + The milestone. + The settings. + + + + Contains settings used by . + + + + + Gets or sets the milestone to be used when creating the release. + + + + + Gets or sets the name to be used when creating the release. + + + + + Gets or sets the location of a set of Release Notes to be used when creating the release. + + + + + Gets or sets a value indicating whether or not to create the release as a pre-release. + + + + + Gets or sets the Path(s) to the file(s) to include in the release. + + + + + Gets or sets the commit to tag. Can be a branch or SHA. Defaults to repository's default branch.. + + + + + Gets or sets the path on which GitReleaseManager should be executed. + + + + + Gets or sets the path to the GitReleaseManager log file. + + + + + The GitReleaseManager Release Creator used to create releases. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Creates a Release using the specified and settings. + + The user name. + The password. + The owner. + The repository. + The settings. + + + + The GitReleaseManager Release Publisher used to publish releases. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Creates a Release using the specified and settings. + + The user name. + The password. + The owner. + The repository. + The output path. + The settings. + + + + Contains settings used by . + + + + + Gets or sets the tag name to be used when exporting the release notes. + + + + + Gets or sets the path on which GitReleaseManager should be executed. + + + + + Gets or sets the path to the GitReleaseManager log file. + + + + + Contains functionality related to GitReleaseManager. + + In order to use the commands for this alias, include the following in your build.cake file to download and + install from NuGet.org, or specify the ToolPath within the appropriate settings class: + + #tool "nuget:?package=gitreleasemanager" + + + + + + + Creates a Package Release. + + The context. + The user name. + The password. + The owner. + The repository. + + + GitReleaseManagerCreate("user", "password", "owner", "repo"); + + + + + GitReleaseManagerCreate("user", "password", "owner", "repo"); + + + + + + Creates a Package Release using the specified settings. + + The context. + The user name. + The password. + The owner. + The repository. + The settings. + + + GitReleaseManagerCreate("user", "password", "owner", "repo", new GitReleaseManagerCreateSettings { + Milestone = "0.1.0", + Prerelease = false, + Assets = "c:/temp/asset1.txt,c:/temp/asset2.txt", + TargetCommitish = "master", + TargetDirectory = "c:/repo", + LogFilePath = "c:/temp/grm.log" + }); + + + + + GitReleaseManagerCreate("user", "password", "owner", "repo", new GitReleaseManagerCreateSettings { + Name = "0.1.0", + InputFilePath = "c:/repo/releasenotes.md", + Prerelease = false, + Assets = "c:/temp/asset1.txt,c:/temp/asset2.txt", + TargetCommitish = "master", + TargetDirectory = "c:/repo", + LogFilePath = "c:/temp/grm.log" + }); + + + + + + Add Assets to an existing release. + + The context. + The user name. + The password. + The owner. + The repository. + The tag name. + The assets. + + + GitReleaseManagerAddAssets("user", "password", "owner", "repo", "0.1.0", "c:/temp/asset1.txt,c:/temp/asset2.txt"); + + + + + + Add Assets to an existing release using the specified settings. + + The context. + The user name. + The password. + The owner. + The repository. + The tag name. + The assets. + The settings. + + + GitReleaseManagerAddAssets("user", "password", "owner", "repo", "0.1.0", "c:/temp/asset1.txt,c:/temp/asset2.txt" new GitReleaseManagerAddAssetsSettings { + TargetDirectory = "c:/repo", + LogFilePath = "c:/temp/grm.log" + }); + + + + + + Closes the milestone associated with a release. + + The context. + The user name. + The password. + The owner. + The repository. + The milestone. + + + GitReleaseManagerClose("user", "password", "owner", "repo", "0.1.0"); + + + + + + Closes the milestone associated with a release using the specified settings. + + The context. + The user name. + The password. + The owner. + The repository. + The milestone. + The settings. + + + GitReleaseManagerClose("user", "password", "owner", "repo", "0.1.0", new GitReleaseManagerCloseMilestoneSettings { + TargetDirectory = "c:/repo", + LogFilePath = "c:/temp/grm.log" + }); + + + + + + Publishes the release. + + The context. + The user name. + The password. + The owner. + The repository. + The tag name. + + + GitReleaseManagerPublish("user", "password", "owner", "repo", "0.1.0"); + + + + + + Publishes the release using the specified settings. + + The context. + The user name. + The password. + The owner. + The repository. + The tag name. + The settings. + + + GitReleaseManagerPublish("user", "password", "owner", "repo", "0.1.0", new GitReleaseManagerPublishSettings { + TargetDirectory = "c:/repo", + LogFilePath = "c:/temp/grm.log" + }); + + + + + + Exports the release notes. + + The context. + The user name. + The password. + The owner. + The repository. + The output file path. + + + GitReleaseManagerExport("user", "password", "owner", "repo", "c:/temp/releasenotes.md") + }); + + + + + + Exports the release notes using the specified settings. + + The context. + The user name. + The password. + The owner. + The repository. + The output file path. + The settings. + + + GitReleaseManagerExport("user", "password", "owner", "repo", "c:/temp/releasenotes.md", new GitReleaseManagerExportSettings { + TagName = "0.1.0", + TargetDirectory = "c:/repo", + LogFilePath = "c:/temp/grm.log" + }); + + + + + + Base class for all GitReleaseManager related tools. + + The settings type. + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + The GitReleaseManager Release Publisher used to publish releases. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Creates a Release using the specified and settings. + + The user name. + The password. + The owner. + The repository. + The tag name. + The settings. + + + + Contains settings used by . + + + + + Gets or sets the path on which GitReleaseManager should be executed. + + + + + Gets or sets the path to the GitReleaseManager log file. + + + + + Contains functionality related to GitReleaseNotes. + + In order to use the commands for this alias, include the following in your build.cake file to download and + install from NuGet.org, or specify the ToolPath within the class: + + #tool "nuget:?package=GitReleaseNotes" + + + + + + + Generates a set of release notes based on the commit history of the repository and specified settings. + + The context. + The output file. + The settings. + + + GitReleaseNotes("c:/temp/releasenotes.md", new GitReleaseNotesSettings { + WorkingDirectory = "c:/temp", + Verbose = true, + IssueTracker = IssueTracker.GitHub, + AllTags = true, + RepoUserName = "bob", + RepoPassword = "password", + RepoUrl = "http://myrepo.co.uk", + RepoBranch = "master", + IssueTrackerUrl = "http://myissuetracker.co.uk", + IssueTrackerUserName = "bob", + IssueTrackerPassword = "password", + IssueTrackerProjectId = "1234", + Categories = "Category1", + Version = "1.2.3.4", + AllLabels = true + }); + + + + + + The IssueTracker to be used. + + + + + Uses BitBucket as Issue Tracker. + + + + + Uses GitHub as Issue Tracker. + + + + + Uses Jira as Issue Tracker. + + + + + Uses YouTrack as Issue Tracker. + + + + + The GitReleaseNotes runner. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Runs GitVersion and processes the results. + + The output file. + The settings. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Contains settings used by . + + + + + Gets or sets a value indicating whether verbose logging is used. + + + + + Gets or sets the IssueTracker to use. + + + + + Gets or sets a value indicating whether all tags should be included in the releasenotes. + + If not specified then only the issues since that last tag are included. + + + + Gets or sets the username to use when accessing repository. + + + + + Gets or sets the password to use when accessing repository. + + + + + Gets or sets the token to use when accessing repository. + + To be used instead of username/password + + + + Gets or sets the Url to use when accessing repository. + + To be used instead of username/password + + + + Gets or sets the branch name to checkout any existing release notes file. + + To be used instead of username/password + + + + Gets or sets the Url to the Issue Tracker. + + To be used instead of username/password + + + + Gets or sets the username to use when accessing issue tracker. + + + + + Gets or sets the password to use when accessing issue tracker. + + + + + Gets or sets the token to use when accessing issue tracker. + + To be used instead of username/password + + + + Gets or sets the Project Id to use when accessing issue tracker. + + + + + Gets or sets the Jql query for closed issues you would like included if mentioned. + + + + + Gets or sets a value which allows additional labels to be treated as categories. + + + + + Gets or sets a value which specifies the version to publish. + + + + + Gets or sets a value indicating whether all labels should be included in the releasenotes. + + If not specified then only the defaults (bug, enhancement, feature) are included. + + + + GitVersion information + + + + + Gets or sets the major version. + + + + + Gets or sets the minor version. + + + + + Gets or sets the patch version. + + + + + Gets or sets the pre-release tag. + + + + + Gets or sets the pre-release tag with dash. + + + + + Gets or sets the pre-release label. + + + + + Gets or sets the pre-release number. + + + + + Gets or sets the build metadata. + + + + + Gets or sets the build metadata padded. + + + + + Gets or sets the major version. + + + + + Gets or sets the major, minor, and path. + + + + + Gets or sets the Semantic Version. + + + + + Gets or sets the legacy Semantic Version. + + + + + Gets or sets the padded legacy Semantic Version. + + + + + Gets or sets the assembly Semantic Version. + + + + + Gets or sets the assembly semantic file version. + + + + + Gets or sets the full Semantic Version. + + + + + Gets or sets the informational version. + + + + + Gets or sets the branch name. + + + + + Gets or sets the git sha. + + + + + Gets or sets the nuget version for v2. + + + + + Gets or sets the nuget version. + + + + + Gets or sets the commits since version source + + + + + Gets or sets the commits since version source padded + + + + + Gets or sets the commit date + + + + + Contains functionality related to GitVersion. + + In order to use the commands for this alias, include the following in your build.cake file to download and + install from NuGet.org, or specify the ToolPath within the class: + + #tool "nuget:?package=GitVersion.CommandLine" + + + + + + + Retrieves the GitVersion output. + + The context. + The git version info. + + Update the assembly info files for the project. + Cake task: + + + { + GitVersion(new GitVersionSettings { + UpdateAssemblyInfo = true + }); + }); + ]]> + + Get the git version info for the project using a dynamic repository. + Cake task: + + + { + var result = GitVersion(new GitVersionSettings { + UserName = "MyUser", + Password = "MyPassword, + Url = "http://git.myhost.com/myproject.git" + Branch = "develop" + Commit = EnviromentVariable("MY_COMMIT") + }); + // Use result for building nuget packages, setting build server version, etc... + }); + ]]> + + + + + + Retrieves the GitVersion output. + + The context. + The GitVersion settings. + The git version info. + + Update the assembly info files for the project. + Cake task: + + + { + GitVersion(new GitVersionSettings { + UpdateAssemblyInfo = true + }); + }); + ]]> + + Get the git version info for the project using a dynamic repository. + Cake task: + + + { + var result = GitVersion(new GitVersionSettings { + UserName = "MyUser", + Password = "MyPassword, + Url = "http://git.myhost.com/myproject.git" + Branch = "develop" + Commit = EnviromentVariable("MY_COMMIT") + }); + // Use result for building nuget packages, setting build server version, etc... + }); + ]]> + + + + + + The git version output type. + + + + + Outputs to the stdout using json. + + + + + Outputs to the stdout in a way usuable by a detected buildserver. + + + + + The GitVersion runner. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The log. + + + + Runs GitVersion and processes the results. + + The settings. + A task with the GitVersion results. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Contains settings used by . + + + + + Gets or sets the path for the git repository to use. + + + + + Gets or sets the output type. + + + + + Gets or sets a value indicating whether to update all the assemblyinfo files. + + + + + Gets or sets whether to update all the assemblyinfo files. + + + + + Gets or sets whether to only show a specific variable. + + + + + Gets or sets the username for the target repository. + + + + + Gets or sets the password for the target repository. + + + + + Gets or sets the git url to use if using dynamic repositories. + + + + + Gets or sets the branch to use if using dynamic repositories. + + + + + Gets or sets the branch to use if using dynamic repositories. + + + + + Gets or sets a value indicating whether to fetch repository information from remote when calculating version. + + If your CI server clones the entire repository you can set this to 'true' to prevent GitVersion attempting any remote repository fetching + + + + Gets or sets the dynamic repository path. Defaults to %TEMP%. + + + + + Gets or sets the path to the log file. + + + + + Contains functionality related to ILRepack. + + In order to use the commands for this alias, include the following in your build.cake file to download and + install from NuGet.org, or specify the ToolPath within the class: + + #tool "nuget:?package=ILRepack" + + + + + + + Merges the specified assemblies. + + The context. + The output file. + The primary assembly. + The assembly paths. + + + var assemblyPaths = GetFiles("./**/Cake.*.dll"); + ILRepack("./MergedCake.exe", "./Cake.exe", assemblyPaths); + + + + + + Merges the specified assemblies. + + The context. + The output file. + The primary assembly. + The assembly paths. + The settings. + + + var assemblyPaths = GetFiles("./**/Cake.*.dll"); + ILRepack( + "./MergedCake.exe", + "./Cake.exe", + assemblyPaths, + new ILRepackSettings { Internalize = true }); + + + + + + The ILMerge runner. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Merges the specified assemblies. + + The output assembly path. + The primary assembly path. + The assembly paths. + The settings. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the name of the tool executable. + + The tool executable name. + + + + Contains settings used by . + + + + + Gets or sets a keyfile to sign the output assembly + + The keyfile. + + + + Gets or sets a file to enable logging to (no logging if null or empty) + + The log file. + + + + Gets or sets the target assembly version. + + The version. + + + + Gets or sets a value indicating whether to merge types with identical names into one + + true if types with identical names should be merged into one; otherwise, false. + + + + Gets or sets a value indicating whether to disable symbol file generation + + true if debug symbols should be disabled; otherwise, false. + + + + Gets or sets a value indicating whether to copy assembly attributes (by default only the primary assembly attributes are copied) + + true if assembly attributes should be copied; otherwise, false. + + + + Gets or sets the assembly file to take attributes from + + The assembly file to take attributes from. + + + + Gets or sets a value indicating whether to allow multiple attributes (if type allows) + + true if multiple attributes should be allowed; otherwise, false. + + + + Gets or sets the specify target assembly kind (library, exe, winexe supported, default is same as first assembly) + + The kind of the target assembly to create. + + + + Gets or sets the target platform (v1, v1.1, v2, v4 supported) + + The target platform. + + + + Gets or sets a value indicating whether to merge XML documentation as well + + true if xml documents should be merged; otherwise, false. + + + + Gets or sets the paths to search directories for referenced assemblies (can be specified multiple times) + + The libs. + + + + Gets or sets a value indicating whether to set all types but the ones from the first assembly 'internal' + + + true if types in assemblies other than the primary assembly should + have their visibility modified to internal; otherwise, false. + + + + + Gets or sets a value indicating whether to set the key, but don't sign the assembly + + true if assembly should be delay signed; otherwise, false. + + + + Gets or sets the specified type for being duplicated in input assemblies + + The type to allow duplication of. + + + + Gets or sets a value indicating whether to duplicate resources in output assembly (by default they're ignored) + + true if duplicate resources should be allowed in the output assembly; otherwise, false. + + + + Gets or sets a value indicating whether to allow assemblies with Zero PeKind (but obviously only IL will get merged) + + true if assemblies with Zero PeKind should be allowed; otherwise, false. + + + + Gets or sets a value indicating whether to allow (and resolve) file wildcards (e.g. `*`.dll) in input assemblies + + true if file wildcards should be allowed in input assembly paths; otherwise, false. + + + + Gets or sets a value indicating whether to use as many CPUs as possible to merge the assemblies + + true if merging should use as many CPUs as possible in parallel; otherwise, false. + + + + Gets or sets a value indicating whether to pause execution once completed (good for debugging) + + true if execution should pause once completed; otherwise, false. + + + + Gets or sets a value indicating whether to show more logs + + true if more logs should be output during execution; otherwise, false. + + + + Contains functionality related to Inno Setup. + + In order to use the commands for this alias, Inno Setup will need to be installed on the machine where + the Cake script is being executed. See this page for information + on how to download/install. + + + + + + Compiles the given Inno Setup script using the default settings. + + The context. + The path to the .iss script file to compile. + + + InnoSetup("./src/Cake.iss"); + + + + + + Compiles the given Inno Setup script using the given . + + The context. + The path to the .iss script file to compile. + The to use. + + + InnoSetup("./src/Cake.iss", new InnoSetupSettings { + OutputDirectory = outputDirectory + }); + + + + + + Represents the possible quiet modes when compiling an Inno Setup script. + + + + + Quiet mode disabled. This is the default value. + + + + + Quiet mode. Only error messages are printed. + + + + + Quiet mode with progress. Same as quiet mode, but also displays progress. + + + + + The runner which executes Inno Setup. + + + + + Initializes a new instance of the class. + + The file system. + The registry. + The environment. + The process runner. + The tool locator. + + + + Runs iscc.exe with the specified script files and settings. + + The script file (.iss) to compile. + The settings. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Gets alternative file paths which the tool may exist in + + The settings. + The default tool path. + + + + Contains settings used by the . + + + + + Gets or sets the script compiler defines. Emulates #define public preprocessor directive. + + + + + Gets or sets whether or not the compiler should generate output (/O+ and /O- command line options, + overrides the script's Output attribute). + + + + + Gets or sets the output directory (/O<path> command line option, overrides the script's OutputDir + attribute). + + + + + Gets or sets the output base file name (/F<filename> command line option, overrides the script's + OutputBaseFilename attribute). + + + + + Gets or sets the script compiler's quiet mode (/Q and /Qp command line options). + + + + + Initializes a new instance of the class with the default settings. + + + + + Contains functionality related to ReSharper's InspectCode tool. + + In order to use the commands for this alias, include the following in your build.cake file to download and + install from NuGet.org, or specify the ToolPath within the class: + + #tool "nuget:?package=JetBrains.ReSharper.CommandLineTools" + + + + + + + Analyses the specified solution with Resharper's InspectCode. + + The context. + The solution. + + + InspectCode("./src/MySolution.sln"); + + + + + + Analyses the specified solution with Resharper's InspectCode, + using the specified settings. + + The context. + The solution. + The settings. + + + var buildOutputDirectory = Directory("./.build"); + var resharperReportsDirectory = buildOutputDirectory + Directory("_ReSharperReports"); + + var msBuildProperties = new Dictionary<string, string>(); + msBuildProperties.Add("configuration", configuration); + msBuildProperties.Add("platform", "AnyCPU"); + + InspectCode("./MySolution.sln", new InspectCodeSettings { + SolutionWideAnalysis = true, + Profile = "./MySolution.sln.DotSettings", + MsBuildProperties = msBuildProperties, + OutputFile = resharperReportsDirectory + File("inspectcode-output.xml"), + ThrowExceptionOnFindingViolations = true + }); + + + + + + Runs ReSharper's InspectCode using the specified config file. + + The context. + The config file. + + + InspectCodeFromConfig("./src/inspectcode.config"); + + + + + + InspectCode runner + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + The logger. + + + + Analyses the specified solution, using the specified settings. + + The solution. + The settings. + + + + Runs ReSharper's InspectCode using the provided config file. + + The config file. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Contains settings used by . + + + + + Gets or sets the location InspectCode should write its output. + + The location that InspectCode should write its output + + + + Gets or sets a value indicating whether enable solution-wide analysis should be forced. + Default value is false. + + + true if solution-wide analysis should be enabled by force; otherwise, fault. + + + + + Gets or sets a value indicating whether disable solution-wide analysis should be forced. + Default value is false + + + true if solution-wide analysis should be disabled by force; otherwise, fault. + + + + + Gets or sets a filter to analyze only particular project(s) instead of the whole solution. + Supports wildcards. + + The filter to analyze only particular projects(s). + + + + Gets or sets MSBuild properties. + + The MSBuild properties to override + + + + Gets or sets a list of Resharper extensions which will be used. + + + + + Gets or sets the directory where caches will be stored. + The default is %TEMP%. + + The directory where caches will be stored. + + + + Gets or sets a value indicating whether the debug output should be enabled. + + + true if the debug output should be enabled; otherwise, false. + + + + + Gets or sets a value indicating whether all global, solution and project settings should be ignored. + Alias for disabling the settings layers GlobalAll, GlobalPerProduct, SolutionShared, SolutionPersonal, ProjectShared and ProjectPersonal. + + + + + Gets or sets a list of InspectCodeSettings which will be disabled. + + + + + Gets or sets the path to the file to use custom settings from. + + + + + Gets or sets a value indicating whether to throw an exception on finding violations + + + + + Represents Resharper's settings layers. + + + + + SettingsLayer: GlobalAll. + + + + + SettingsLayer: GlobalPerProduct. + + + + + SettingsLayer: SolutionShared. This layer is saved in %SolutionName%.sln.DotSettings + + + + + SettingsLayer: SolutionPersonal. This layer is saved in %SolutionName%.sln.DotSettings.user. + + + + + SettingsLayer: ProjectShared. This layer is saved in %ProjectName%.csproj.DotSettings. + + + + + SettingsLayer: ProjectPersonal. This layer is saved in %ProjectName%.csproj.DotSettings.user. + + + + + Contains functionality related to running Machine.Specifications tests. + + In order to use the commands for this alias, include the following in your build.cake file to download and + install from NuGet.org, or specify the ToolPath within the class: + + #tool "nuget:?package=mspec.runner.console" + + + + + + + Runs all MSpec tests in the assemblies matching the specified pattern. + + The context. + The pattern. + + + MSpec("./src/**/bin/Release/*.Tests.dll"); + + + + + + Runs all MSpec tests in the assemblies matching the specified pattern. + + The context. + The pattern. + The settings. + + + MSpec("./src/**/bin/Release/*.Tests.dll", + new MSpecSettings { + Parallelism = ParallelismOption.All, + HtmlReport = true, + NoAppDomain = true, + OutputDirectory = "./build" + }); + + + + + + Runs all MSpec tests in the specified assemblies. + + The context. + The assemblies. + + + MSpec(new []{ + "./src/Cake.Common.Tests/bin/Release/Cake.Common.Tests.dll", + "./src/Cake.Core.Tests/bin/Release/Cake.Core.Tests.dll", + "./src/Cake.NuGet.Tests/bin/Release/Cake.NuGet.Tests.dll", + "./src/Cake.Tests/bin/Release/Cake.Tests.dll" + }); + + + + + + Runs all MSpec tests in the specified assemblies. + + The context. + The assemblies. + + + var testAssemblies = GetFiles("./src/**/bin/Release/*.Tests.dll"); + MSpec(testAssemblies); + + + + + + Runs all MSpec tests in the specified assemblies. + + The context. + The assemblies. + The settings. + + + MSpec(new []{ + "./src/Cake.Common.Tests/bin/Release/Cake.Common.Tests.dll", + "./src/Cake.Core.Tests/bin/Release/Cake.Core.Tests.dll", + "./src/Cake.NuGet.Tests/bin/Release/Cake.NuGet.Tests.dll", + "./src/Cake.Tests/bin/Release/Cake.Tests.dll" + }, + new MSpecSettings { + Parallelism = ParallelismOption.All, + HtmlReport = true, + NoAppDomain = true, + OutputDirectory = "./build" + }); + + + + + + Runs all MSpec tests in the specified assemblies. + + The context. + The assemblies. + The settings. + + + var testAssemblies = GetFiles("./src/**/bin/Release/*.Tests.dll"); + MSpec(testAssemblies, + new MSpecSettings { + Parallelism = ParallelismOption.All, + HtmlReport = true, + NoAppDomain = true, + OutputDirectory = "./build" + }); + + + + + + The MSpec unit test runner. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Runs the tests in the specified assemblies, using the specified settings. + + The assembly paths. + The settings. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Contains settings used by . + + + + + Gets or sets the path to the filter file specifying contexts to execute(full type name, one per line). Takes precedence over + tags + + + + + Gets or sets a value indicating whether reporting for TeamCity CI integration(also auto - detected) + + + true to turn on TeamCity service messages; otherwise, false. + + + + + Gets or sets a value indicating whether to suppress colored console output + + + true disable color output; otherwise, false. + + + + + Gets or sets a value indicating whether an XML report should be generated. + + + true if an XML report should be generated; otherwise, false. + + + + + Gets or sets a value indicating whether an HTML report should be generated. + + + true if an HTML report should be generated; otherwise, false. + + + + + Gets or sets the name that should be used for the HTML and XML reports. + + The custom report name. + + + + Gets or sets Executes all specifications in contexts with these comma delimited tags. Ex. - i "foo,bar,foo_bar" + + + + + Gets or sets Exclude specifications in contexts with these comma delimited tags. Ex. - x "foo,bar,foo_bar" + + + + + Gets or sets a value indicating whether to show time-related information in HTML output + + + + + Gets or sets a value indicating whether to suppress progress output(print fatal errors, failures and summary) + + + + + Gets or sets a value indicating whether to print dotted progress output + + + + + Gets or sets a value indicating whether to wait 15 seconds for debugger to be attached + + + + + Gets or sets a value indicating whether to disable TeamCity autodetection + + + + + Gets or sets a value indicating whether to enable reporting for AppVeyor CI integration(also auto - detected) + + + + + Gets or sets a value indicating whether disable AppVeyor autodetection + + + + + Gets or sets output directory for reports + + + + + Gets or sets a value indicating whether to use X86 + + + + + The runner which executes NSIS. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Runs makensis.exe with the specified script files and settings. + + The script file (.nsi) to compile. + The settings. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Contains settings used by the . + + + + + Gets or sets the script compiler defines. + + + + + Gets or sets a value indicating whether to disable current directory change to that of the script file. + + + + + Gets or sets a value indicating whether to disable inclusion of the nsisconf.nsh file. + + + + + Contains functionality related to NSIS. + + In order to use the commands for this alias, NSIS will need to be installed on the machine where + the Cake script is being executed. See this page for information + on how to download/install. + + + + + + Compiles the given NSIS script using the default settings. + + The context. + The path to the .nsi script file to compile. + + + MakeNSIS("./src/Cake.nsi"); + + + + + + Compiles the given NSIS script using the given . + + The context. + The path to the .nsi script file to compile. + The to use. + + + MakeNSIS("./src/Cake.nsi", new MakeNSISSettings { + NoConfig = true + }); + + + + + + Contains functionality related to OpenCover. + + In order to use the commands for this alias, include the following in your build.cake file to download and + install from NuGet.org, or specify the ToolPath within the class: + + #tool "nuget:?package=OpenCover" + + + + + + + Runs OpenCover + for the specified action and settings. + + The context. + The action to run OpenCover for. + The OpenCover output file. + The settings. + + + OpenCover(tool => { + tool.XUnit2("./**/App.Tests.dll", + new XUnit2Settings { + ShadowCopy = false + }); + }, + new FilePath("./result.xml"), + new OpenCoverSettings() + .WithFilter("+[App]*") + .WithFilter("-[App.Tests]*")); + + + + + + Represents the logging output level for OpenCover. + + + + + Logs info messages and above (default) + + + + + This log level disables logging + + + + + Logs fatal messages + + + + + Logs error messages and above + + + + + Logs warn messages and above + + + + + Logs debug messages and above + + + + + Logs verbose messages and above + + + + + Logs all messages + + + + + The OpenCover runner. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Runs OpenCover with the specified settings. + + The context. + The action. + The output file path. + The settings. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Contains settings used by . + + + + + Gets the filters. + This represents the -filter option. + + The filters. + + + + Gets attribute filters used to exclude classes or methods. + This represents the -excludebyattribute option. + + The excluded attributes. + + + + Gets file filters used to excluded classes or methods. + This represents the -excludebyfile option. + + The excluded file filters. + + + + Gets or sets a value indicating whether or not auto-implemented properties should be skipped. + + + + + Gets or sets the register option + + + + + Gets or sets the Return target code offset to be used + + + + + Gets or sets a value indicating whether the OldStyle option for OpenCover should be used + + + + + Gets or sets a value indicating whether to merge the results with an existing file + + + + + Gets a list of directories where assemblies being loaded from will be ignored. + + + + + Gets or sets the log level of OpenCover. + + + + + Gets or sets a value indicating whether to merge the coverage results for an assembly + regardless of where it was loaded assuming it has the same file-hash in each location. + + + + + Gets or sets a value indicating whether the default filters should be applied or not. + + + + + Gets a list of directories with alternative locations to look for PDBs. + + + + + Gets or sets a value indicating whether if the value provided in the target parameter + is the name of a service rather than a name of a process. + + + + + Gets or sets a value indicating the path to the target directory. + If the target already contains a path, this parameter can be used + as additional path where PDBs may be found. + + + + + Initializes a new instance of the class. + + + + + Contains extensions for . + + + + + Adds the filter. + + The settings. + The filter. + The same instance so that multiple calls can be chained. + + + + Exclude a class or method by filter + that match attributes that have been applied. + + The settings. + The filter. + The same instance so that multiple calls can be chained. + + + + Exclude a class (or methods) by filter that match the filenames. + + The settings. + The filter. + The same instance so that multiple calls can be chained. + + + + Contains functionality related to ReportGenerator. + + In order to use the commands for this alias, include the following in your build.cake file to download and + install from NuGet.org, or specify the ToolPath within the class: + + #tool "nuget:?package=ReportGenerator" + + + + + + + Converts the coverage report specified by the glob pattern into human readable form. + + The context. + The glob pattern. + The output directory. + + + ReportGenerator("c:/temp/coverage/*.xml", "c:/temp/output"); + + + + + + Converts the coverage report specified by the glob pattern into human readable form using the specified settings. + + The context. + The glob pattern. + The output directory. + The settings. + + + ReportGenerator("c:/temp/coverage/*.xml", "c:/temp/output", new ReportGeneratorSettings(){ + ToolPath = "c:/tools/reportgenerator.exe" + }); + + + + + + Converts the specified coverage report into human readable form. + + The context. + The coverage report. + The output directory. + + + ReportGenerator("c:/temp/coverage/report.xml", "c:/temp/output"); + + + + + + Converts the specified coverage report into human readable form using the specified settings. + + The context. + The coverage report. + The output directory. + The settings. + + + ReportGenerator("c:/temp/coverage.xml", "c:/temp/output", new ReportGeneratorSettings(){ + ToolPath = "c:/tools/reportgenerator.exe" + }); + + + + + + Converts the specified coverage reports into human readable form. + + The context. + The coverage reports. + The output directory. + + + ReportGenerator(new[] { "c:/temp/coverage1.xml", "c:/temp/coverage2.xml" }, "c:/temp/output"); + + + + + + Converts the specified coverage reports into human readable form using the specified settings. + + The context. + The coverage reports. + The output directory. + The settings.> + + + ReportGenerator(new[] { "c:/temp/coverage1.xml", "c:/temp/coverage2.xml" }, "c:/temp/output", new ReportGeneratorSettings(){ + ToolPath = "c:/tools/reportgenerator.exe" + }); + + + + + + Represents ReportGenerator's output formats + + + + + Badge report. + + + + + Html report. + + + + + Html summary report. + + + + + Latex report. + + + + + Latex summary report. + + + + + Text summary report. + + + + + Xml report. + + + + + Xml summary report. + + + + + ReportGenerator runner. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Converts the specified coverage reports into human readable form according to the specified settings. + + The coverage reports. + The output directory. + The settings. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Contains settings used by . + + + + + Gets or sets the list of coverage reports that should be parsed. + + + + + Gets or sets the directories which contain the corresponding source code. + The source files are used if coverage report contains classes without path information. + + + + + Gets or sets the directory for storing persistent coverage information. + Can be used in future reports to show coverage evolution. + + + + + Gets or sets the list of assemblies that should be included or excluded in the report. + Exclusion filters take precedence over inclusion filters. + Wildcards are allowed. + + + + + Gets or sets the list of classes that should be included or excluded in the report. + Exclusion filters take precedence over inclusion filters. + Wildcards are allowed. + + + + + Gets or sets the verbosity level of the log messages. + + + + + Represents ReportGenerator's logging verbosity. + + + + + Verbosity: Verbose. + + + + + Verbosity: Info. + + + + + Verbosity: Error. + + + + + Contains functionality related to ReportUnit. + + In order to use the commands for this alias, include the following in your build.cake file to download and + install from NuGet.org, or specify the ToolPath within the class: + + #tool "nuget:?package=ReportUnit" + + + + + + + Converts the reports in the specified directory into human readable form. + + The context. + The input folder. + + Provide only an input folder, which will causes ReportUnit to search entire directory for report files. + Cake task: + + ReportUnit("c:/temp"); + + + + + + Converts the reports in the specified directory into human readable form. + + The context. + The input folder. + The ReportUnit settings. + + Provide an input folder and custom ToolPath, which will causes ReportUnit to search entire directory for report files. + Cake task: + + ReportUnit("c:/temp", new ReportUnitSettings(){ + ToolPath = "c:/tools/reportunit.exe" + }); + + + + + + Converts the reports in the specified directory into human readable form and outputs to specified folder. + + The context. + The input folder. + The output folder. + The ReportUnit settings. + + Provide both input and output folder, which will causes ReportUnit to search entire directory for report files, and output the results to specified location. + Cake task: + + ReportUnit("c:/temp/input", "c:/temp/output"); + + + + + + Converts the single specified report into human readable form and outputs to specified file. + + The context. + The input file. + The output file. + + Provide both input and output file, which will causes ReportUnit to transform only the specific file, and output to the specified location. + Cake task: + + ReportUnit("c:/temp/input", "c:/temp/output"); + + + + + + Converts the single specified report into human readable form and outputs to specified file. + + The context. + The input file. + The output file. + The ReportUnit settings. + + Provide both input and output file, which will causes ReportUnit to transform only the specific file, and output to the specified location. Also use a custom path for the reportunit.exe. + Cake task: + + ReportUnit("c:/temp/input", "c:/temp/output", new ReportUnitSettings(){ + ToolPath = "c:/tools/reportunit.exe" + }); + + + + + + ReportUnit runner. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Converts the reports from specified folder into human readable form according to the specified settings. + + The input folder. + The output folder. + The ReportUnit settings. + + + + Converts the specified report into human readable form according to the specified settings. + + The input file. + The output file. + The ReportUnit settings. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Contains settings used by . + + + + + Contains functionality related to SpecFlow. + + In order to use the commands for this alias, include the following in your build.cake file to download and + install from NuGet.org, or specify the ToolPath within the appropriate settings class: + + #tool "nuget:?package=SpecFlow" + + + + + + + Creates a report that shows the usage and binding status of the steps for the entire project. + You can use this report to find both unused code in the automation layer and scenario steps that have no definition yet. + See SpecFlow Documentation for more information. + + The context. + The path of the project file containing the feature files. + + + + Creates a report that shows the usage and binding status of the steps for the entire project. + You can use this report to find both unused code in the automation layer and scenario steps that have no definition yet. + See SpecFlow Documentation for more information. + + The context. + The path of the project file containing the feature files. + The settings. + + + + Creates a formatted HTML report of a test execution. + The report contains a summary about the executed tests and the result and also a detailed report for the individual scenario executions. + See SpecFlow Documentation for more information. + + The context. + The action to run SpecFlow for. Supported actions are: MSTest, NUnit3 and XUnit2 + The path of the project file containing the feature files. + + + + Creates a formatted HTML report of a test execution. + The report contains a summary about the executed tests and the result and also a detailed report for the individual scenario executions. + See SpecFlow Documentation for more information. + + The context. + The action to run SpecFlow for. Supported actions are: MSTest, NUNit, NUNit3, XUnit and XUnit2 + The path of the project file containing the feature files. + The settings. + + + + Contains settings used by . + + + + + Gets or sets the generated Output File. Optional. + Default: TestResult.html + + + + + Gets or sets the custom XSLT file to use, defaults to built-in stylesheet if not provided. Optional. + Default: not specified + + + + + Base class for all SpecFlow related tools + + The settings type + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Appends the SpecFlowSettings arguments to builder. + + The settings. + The argument builder. + + + + SpecFlow StepDefinition execution report runner. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Runs SpecFlow StepDefinitionReport with the specified settings. + + The project file path. + The settings. + + + + Contains settings used by . + + + + + Gets or sets the path for the compiled SpecFlow project. Optional. + Default: bin\Debug + + + + + SpecFlow MSTest execution report runner. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Runs SpecFlow Test Execution Report with the specified settings. + + The context. + The action. + The project file path. + The settings. + + + + Contains settings used by . + + + + + Gets or sets a value indicating whether exceptions from the + intercepted action should be rethrown after report generation + + + + + Contains functionality related to TextTransform. + + In order to use the commands for this alias, include the following in your build.cake file to download and + install from NuGet.org, or specify the ToolPath within the class: + + #tool "nuget:?package=Mono.TextTransform" + + + + + + + Transform a text template. + + + + // Transform a .tt template. + var transform = File("./src/Cake/Transform.tt"); + TransformTemplate(transform); + + + The context. + The source file. + + + + Transform a text template. + + + + // Transform a .tt template. + var transform = File("./src/Cake/Transform.tt"); + TransformTemplate(transform, new TextTransformSettings { OutputFile="./src/Cake/Transform.cs" }); + + + The context. + The source file. + The settings. + + + + The Text Transform runner. + + + + + Runs Text Transform with the specified files and settings. + + The source file. + The settings. + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Contains settings used by . + + + + + Gets or sets the assembly used for compiling and running the text template. + + + The assembly. + + + + + Gets or sets the output file for the transform. + + + The output file. + + + + + Gets or sets namespace that is used for compiling the text template. + + + The namespace. + + + + + Gets or sets a directory that contains the text templates sourced in the specified text template. + + + + + Gets or sets a directory to search for assemblies specified within the text template. + + + The reference path. + + + + + Contains functionality related to running VSTest unit tests. + + + + + Runs all VSTest unit tests in the assemblies matching the specified pattern. + + + + VSTest("./Tests/*.UnitTests.dll"); + + + The context. + The pattern. + + + + Runs all VSTest unit tests in the assemblies matching the specified pattern. + + + + VSTest("./Tests/*.UnitTests.dll", new VSTestSettings() { Logger = VSTestLogger.Trx }); + + + The context. + The pattern. + The settings. + + + + Runs all VSTest unit tests in the specified assemblies. + + + + var paths = new List<FilePath>() { "./assemblydir1", "./assemblydir2" }; + VSTest(paths); + + + The context. + The assembly paths. + + + + Runs all VSTest unit tests in the specified assemblies. + + + + var paths = new List<FilePath>() { "./assemblydir1", "./assemblydir2" }; + VSTest(paths, new VSTestSettings() { InIsolation = true }); + + + The context. + The assembly paths. + The settings. + + + + Target .NET Framework version to be used for test execution. + + + + + Use default .NET Framework version. + + + + + .NET Framework version: 3.5. + + + + + .NET Framework version: 4.0. + + + + + .NET Framework version: 4.5. + + + + + Target platform architecture to be used for test execution. + + + + + Use default platform architecture. + + + + + Platform architecture: x86. + + + + + Platform architecture: x64. + + + + + Platform architecture: ARM. + + + + + The VSTest unit test runner. + Used by Visual Studio 2012 and newer. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Runs the tests in the specified assembly. + + The assembly path. + The settings. + + + + Gets the name of the tool. + + The tool name. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Gets alternative file paths which the tool may exist in + + The settings. + The default tool path. + + + + Contains settings used by . + + + + + Gets or sets the settings filename to be used to control additional settings such as data collectors. + + + + + Gets or sets a value indicating whether the tests are executed in parallel. By default up to all available cores on the machine may be used. The number of cores to use may be configured using a settings file. + + + + + Gets or sets a value indicating whether to enable data diagnostic adapter 'CodeCoverage' in the test run. Default settings are used if not specified using settings file. + + + + + Gets or sets a value indicating whether to run tests within the vstest.console.exe process. + This makes vstest.console.exe process less likely to be stopped on an error in the tests, but tests might run slower. + Defaults to false. + + + true if running in isolation; otherwise, false. + + + + + Gets or sets a value overriding whether VSTest will use or skip the VSIX extensions installed (if any) in the test run. + + + + + Gets or sets a value that makes VSTest use custom test adapters from a given path (if any) in the test run. + + + + + Gets or sets the target platform architecture to be used for test execution. + + + + + Gets or sets the target .NET Framework version to be used for test execution. + + + + + Gets or sets an expression to run only tests that match, of the format <property>Operator<value>[|&<Expression>] + where Operator is one of =, != or ~ (Operator ~ has 'contains' + semantics and is applicable for string properties like DisplayName). + Parenthesis () can be used to group sub-expressions. + Examples: Priority=1 + (FullyQualifiedName~Nightly|Name=MyTestMethod) + + + + + Gets or sets a path which makes VSTest write diagnosis trace logs to specified file. + + + + + Gets or sets the name of your logger. Possible values: + - A blank string (or null): no logger + - "trx": Visual Studio's built-in logger + - "AppVeyor": AppVeyor's custom logger which is available only when building your solution on the AppVeyor platform + - any custom value: the name of your custom logger + + + + + Contains functionality related to VSTest settings. + + + + + Do not Log. + + The settings. + The same instance so that multiple calls can be chained. + + + + Log to a trx file. + + The settings. + The same instance so that multiple calls can be chained. + + + + Log to the AppVeyor logger (which is only available when building your solution on the AppVeyor platform). + + The settings. + The same instance so that multiple calls can be chained. + + + + Log to a custom logger. + + The settings. + The name of the logger + The same instance so that multiple calls can be chained. + + + + The VSWhere tool that finds all instances regardless if they are complete. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Finds all instances regardless if they are complete. + + The settings. + Installation paths for all instances. + + + + Contains settings used by . + + + + + The VSWhere tool that returns only the newest version and last installed. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Returns only the newest version and last installed. + + The settings. + Installation path of the newest or last install. + + + + Contains settings used by . + + + + + The VSWhere tool that finds Visual Studio products. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Also searches Visual Studio 2015 and older products. Information is limited. + + The settings. + Installation paths for all instances. + + + + Contains settings used by . + + + + + Gets or sets a value indicating whether to return only the newest version and last installed. + + true to find the newest version or last installed; otherwise, false. + + + + Gets the workload(s) or component(s) required when finding instances, immutable to always be empty per documentation. + + + + + The VSWhere tool that finds Visual Studio products. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Finds one ore more products. + + The settings. + Installation paths for all instances. + + + + Contains settings used by . + + + + + Gets or sets the products to find. Defaults to Community, Professional, and Enterprise. Specify "*" by itself to search all product instances installed. + + + + + Contains functionality related to running VSWhere tool. + + In order to use the commands for this alias, include the following in your build.cake file to download and + install from NuGet.org, or specify the ToolPath within the settings class: + + #tool "nuget:?package=vswhere" + + + + + + + Gets the legacy Visual Studio product installation paths. + + The context. + Get the latest version. + The Visual Studio installation path. + + + var legacyInstallationPath = VSWhereLegacy(true); + + + + + + Gets the legacy Visual Studio product installation paths. + + The context. + The settings. + The Visual Studio installation paths. + + + var legacyInstallationPaths = VSWhereLegacy(new VSWhereLegacySettings()); + + + + + + Gets the latest Visual Studio product installation path. + + The context. + The Visual Studio installation path. + + + var latestInstallationPath = VSWhereLatest(); + + + + + + Gets the latest Visual Studio product installation path. + + The context. + The settings. + The Visual Studio installation path. + + + var latestInstallationPath = VSWhereLatest(new VSWhereLatestSettings { Requires = "'Microsoft.Component.MSBuild" }); + + + + + + Gets all Visual Studio product installation paths. + + The context. + The Visual Studio installation paths. + + + var latestInstallationPaths = VSWhereAll(); + + + + + + Gets all Visual Studio product installation paths. + + The context. + The settings. + The Visual Studio installation paths. + + + var latestInstallationPaths = VSWhereAll(new VSWhereAllSettings { Requires = "'Microsoft.Component.MSBuild" }); + + + + + + Gets Visual Studio product installation paths. + + The context. + The products to find. + The Visual Studio installation paths. + + + var latestInstallationPaths = VSWhereProducts("Microsoft.VisualStudio.Product.BuildTools"); + + + + + + Gets Visual Studio product installation paths. + + The context. + The products to find. + The settings. + The Visual Studio installation paths. + + + var latestInstallationPaths = VSWhereProducts("Microsoft.VisualStudio.Product.BuildTools", new VSWhereProductSettings { Requires = "'Microsoft.Component.MSBuild" }); + + + + + + Base class for all settings for VSWhere tools. + + + + + Gets or sets the workload(s) or component(s) required when finding instances. + + + + + Gets or sets version range for instances to find. Example: ["15.0","16.0"] will find versions 15.*. + + + + + Gets or sets the name of the property to return. Defaults to "value" format. + + + + + Gets or sets a value indicating whether VSWhere should include prerelease installations + + + + + Initializes a new instance of the class. + + + + + Base class for all VSWhere related tools. + Used to locate Visual Studio. + + The settings type. + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator service. + + + + Gets the name of the tool. + + The tool name. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Gets alternative file paths which the tool may exist in + + The settings. + The default tool path. + + + + Runs VSWhere with supplied arguments and parses installation paths + + The settings. + The process argument builder. + The parsed file paths. + + + + Adds common arguments to the process builder. + + The settings. + The process argument builder. + The process argument builder. + + + + Represent release notes. + + + + + Gets the version. + + The version. + + + + Gets the release notes. + + The release notes. + + + + Gets the raw text of the line that was extracted from. + + The raw text of the Version line. + + + + Initializes a new instance of the class. + + The version. + The notes. + The raw text of the version line. + + + + Contains functionality related to release notes. + + + + + Parses all release notes. + + The context. + The file path. + All release notes. + + + var releaseNotes = ParseAllReleaseNotes("./ReleaseNotes.md"); + foreach(var releaseNote in releaseNotes) + { + Information("Version: {0}", releaseNote.Version); + foreach(var note in releaseNote.Notes) + { + Information("\t{0}", note); + } + } + + + + + + Parses the latest release notes. + + The context. + The file path. + The latest release notes. + + + var releaseNote = ParseReleaseNotes("./ReleaseNotes.md"); + Information("Version: {0}", releaseNote.Version); + foreach(var note in releaseNote.Notes) + { + Information("\t{0}", note); + } + + + + + + The release notes parser. + + + + + Initializes a new instance of the class. + + + + + Parses all release notes. + + The content. + All release notes. + + + + Represents a calculated file hash. + + + + + Initializes a new instance of the class. + + The file path. + The computed hash. + The algorithm used. + + + + Gets the algorithm used for the hash computation. + + + + + Gets the for the file. + + + + + Gets the raw computed hash. + + + + + Convert the file hash to a hexadecimal string. + + A hexadecimal string representing the computed hash. + + + + Represents a file hash operation. + + + + + Initializes a new instance of the class. + + The file system. + + + + Calculates the hash for a file using the given algorithm. + + The file path. + The algorithm to use. + A instance representing the calculated hash. + + + + The hash algorithm to use for a specific operation. + + + + + The MD5 hash algorithm. + + + + + The SHA256 hash algorithm. + + + + + The SHA512 hash algorithm. + + + + + Contains security related functionality, such as calculating file + hashes. + + + + + Calculates the hash for a given file using the default (SHA256) algorithm. + + The context. + The file path. + A instance representing the calculated hash. + + + Information( + "Cake executable file SHA256 hash: {0}", + CalculateFileHash("Cake.exe").ToHex()); + + + + + + Calculates the hash for a given file. + + The context. + The file path. + The hash algorithm to use. + A instance representing the calculated hash. + + + Information( + "Cake executable file MD5 hash: {0}", + CalculateFileHash("Cake.exe", HashAlgorithm.MD5).ToHex()); + + + + + + Speficies how will an XmlReader handle DTDs in the XML document. + + + + + The XmlReader will throw an exception when it finds a 'DOCTYPE' markup. + + + + + The DTD will be ignored. Any reference to a general entity in the XML document + will cause an exception (except for the predefined entities < > & " and '). + The DocumentType node will not be reported. + + + + + The DTD will be parsed and fully processed (entities expanded, default attributes added etc.) + + + + + Contains functionality related to XML XPath queries. + + + + + Gets the value of a target node. + + The value found at the given XPath query. + The context. + The target file. + The xpath of the node to get. + + + string autoFacVersion = XmlPeek("./src/Cake/packages.config", "/packages/package[@id='Autofac']/@version"); + + + + + + Get the value of a target node. + + The value found at the given XPath query. + The context. + The target file. + The xpath of the nodes to set. + Additional settings to tweak Xml Peek behavior. + + + XML document: + + + + + ]]> + + XmlPeek usage: + + string version = XmlPeek("./pastery.xml", "/pastery:pastery/pastery:cake/@price", + new XmlPeekSettings { + Namespaces = new Dictionary<string, string> {{ "pastery", "https://cakebuild.net/pastery" }} + }); + string unknown = XmlPeek("./pastery.xml", "/pastery:pastery/pastery:cake/@recipe", + new XmlPeekSettings { + Namespaces = new Dictionary<string, string> {{ "pastery", "https://cakebuild.net/pastery" }}, + SuppressWarning = true + }); + + + + + + Gets the value of a target node. + + The value found at the given XPath query (or the first, if multiple eligible nodes are found). + The source xml to transform. + The xpath of the nodes to set. + Additional settings to tweak Xml Peek behavior. + + + + Gets a XmlReaderSettings from a XmlPeekSettings + + The xml reader settings. + Additional settings to tweak Xml Peek behavior. + + + + Contains settings for + + + + + Gets or sets namespaces to include for xpath recognition. + + + + + Gets or sets a value indicating whether to preserve white space. + + + + + Gets or sets a value indicating whether to suppress the xpath not found warning. + + + + + Gets or sets a value that determines the processing of DTDs. + + + + + Initializes a new instance of the class. + + + + + Contains functionality related to XML XSL transformation. + + + + + Set the value of, or remove, target nodes. + + The context. + The target file. + The xpath of the nodes to set. + The value to set too. Leave blank to remove the selected nodes. + + + Change the server setting in the configuration from testhost.somecompany.com + to productionhost.somecompany.com. + + XML file: + + + + + + + + ]]> + + Cake Task: + + + { + var file = File("test.xml"); + XmlPoke(file, "/configuration/appSettings/add[@key = 'server']/@value", "productionhost.somecompany.com"); + }); + ]]> + + + + + Modify the noNamespaceSchemaLocation in an XML file. + + XML file: + + + + + ]]> + + Cake Task: + + + { + var file = File("test.xml"); + XmlPoke(file, "/Commands/@xsi:noNamespaceSchemaLocation", "d:\\Commands.xsd", new XmlPokeSettings { + Namespaces = new Dictionary { + { /* Prefix */ "xsi", /* URI */ "http://www.w3.org/2001/XMLSchema-instance" } + } + }); + }); + ]]> + + + + + Remove an app setting from a config file. + + XML file: + + + + + + + + + ]]> + + Cake Task: + + + { + var file = File("test.xml"); + XmlPoke(file, "/configuration/appSettings/add[@testing]", null); + }); + ]]> + + + + Credit to NAnt for the original example. + http://nant.sourceforge.net/release/latest/help/tasks/xmlpoke.html + + + + + Set the value of, or remove, target nodes. + + The context. + The target file. + The xpath of the nodes to set. + The value to set too. Leave blank to remove the selected nodes. + Additional settings to tweak Xml Poke behavior. + + + Change the server setting in the configuration from testhost.somecompany.com + to productionhost.somecompany.com. + + XML file: + + + + + + + + ]]> + + Cake Task: + + + { + var file = File("test.xml"); + XmlPoke(file, "/configuration/appSettings/add[@key = 'server']/@value", "productionhost.somecompany.com"); + }); + ]]> + + + + + Modify the noNamespaceSchemaLocation in an XML file. + + XML file: + + + + + ]]> + + Cake Task: + + + { + var file = File("test.xml"); + XmlPoke(file, "/Commands/@xsi:noNamespaceSchemaLocation", "d:\\Commands.xsd", new XmlPokeSettings { + Namespaces = new Dictionary { + { /* Prefix */ "xsi", /* URI */ "http://www.w3.org/2001/XMLSchema-instance" } + } + }); + }); + ]]> + + + + + Remove an app setting from a config file. + + XML file: + + + + + + + + + ]]> + + Cake Task: + + + { + var file = File("test.xml"); + XmlPoke(file, "/configuration/appSettings/add[@testing]", null); + }); + ]]> + + + + Credit to NAnt for the original example. + http://nant.sourceforge.net/release/latest/help/tasks/xmlpoke.html + + + + + Set the value of, or remove, target nodes. + + The context. + The source xml to transform. + The xpath of the nodes to set. + The value to set too. Leave blank to remove the selected nodes. + Resulting XML. + + + Change the server setting in the configuration from testhost.somecompany.com + to productionhost.somecompany.com. + + XML string: + + + + + + + + ]]> + + Cake Task: + + + { + var result = XmlPokeString(xmlString, "/configuration/appSettings/add[@key = 'server']/@value", "productionhost.somecompany.com"); + }); + ]]> + + + + + Modify the noNamespaceSchemaLocation in an XML file. + + XML string: + + + + + ]]> + + Cake Task: + + + { + var result = XmlPokeString(xmlString, "/Commands/@xsi:noNamespaceSchemaLocation", "d:\\Commands.xsd", new XmlPokeSettings { + Namespaces = new Dictionary { + { /* Prefix */ "xsi", /* URI */ "http://www.w3.org/2001/XMLSchema-instance" } + } + }); + }); + ]]> + + + + + Remove an app setting from a config file. + + XML string: + + + + + + + + + ]]> + + Cake Task: + + + { + var result = XmlPokeString(xmlString, "/configuration/appSettings/add[@testing]", null); + }); + ]]> + + + + Credit to NAnt for the original example. + http://nant.sourceforge.net/release/latest/help/tasks/xmlpoke.html + + + + + Set the value of, or remove, target nodes. + + The context. + The source xml to transform. + The xpath of the nodes to set. + The value to set too. Leave blank to remove the selected nodes. + Additional settings to tweak Xml Poke behavior. + Resulting XML. + + + Change the server setting in the configuration from testhost.somecompany.com + to productionhost.somecompany.com. + + XML string: + + + + + + + + ]]> + + Cake Task: + + + { + var result = XmlPokeString(xmlString, "/configuration/appSettings/add[@key = 'server']/@value", "productionhost.somecompany.com"); + }); + ]]> + + + + + Modify the noNamespaceSchemaLocation in an XML file. + + XML string: + + + + + ]]> + + Cake Task: + + + { + var result = XmlPokeString(xmlString, "/Commands/@xsi:noNamespaceSchemaLocation", "d:\\Commands.xsd", new XmlPokeSettings { + Namespaces = new Dictionary { + { /* Prefix */ "xsi", /* URI */ "http://www.w3.org/2001/XMLSchema-instance" } + } + }); + }); + ]]> + + + + + Remove an app setting from a config file. + + XML string: + + + + + + + + + ]]> + + Cake Task: + + + { + var result = XmlPokeString(xmlString, "/configuration/appSettings/add[@testing]", null); + }); + ]]> + + + + Credit to NAnt for the original example. + http://nant.sourceforge.net/release/latest/help/tasks/xmlpoke.html + + + + + Set the value of, or remove, target nodes. + + The source xml to transform. + The destination to write too. + The xpath of the nodes to set. + The value to set too. Leave blank to remove the selected nodes. + Additional settings to tweak Xml Poke behavior. + + + + Gets a XmlReaderSettings from a XmlPokeSettings + + The xml reader settings. + Additional settings to tweak Xml Poke behavior. + + + + Gets a XmlWriterSettings from a XmlPokeSettings + + Additional settings to tweak Xml Poke behavior. + The xml writer settings. + + + + Contains settings for + + + + + Gets or sets a value indicating whether to preserve white space. + + + + + Gets or sets namespaces to include for xpath recognition. + + + + + Gets or sets the type of text encoding to use. + + + + + Gets or sets a value that determines the processing of DTDs. + + + + + Initializes a new instance of the class. + + + + + Provides functionality to perform XML transformation + + + + + Performs XML XSL transformation + + XML style sheet. + XML data. + Transformed XML string. + + + + Performs XML XSL transformation + + XML style sheet. + XML data. + Settings for result file xml transformation. + Transformed XML string. + + + + Performs XML XSL transformation + + The file system. + Path to xml style sheet. + Path xml data. + Transformation result path. + + + + Performs XML XSL transformation + + The file system. + Path to xml style sheet. + Path xml data. + Transformation result path. + Settings for result file xml transformation. + + + + Performs XML XSL transformation + + XML style sheet. + XML data. + Transformation result. + Optional settings for result file xml writer + + + + Performs XML XSL transformation + + XML style sheet. + XML data. + Transformation result. + + + + Contains functionality related to XML XSL transformation. + + + + + Performs XML XSL transformation + + The context. + XML style sheet. + XML data. + Transformed XML string. + + + This example code will convert xml to a new xml strucure using XmlTransform alias. + + + + + + + + "; + + string xml = @" + + + "; + + var priceTag = XmlTransform(xsl, xml); + ]]> + + Result: + + 1.62]]> + + + + + + Performs XML XSL transformation + + The context. + XML style sheet. + XML data. + Optional settings for result file xml writer + Transformed XML string. + + + This example code will convert specific part of xml to plaintext using XmlTransform alias. + + + + + "; + + string xml = @" + + + "; + + var text = XmlTransform(xsl, xml, new XmlTransformationSettings { + ConformanceLevel = System.Xml.ConformanceLevel.Fragment, Encoding = Encoding.ASCII }); + ]]> + + + + + + Performs XML XSL transformation + + The context. + Path to xml style sheet. + Path xml data. + Transformation result path, will overwrite if exists. + + + This example code will convert the Cake nuspec into html using the XmlTransform alias. + XML stylesheet: + + + + + + + + <xsl:for-each select="package/p:metadata"> + <xsl:value-of select="p:id"/> + </xsl:for-each> + + + + +

+ +

+

Description

+ +
+

Files

+
    + +
  • +
    +
+ + +
+
+ ]]> +
+ XmlTransform usage: + + XmlTransform("./nuspec.xsl", "./nuspec/Cake.nuspec", "./Cake.htm"); + +
+
+ + + Performs XML XSL transformation + + The context. + Path to xml style sheet. + Path xml data. + Transformation result path. + Optional settings for result file xml writer + + + This example code will convert the Cake nuspec into html using the XmlTransform alias, + specifying that result should be indented and using Unicode encoding. + XML stylesheet: + + + + + + + + <xsl:for-each select="package/p:metadata"> + <xsl:value-of select="p:id"/> + </xsl:for-each> + + + + +

+ +

+

Description

+ +
+

Files

+
    + +
  • +
    +
+ + +
+
+ ]]> +
+ XmlTransform usage: + + XmlTransform("./nuspec.xsl", "./nuspec/Cake.nuspec", "./Cake.htm", + new XmlTransformationSettings { Indent = true, Encoding = Encoding.Unicode}); + +
+
+ + + Contains settings for + + + + + Gets or sets a value indicating whether overwriting existing file is permitted + + + + + Gets or sets a value indicating whether the XML writer should check to ensure that all characters in the document conform to the "2.2 Characters" section of the W3C XML 1.0 Recommendation. + + + + + Gets or sets a value indicating level of conformance that the XmlWriter checks the XML output for. + + + + + Gets or sets a value indicating whether the XmlWriter does not escape URI attributes. + + + + + Gets or sets the type of text encoding to use. + + + + + Gets or sets a value indicating whether to indent elements. + + + + + Gets or sets the character string to use when indenting. This setting is used when the Indent property is set to true. + + + + + Gets or sets a value that indicates whether the XmlWriter should remove duplicate namespace declarations when writing XML content. The default behavior is for the writer to output all namespace declarations that are present in the writer's namespace resolver. + + + + + Gets or sets the character string to use for line breaks. + + + + + Gets or sets a value indicating whether to normalize line breaks in the output. + + + + + Gets or sets a value indicating whether to write attributes on a new line. + + + + + Gets or sets a value indicating whether to omit an XML declaration. + + + + + Gets or sets a value indicating whether the XmlWriter will add closing tags to all unclosed element tags when the Close method is called + + + + + Initializes a new instance of the class. + + +
+
diff --git a/integration-test/tools/Cake/Cake.Core.xml b/integration-test/tools/Cake/Cake.Core.xml new file mode 100644 index 0000000..829f5fa --- /dev/null +++ b/integration-test/tools/Cake/Cake.Core.xml @@ -0,0 +1,6423 @@ + + + + Cake.Core + + + + + An attribute used to mark script aliases. + + + + + An attribute used for documentation of alias methods/properties. + + + + + Gets the category name. + + The category name. + + + + Initializes a new instance of the class. + + The category name. + + + + An attribute used to mark script method aliases. + + + + + An attribute used to identify a module implementation in an assembly. + + + + + Gets the module type. + + The module type. + + + + Initializes a new instance of the class. + + The module type. + + + + An attribute used to hint Cake about additional namespaces that need + to be imported for an alias to work. This attribute can mark an + extension method, the extension method class, or the assembly to provide a global set of imports + + + + + Gets the namespace. + + The namespace. + + + + Initializes a new instance of the class. + + The namespace. + + + + An attribute used to mark script property aliases. + + + + + Gets or sets a value indicating whether the result of the property alias method should be cached. + Indicates . + + + true if cache; otherwise, false. + + + + + This namespace contain attributes used by + the Cake engine and addins. + + + + + The default console implementation. + + + + + Gets or sets the foreground color. + + The foreground color. + + + + Gets or sets the background color. + + The background color. + + + + Writes the text representation of the specified array of objects to the + console output using the specified format information. + + A composite format string + An array of objects to write using format. + + + + Writes the text representation of the specified array of objects, followed + by the current line terminator, to the console output using the specified + format information. + + A composite format string + An array of objects to write using format. + + + + Writes the text representation of the specified array of objects to the + console error output using the specified format information. + + A composite format string + An array of objects to write using format. + + + + Writes the text representation of the specified array of objects, followed + by the current line terminator, to the console error output using the + specified format information. + + A composite format string + An array of objects to write using format. + + + + Sets the foreground and background console colors to their defaults. + + + + + Implementation of . + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The globber. + The log. + The arguments. + The process runner. + The registry. + The tool locator. + The data service. + + + + Gets the file system. + + + The file system. + + + + + Gets the environment. + + + The environment. + + + + + Gets the globber. + + + The globber. + + + + + Gets the log. + + + The log. + + + + + Gets the arguments. + + + The arguments. + + + + + Gets the process runner. + + + The process runner. + + + + + Gets the registry. + + + The registry. + + + + + Gets the tool locator. + + + The tool locator. + + + + + Gets the data context resolver. + + + + + Adapter to ensure correct conversion of Cake Context in derived classes. + + + + + Initializes a new instance of the class. + + The Cake Context + + + + Gets the file system. + + + The file system. + + + + + Gets the environment. + + + The environment. + + + + + Gets the globber. + + + The globber. + + + + + Gets the log. + + + The log. + + + + + Gets the arguments. + + + The arguments. + + + + + Gets the process runner. + + + The process runner. + + + + + Gets the registry. + + + The registry. + + + + + Gets the tool locator. + + + The tool locator. + + + + + Gets the data context resolver. + + + + + The Cake execution engine. + + + + + Gets all registered tasks. + + The registered tasks. + + + + Raised during setup before any tasks are run. + + + + + Raised during teardown after all other tasks have been run. + + + + + Raised before each task is run. + + + + + Raised after each task has been run. + + + + + Initializes a new instance of the class. + + The data service. + The log. + + + + Creates and registers a new Cake task. + + The name of the task. + + A used to configure the task. + + + + + Allows registration of an action that's executed before any tasks are run. + If setup fails, no tasks will be executed but teardown will be performed. + + The action to be executed. + + + + Allows registration of an action that's executed before any tasks are run. + If setup fails, no tasks will be executed but teardown will be performed. + + The data type. + The action to be executed. + + + + Allows registration of an action that's executed after all other tasks have been run. + If a setup action or a task fails with or without recovery, the specified teardown action will still be executed. + + The action to be executed. + + + + Allows registration of an action that's executed after all other tasks have been run. + If a setup action or a task fails with or without recovery, the specified teardown action will still be executed. + + The data type. + The action to be executed. + + + + Allows registration of an action that's executed before each task is run. + If the task setup fails, the task will not be executed but the task's teardown will be performed. + + The action to be executed. + + + + Allows registration of an action that's executed before each task is run. + If the task setup fails, the task will not be executed but the task's teardown will be performed. + + The data type. + The action to be executed. + + + + Allows registration of an action that's executed after each task has been run. + If a task setup action or a task fails with or without recovery, the specified task teardown action will still be executed. + + The action to be executed. + + + + Allows registration of an action that's executed after each task has been run. + If a task setup action or a task fails with or without recovery, the specified task teardown action will still be executed. + + The data type. + The action to be executed. + + + + Runs the specified target. + + The context. + The execution strategy. + The execution settings. + The resulting report. + + + + Represents the environment Cake operates in. + + + + + Gets or sets the working directory. + + The working directory. + + + + Gets the application root path. + + The application root path. + + + + Gets the platform Cake is running on. + + The platform Cake is running on. + + + + Gets the runtime Cake is running in. + + The runtime Cake is running in. + + + + Initializes a new instance of the class. + + The platform. + The runtime. + The log. + + + + Gets a special path. + + The path. + + A to the special path. + + + + + Gets an environment variable. + + The variable. + + The value of the environment variable. + + + + + Gets all environment variables. + + The environment variables as IDictionary<string, string> + + + + Gets whether or not the current operative system is 64 bit. + + + Whether or not the current operative system is 64 bit. + + + + + Determines whether the current machine is running Unix. + + + Whether or not the current machine is running Unix. + + + + + Gets the application root path. + + + The application root path. + + + + + Represent errors that occur during script execution. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message that describes the error. + + + + Initializes a new instance of the class. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + + + Represents the platform that Cake is running on. + + + + + Gets the platform family. + + The platform family. + + + + Gets a value indicating whether or not the current platform is 64 bit. + + + true if current platform is 64 bit; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Contains information about tasks that were executed in a script. + + + + + Gets a value indicating whether the report is empty. + + + true if this report is empty; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Adds a task result to the report. + + The task. + The span. + + + + Adds a task result to the report with a specific category. + + The task. + The category. + The span. + + + + Adds a skipped task result to the report. + + The task. + + + + Adds a delegated task result to the report. + + The task. + The span. + + + + Adds a task result to the report. + + The task. + The category. + The span. + The execution status. + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Represents an entry in a . + + + + + Gets the task name. + + The name. + + + + Gets the task category. + + The category. + + + + Gets the duration the task ran for. + + The duration the task ran for. + + + + Gets the task execution status. + + The execution status. + + + + Initializes a new instance of the class. + + The name of the task. + The task category. + The duration. + + + + Initializes a new instance of the class. + + The name of the task. + The task category. + The duration. + The execution status. + + + + Represents a Cake report entry category. + + + + + Represents a normal task. + + + + + Represent a setup task. + + + + + Represent a teardown task. + + + + + The default report printer. + + + + + Initializes a new instance of the class. + + The console. + The context. + + + + Writes the specified report to a target. + + The report to write. + + + + Represents the runtime that Cake is running in. + + + + + Gets the build-time .NET framework version that is being used. + + + + + Gets the current executing .NET Runtime. + + The target framework. + + + + Gets the version of Cake executing the script. + + + + + Gets a value indicating whether we're running on CoreClr. + + + true if we're runnning on CoreClr; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + A represents a unit of work. + + + + + Gets the name of the task. + + The name of the task. + + + + Gets or sets the description of the task. + + The description of the task. + + + + Gets the task's dependencies. + + The task's dependencies. + + + + Gets the tasks that the task want to be a dependency of. + + The tasks that the task want to be a dependency of. + + + + Gets the task's criterias. + + The task's criterias. + + + + Gets or sets the error handler. + + The error handler. + + + + Gets or sets the error reporter. + + + + + Gets or sets the finally handler. + + + + + Gets the task's actions. + + The task's actions. + + + + Gets the task's actions that are run at execution time to additionally populate . + + The task's delayed actions actions. + + + + Gets or sets a value indicating whether gets the task's state if it will defer exceptions until the end of the task. + + The task's defer exceptions state. + + + + Initializes a new instance of the class. + + The name of the task. + + + + Executes the task using the specified context. + + The context. + Returned Task + + + + Contains extension methods for . + + + + + Adds a criteria that has to be fulfilled for the task to run. + + The task builder. + The criteria. + The same instance so that multiple calls can be chained. + + + + Adds a criteria that has to be fulfilled for the task to run. + + The task builder. + The criteria. + The message to display if the task was skipped due to the provided criteria. + The same instance so that multiple calls can be chained. + + + + Adds a criteria that has to be fulfilled for the task to run. + The criteria is evaluated when traversal of the graph occurs. + + The task builder. + The criteria. + The same instance so that multiple calls can be chained. + + + + Adds a criteria that has to be fulfilled for the task to run. + The criteria is evaluated when traversal of the graph occurs. + + The task builder. + The criteria. + The message to display if the task was skipped due to the provided criteria. + The same instance so that multiple calls can be chained. + + + + Adds a criteria that has to be fulfilled for the task to run. + The criteria is evaluated when traversal of the graph occurs. + + The task builder. + The criteria. + The same instance so that multiple calls can be chained. + + + + Adds a criteria that has to be fulfilled for the task to run. + The criteria is evaluated when traversal of the graph occurs. + + The task builder. + The criteria. + The message to display if the task was skipped due to the provided criteria. + The same instance so that multiple calls can be chained. + + + + Adds a criteria that has to be fulfilled for the task to run. + The criteria is evaluated when traversal of the graph occurs. + + The type of the data context. + The task builder. + The criteria. + The same instance so that multiple calls can be chained. + + + + Adds a criteria that has to be fulfilled for the task to run. + The criteria is evaluated when traversal of the graph occurs. + + The type of the data context. + The task builder. + The criteria. + The message to display if the task was skipped due to the provided criteria. + The same instance so that multiple calls can be chained. + + + + Creates a dependency between two tasks. + + The task builder. + The name of the dependent task. + The same instance so that multiple calls can be chained. + + + + Creates a dependency between two tasks. + + The task builder. + The name of the dependent task. + The same instance so that multiple calls can be chained. + + + + Makes the task a dependency of another task. + + The task builder. + The name of the task the current task will be a dependency of. + The same instance so that multiple calls can be chained. + + + + Defers all exceptions until after all actions for this task have completed + + The task builder. + The same instance so that multiple calls can be chained. + + + + Adds an indication to the task that a thrown exception will not halt the script execution. + + The task builder. + The same instance so that multiple calls can be chained. + + + + Adds an error handler to be executed if an exception occurs in the task. + + The builder. + The error handler. + The same instance so that multiple calls can be chained. + + + + Adds an error handler to be executed if an exception occurs in the task. + + The builder. + The error handler. + The same instance so that multiple calls can be chained. + + + + Adds a finally handler to be executed after the task have finished executing. + + The builder. + The finally handler. + The same instance so that multiple calls can be chained. + + + + Adds an error reporter for the task to be executed when an exception is thrown from the task. + This action is invoked before the error handler, but gives no opportunity to recover from the error. + + The builder. + The finally handler. + The same instance so that multiple calls can be chained. + + + + Adds an action to be executed when the task is invoked. + + The task builder. + The action. + The same instance so that multiple calls can be chained. + + + + Adds an action to be executed when the task is invoked. + + The type of the data context. + The task builder. + The action. + The same instance so that multiple calls can be chained. + + + + Adds an action to be executed when the task is invoked. + + The task builder. + The action. + The same instance so that multiple calls can be chained. + + + + Adds an action to be executed when the task is invoked. + + The task builder. + The action. + The same instance so that multiple calls can be chained. + + + + Adds an action to be executed when the task is invoked. + + The task builder. + The action. + The same instance so that multiple calls can be chained. + + + + Adds an action to be executed when the task is invoked. + + The type of the data context. + The task builder. + The action. + The same instance so that multiple calls can be chained. + + + + Adds an action to be executed when the task is invoked. + + The type of the data context. + The task builder. + The action. + The same instance so that multiple calls can be chained. + + + + Adds an action to be executed when the task is invoked. + + The type of the data context. + The task builder. + The action. + The same instance so that multiple calls can be chained. + + + + Adds an action to be executed foreach item in the list. + + The item type. + The task builder. + The items. + The action. + The same instance so that multiple calls can be chained. + + + + Adds an action to be executed foreach item in the list. + + The type of the data context. + The item type. + The task builder. + The items. + The action. + The same instance so that multiple calls can be chained. + + + + Adds an action to be executed foreach item in the list. + + The type of the data context. + The item type. + The task builder. + The items. + The action. + The same instance so that multiple calls can be chained. + + + + Adds an action to be executed foreach item in the list. + + The item type. + The task builder. + The items. + The action. + The same instance so that multiple calls can be chained. + + + + Adds an action to be executed foreach item returned by the items function. + This method will be executed the first time the task is executed. + + The item type. + The task builder. + The items. + The action. + The same instance so that multiple calls can be chained. + + + + Adds an action to be executed foreach item returned by the items function. + This method will be executed the first time the task is executed. + + The type of the data context. + The item type. + The task builder. + The items. + The action. + The same instance so that multiple calls can be chained. + + + + Adds an action to be executed foreach item returned by the items function. + This method will be executed the first time the task is executed. + + The type of the data context. + The item type. + The task builder. + The items. + The action. + The same instance so that multiple calls can be chained. + + + + Adds an action to be executed foreach item returned by the items function. + This method will be executed the first time the task is executed. + + The item type. + The task builder. + The items. + The action. + The same instance so that multiple calls can be chained. + + + + Adds a description to the task. + + The task builder. + The description. + The same instance so that multiple calls can be chained. + + + + Allows configuration to be performed for a registered . + + + + + Gets a read-only representation of the task being configured. + + + + + Represents a Cake task criteria. + + + + + Gets the criteria's predicate. + + The criteria's predicate. + + + + Gets the criteria's message. + + The criteria's message. + + + + Initializes a new instance of the class. + + The criteria's predicate. + The criteria's message if skipped. + is null. + + + + Represents a task dependency. + + + + + Gets the name of the dependency. + + + + + Gets a value indicating whether or not the dependency is required. + + + + + Initializes a new instance of the class. + + The name of the task. + Whether or not the dependency is required. + is null. + + + + The execution status of a . + + + + + The task was executed. + + + + + The task delegated execution. + + + + + The task was skipped. + + + + + Contains extension methods for . + + + + + Adds the dependency to the task's dependencies. + + The task. + The name of the dependency . + Whether or not the dependency is required. + The task already has the dependency. + + + + Adds the dependee to the task's dependees. + + The task. + The name of the dependee. + Whether or not the dependee is required. + The task already is a dependee. + + + + Adds the criteria to the task's criterias. + + The task. + The criteria's predicate. + The criteria's message if skipped. + + + + Sets the task's error handler. + + The task. + The error handler. + There can only be one error handler per task. + is null. + + + + Sets the task's error reporter. + + The task. + The error reporter. + There can only be one error reporter per task. + is null. + + + + Sets the task's finally handler. + + The task. + The finally handler. + There can only be one finally handler per task. + is null. + + + + Adds the action to the task's actions. + + The task. + The action. + is null. + + + + Adds the action to the task's delayed actions. + + The task. + The action. + is null. + + + + Sets the task's defer exceptions state. + + The task. + The defer exceptions state. + + + + Represents a container registry used to register types and instances with Cake. + + + + + Registers a type with the container registry. + + The implementation type to register. + A registration builder used to configure the registration. + + + + Registers an instance with the container registry. + + The instance's implementation type to register. + The instance to register. + A registration builder used to configure the registration. + + + + Represents a module responsible for + registering types and instances. + + + + + Performs custom registrations in the provided registrar. + + The container registrar. + + + + Represents a registration builder for a container. + + + + + Adds a registration type to the configuration. + + The registration type. + The same instance so that multiple calls can be chained. + + + + Adds a registration type that matches the implementation type. + + The same instance so that multiple calls can be chained. + + + + Configure the component so that every dependent component + gets the same, shared instance. This is the default lifetime scope. + + The same instance so that multiple calls can be chained. + + + + Configure the component so that every dependent component + gets a new, unique instance. + + The same instance so that multiple calls can be chained. + + + + Contains extension methods for . + + + + + Registers a type with the container registrar. + + The implementation type to register. + The container registrar. + A registration builder used to configure the registration. + + + + Adds a registration type to an existing registration builder. + + The registration type. + The registration builder. + The same instance so that multiple calls can be chained. + + + + The default implementation of the Cake configuration. + + + + + Initializes a new instance of the class. + + The initial configuration table. + + + + Gets the value that corresponds to the specified configuration key. + + The configuration key. + The value for the specified configuration key, or null if key doesn't exists. + + + + Implementation of the Cake configuration provider. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + + + + Creates a configuration from the provided arguments. + + The directory to look for the configuration file. + The arguments. + The created configuration. + + + + Represents the Cake configuration. + + + + + Gets the value that corresponds to the specified key. + + The key. + The value for the specified key, or null if key doesn't exists. + + + + The default execution strategy. + + + + + Initializes a new instance of the class. + + The log. + + + + Performs the setup. + + The action. + The context. + + + + Performs the teardown. + + The action. + The context. + + + + Executes the specified task. + + The task to execute. + The context. + Returned Task + + + + Skips the specified task. + + The task to skip. + The criteria that caused the task to be skipped. + + + + Executes the error reporter. + + The action. + The exception. + + + + Executes the error handler. + + The action. + The exception. + + + + Invokes the finally handler. + + The action. + + + + Performs the specified setup action before each task is invoked. + + The action. + The context. + + + + Performs the specified teardown action after each task is invoked. + + The action. + The context. + + + + The default Cake build log. + + + + + Gets or sets the verbosity. + + The verbosity. + + + + Initializes a new instance of the class. + + The console. + The verbosity. + + + + Writes the text representation of the specified array of objects to the + log using the specified verbosity, log level and format information. + + The verbosity. + The log level. + A composite format string. + An array of objects to write using format. + + + + Represents a log. + + + + + Gets or sets the verbosity. + + The verbosity. + + + + Writes the text representation of the specified array of objects to the + log using the specified verbosity, log level and format information. + + The verbosity. + The log level. + A composite format string. + An array of objects to write using format. + + + + Delegate representing lazy log action. + + Proxy to log. + + + + Delegate representing lazy log entry. + + A composite format string. + An array of objects to write using format. + + + + Contains extension methods for . + + + + + Writes an error message to the log using the specified format information. + + The log. + A composite format string. + An array of objects to write using format. + + + + Writes an error message to the log using the specified verbosity and format information. + + The log. + The verbosity. + A composite format string. + An array of objects to write using format. + + + + Writes an error message to the log using the specified verbosity and log message action. + Evaluates log message only if the verbosity is equal to or more verbose than the log's verbosity. + + The log. + The verbosity. + The log action. + + + + Writes an error message to the log using the specified log message action. + Evaluates log message only if the verbosity is equal to or more verbose than the log's verbosity. + + The log. + The log action. + + + + Writes an error message to the log using the specified value. + + The log. + The value. + + + + Writes an error message to the log using the specified string value. + + The log. + The value. + + + + Writes a warning message to the log using the specified format information. + + The log. + A composite format string. + An array of objects to write using format. + + + + Writes a warning message to the log using the specified verbosity and format information. + + The log. + The verbosity. + A composite format string. + An array of objects to write using format. + + + + Writes a warning message to the log using the specified log message action. + Evaluates log message only if the verbosity is equal to or more verbose than the log's verbosity. + + The log. + The log action. + + + + Writes a warning message to the log using the specified verbosity and log message action. + Evaluates log message only if the verbosity is equal to or more verbose than the log's verbosity. + + The log. + The verbosity. + The log action. + + + + Writes an warning message to the log using the specified value. + + The log. + The value. + + + + Writes an warning message to the log using the specified string value. + + The log. + The value. + + + + Writes an informational message to the log using the specified format information. + + The log. + A composite format string. + An array of objects to write using format. + + + + Writes an informational message to the log using the specified verbosity and format information. + + The log. + The verbosity. + A composite format string. + An array of objects to write using format. + + + + Writes an informational message to the log using the specified verbosity and log message action. + Evaluates log message only if the verbosity is equal to or more verbose than the log's verbosity. + + The log. + The verbosity. + The log action. + + + + Writes an informational message to the log using the specified log message action. + Evaluates log message only if the verbosity is equal to or more verbose than the log's verbosity. + + The log. + The log action. + + + + Writes an informational message to the log using the specified value. + + The log. + The value. + + + + Writes an informational message to the log using the specified string value. + + The log. + The value. + + + + Writes a verbose message to the log using the specified format information. + + The log. + A composite format string. + An array of objects to write using format. + + + + Writes a verbose message to the log using the specified verbosity and format information. + + The log. + The verbosity. + A composite format string. + An array of objects to write using format. + + + + Writes a verbose message to the log using the specified log message action. + Evaluates log message only if the verbosity is equal to or more verbose than the log's verbosity. + + The log. + The log action. + + + + Writes a verbose message to the log using the specified verbosity and log message action. + Evaluates log message only if the verbosity is equal to or more verbose than the log's verbosity. + + The log. + The verbosity. + The log action. + + + + Writes a verbose message to the log using the specified value. + + The log. + The value. + + + + Writes a verbose message to the log using the specified string value. + + The log. + The value. + + + + Writes a debug message to the log using the specified format information. + + The log. + A composite format string. + An array of objects to write using format. + + + + Writes a debug message to the log using the specified verbosity and format information. + + The log. + The verbosity. + A composite format string. + An array of objects to write using format. + + + + Writes a debug message to the log using the specified log message action. + Evaluates log message only if the verbosity is equal to or more verbose than the log's verbosity. + + The log. + The log action. + + + + Writes a debug message to the log using the specified verbosity and log message action. + Evaluates log message only if the verbosity is equal to or more verbose than the log's verbosity. + + The log. + The verbosity. + The log action. + + + + Writes a debug message to the log using the specified value. + + The log. + The value. + + + + Writes a debug message to the log using the specified string value. + + The log. + The value. + + + + Writes a message to the log using the specified verbosity, log level and log action delegate. + Evaluates log message only if the verbosity is equal to or more verbose than the log's verbosity. + + The log. + The verbosity. + The log level. + The log action. + + + + Represents a log level. + + + + + Severe errors that cause premature termination. + + + + + Other runtime errors or unexpected conditions. + + + + + Use of deprecated APIs, poor use of API, 'almost' errors, other runtime + situations that are undesirable or unexpected, but not necessarily "wrong". + + + + + Interesting runtime events. + + + + + Detailed information on the flow through the system. + + + + + Most detailed information. + + + + + A log that discards messages written to it. + + + + + Gets or sets the verbosity. + + The verbosity. + + + + Writes the text representation of the specified array of objects to the + log using the specified verbosity, log level and format information. + + The verbosity. + The log level. + A composite format string. + An array of objects to write using format. + + + + Represents verbosity. + + + + + Quiet verbosity. + + + + + Minimal verbosity. + + + + + Normal verbosity. + + + + + Verbose verbosity. + + + + + Diagnostic verbosity. + + + + + This namespace contain types that + enable you to implement custom logging support + and interact with build logs. + + + + + Contains settings related to execution of the script. + + + + + Gets the target to be executed. + + + + + Gets a value indicating whether or not to use the target exclusively. + + + + + Sets the target to be executed. + + The target. + The same instance so that multiple calls can be chained. + + + + Whether or not to use the target exclusively. + + The same instance so that multiple calls can be chained. + + + + Contains extension methods for . + + + + + Gets the tool directory path. + + The Cake configuration. + The default root path. + The environment. + The tool directory path. + + + + Gets the module directory path. + + The Cake configuration. + The default root path. + The environment. + The module directory path. + + + + Contains extension methods for . + + + + + Determines whether the specified platform is a Unix platform. + + The platform. + true if the platform is a Unix platform; otherwise false. + + + + Contains extension methods for . + + + + + Writes an empty line to the console output. + + The console to write to. + + + + Writes an empty line to the console error output. + + The console to write to. + + + + Contains extensions for . + + + + + Gets directories matching the specified filter and scope, with option to exclude hidden directories. + + The directory. + The filter. + The search scope. + Predicate used to filter directories based on file system information. + The directories matching the specified filter, scope and predicate. + + + + Gets directories matching the specified filter and scope, with option to exclude hidden directories. + + The directory. + The filter. + The search scope. + Predicate used to filter directories based on file system information. + Callback if directory gets filtered by . + The directories matching the specified filter, scope and predicate. + + + + Gets files matching the specified filter and scope. + + The directory. + The filter. + The search scope. + Predicate used to filter files based on file system information. + The files matching the specified filter, scope and predicate. + + + + Gets files matching the specified filter and scope. + + The directory. + The filter. + The search scope. + Predicate used to filter files based on file system information. + Callback if file gets filtered by . + The files matching the specified filter, scope and predicate. + + + + Contains extension methods for . + + + + + Gets the signature for a method. + + The method. + if set to true, include method namespace. + if set to true, include parameter namespace. + The method signature. + + + + Gets the full name of a method. + + The method to get the full name for. + The full name. + + + + Gets the namespace of the method. + + The method. + The namespace of the method. + + + + Contains extension methods for . + + + + + Appends the specified text to the argument builder. + + The builder. + The text to be appended. + The same instance so that multiple calls can be chained. + + + + Prepend the specified text to the argument builder. + + The builder. + The text to be prepended. + The same instance so that multiple calls can be chained. + + + + Formats and appends the specified text to the argument builder. + + The builder. + A composite format string. + An object array that contains zero or more objects to format. + The same instance so that multiple calls can be chained. + or is null. + is invalid.-or- The index of a format item is less than zero, or greater than or equal to the length of the array. + + + + Formats and prepends the specified text to the argument builder. + + The builder. + A composite format string. + An object array that contains zero or more objects to format. + The same instance so that multiple calls can be chained. + or is null. + is invalid.-or- The index of a format item is less than zero, or greater than or equal to the length of the array. + + + + Quotes and appends the specified text to the argument builder. + + The builder. + The text to be quoted and appended. + The same instance so that multiple calls can be chained. + + + + Quotes and prepends the specified text to the argument builder. + + The builder. + The text to be quoted and prepended. + The same instance so that multiple calls can be chained. + + + + Formats, quotes and appends the specified text to the argument builder. + + The builder. + A composite format string to be quoted and appended. + An object array that contains zero or more objects to format. + The same instance so that multiple calls can be chained. + or is null. + is invalid.-or- The index of a format item is less than zero, or greater than or equal to the length of the array. + + + + Formats, quotes and prepends the specified text to the argument builder. + + The builder. + A composite format string to be quoted and prepended. + An object array that contains zero or more objects to format. + The same instance so that multiple calls can be chained. + or is null. + is invalid.-or- The index of a format item is less than zero, or greater than or equal to the length of the array. + + + + Quotes and appends the specified argument to the argument builder. + + The builder. + The argument to be quoted and appended. + The same instance so that multiple calls can be chained. + + + + Quotes and prepends the specified argument to the argument builder. + + The builder. + The argument to be quoted and prepended. + The same instance so that multiple calls can be chained. + + + + Appends the specified secret text to the argument builder. + + The builder. + The secret text to be appended. + The same instance so that multiple calls can be chained. + + + + Prepends the specified secret text to the argument builder. + + The builder. + The secret text to be prepended. + The same instance so that multiple calls can be chained. + + + + Formats and appends the specified secret text to the argument builder. + + The builder. + A composite format string for the secret text to be appended. + An object array that contains zero or more objects to format. + The same instance so that multiple calls can be chained. + or is null. + is invalid.-or- The index of a format item is less than zero, or greater than or equal to the length of the array. + The same instance so that multiple calls can be chained. + + + + Formats and prepend the specified secret text to the argument builder. + + The builder. + A composite format string for the secret text to be prepended. + An object array that contains zero or more objects to format. + The same instance so that multiple calls can be chained. + or is null. + is invalid.-or- The index of a format item is less than zero, or greater than or equal to the length of the array. + The same instance so that multiple calls can be chained. + + + + Appends the specified secret text to the argument builder. + + The builder. + The secret argument to be appended. + The same instance so that multiple calls can be chained. + + + + Prepend the specified secret text to the argument builder. + + The builder. + The secret argument to be prepended. + The same instance so that multiple calls can be chained. + + + + Quotes and appends the specified secret text to the argument builder. + + The builder. + The secret text to be quoted and appended. + The same instance so that multiple calls can be chained. + + + + Quotes and prepends the specified secret text to the argument builder. + + The builder. + The secret text to be quoted and prepended. + The same instance so that multiple calls can be chained. + + + + Formats, quotes and appends the specified secret text to the argument builder. + + The builder. + A composite format string for the secret text to be quoted and appended. + An object array that contains zero or more objects to format. + The same instance so that multiple calls can be chained. + or is null. + is invalid.-or- The index of a format item is less than zero, or greater than or equal to the length of the array. + The same instance so that multiple calls can be chained. + + + + Formats, quotes and prepends the specified secret text to the argument builder. + + The builder. + A composite format string for the secret text to be quoted and prepended. + An object array that contains zero or more objects to format. + The same instance so that multiple calls can be chained. + or is null. + is invalid.-or- The index of a format item is less than zero, or greater than or equal to the length of the array. + The same instance so that multiple calls can be chained. + + + + Quotes and appends the specified secret text to the argument builder. + + The builder. + The secret argument to be appended. + The same instance so that multiple calls can be chained. + + + + Quotes and prepends the specified secret text to the argument builder. + + The builder. + The secret argument to be prepended. + The same instance so that multiple calls can be chained. + + + + Appends the specified switch to the argument builder. + + The builder. + The switch preceding the text. + The text to be appended. + The same instance so that multiple calls can be chained. + + + + Prepend the specified switch to the argument builder. + + The builder. + The switch preceding the text. + The text to be prepended. + The same instance so that multiple calls can be chained. + + + + Appends the specified switch to the argument builder. + + The builder. + The switch preceding the text. + The separator between the switch and argument. + The text to be appended. + The same instance so that multiple calls can be chained. + + + + Prepend the specified switch to the argument builder. + + The builder. + The switch preceding the text. + The separator between the switch and argument. + The text to be prepended. + The same instance so that multiple calls can be chained. + + + + Quotes and appends the specified text to the argument builder. + + The builder. + The switch preceding the text. + The text to be quoted and appended. + The same instance so that multiple calls can be chained. + + + + Quotes and prepends the specified text to the argument builder. + + The builder. + The switch preceding the text. + The text to be quoted and prepended. + The same instance so that multiple calls can be chained. + + + + Quotes and appends the specified text to the argument builder. + + The builder. + The switch preceding the text. + The separator between the switch and argument. + The text to be quoted and appended. + The same instance so that multiple calls can be chained. + + + + Quotes and prepends the specified text to the argument builder. + + The builder. + The switch preceding the text. + The separator between the switch and argument. + The text to be quoted and prepended. + The same instance so that multiple calls can be chained. + + + + Quotes and appends the specified argument to the argument builder. + + The builder. + The switch preceding the text. + The argument to be quoted and appended. + The same instance so that multiple calls can be chained. + + + + Quotes and prepends the specified argument to the argument builder. + + The builder. + The switch preceding the text. + The argument to be quoted and prepended. + The same instance so that multiple calls can be chained. + + + + Quotes and appends the specified argument to the argument builder. + + The builder. + The switch preceding the text. + The separator between the switch and argument. + The argument to be quoted and appended. + The same instance so that multiple calls can be chained. + + + + Quotes and prepends the specified argument to the argument builder. + + The builder. + The switch preceding the text. + The separator between the switch and argument. + The argument to be quoted and prepended. + The same instance so that multiple calls can be chained. + + + + Appends the specified secret text to the argument builder. + + The builder. + The switch preceding the text. + The secret text to be appended. + The same instance so that multiple calls can be chained. + + + + Prepend the specified secret text to the argument builder. + + The builder. + The switch preceding the text. + The secret text to be prepended. + The same instance so that multiple calls can be chained. + + + + Appends the specified secret text to the argument builder. + + The builder. + The switch preceding the text. + The separator between the switch and argument + The secret text to be appended. + The same instance so that multiple calls can be chained. + + + + Prepend the specified secret text to the argument builder. + + The builder. + The switch preceding the text. + The separator between the switch and argument + The secret text to be prepended. + The same instance so that multiple calls can be chained. + + + + Appends the specified secret text to the argument builder. + + The builder. + The switch preceding the text. + The secret argument to be appended. + The same instance so that multiple calls can be chained. + + + + Prepend the specified secret text to the argument builder. + + The builder. + The switch preceding the text. + The secret argument to be prepended. + The same instance so that multiple calls can be chained. + + + + Appends the specified secret text to the argument builder. + + The builder. + The switch preceding the text. + The separator between the switch and argument + The secret argument to be appended. + The same instance so that multiple calls can be chained. + + + + Prepend the specified secret text to the argument builder. + + The builder. + The switch preceding the text. + The separator between the switch and argument + The secret argument to be prepended. + The same instance so that multiple calls can be chained. + + + + Quotes and appends the specified secret text to the argument builder. + + The builder. + The switch preceding the text. + The secret text to be quoted and appended. + The same instance so that multiple calls can be chained. + + + + Quotes and prepend the specified secret text to the argument builder. + + The builder. + The switch preceding the text. + The secret text to be quoted and prepended. + The same instance so that multiple calls can be chained. + + + + Quotes and appends the specified secret text to the argument builder. + + The builder. + The switch preceding the text. + The separator between the switch and argument. + The secret text to be quoted and appended. + The same instance so that multiple calls can be chained. + + + + Quotes and prepends the specified secret text to the argument builder. + + The builder. + The switch preceding the text. + The separator between the switch and argument. + The secret text to be quoted and prepended. + The same instance so that multiple calls can be chained. + + + + Quotes and appends the specified secret text to the argument builder. + + The builder. + The switch preceding the text. + The secret argument to be appended. + The same instance so that multiple calls can be chained. + + + + Quotes and prepends the specified secret text to the argument builder. + + The builder. + The switch preceding the text. + The secret argument to be prepended. + The same instance so that multiple calls can be chained. + + + + Quotes and appends the specified secret text to the argument builder. + + The builder. + The switch preceding the text. + The separator between the switch and argument + The secret argument to be appended. + The same instance so that multiple calls can be chained. + + + + Quotes and prepend the specified secret text to the argument builder. + + The builder. + The switch preceding the text. + The separator between the switch and argument + The secret argument to be prepended. + The same instance so that multiple calls can be chained. + + + + Indicates whether a is null or renders empty. + + The builder. + true if refers to a null or empty ; + false if the refers to non null or empty + + + + Copies all the arguments of the source to target . + + The argument builder to copy from.. + The argument builder to copy to. + + + + Contains extension methods for . + + + + + Starts a process using the specified information. + + The process runner. + The file name such as an application or document with which to start the process. + A process handle. + + + + Contains extension methods for . + + + + + Sets the arguments for the process + + The settings. + The action used to set arguments. + The same instance so that multiple calls can be chained. + + + + Sets the working directory for the process to be started. + + The process settings. + The working directory for the process to be started. + The same instance so that multiple calls can be chained. + + + + Sets a value indicating whether the output of an application is written to the stream. + + The process settings. + true if output should be written to ; otherwise, false. The default is false. + The same instance so that multiple calls can be chained. + + + + Sets the optional timeout for process execution + + The process settings. + The timeout duration + The same instance so that multiple calls can be chained. + + + + Contains extension methods for . + + + + + Quotes the specified . + + The string to quote. + A quoted string. + + + + Unquote the specified . + + The string to unquote. + An unquoted string. + + + + Splits the into lines. + + The string to split. + The lines making up the provided string. + + + + Normalizes the line endings in a . + + The string to normalize line endings in. + A with normalized line endings. + + + + Contains extension methods for . + + + + + Determines whether the specified is static. + + The type. + Whether or not the specified type is static + + + + Gets the full name of a . + + The type. + if set to true then namespace is included. + The full name of a type + + + + Gets whether or not a given is a subclass of an raw/open generic. + + The type to check + The open generic to test + typeof(Nullable<int>).IsSubclassOfRawGeneric(typeof(Nullable<>)); + Returns true if the type is a subtype of a raw generic, else false + + + + Extensions for + + + + + Extracts query string of + + The URI + Collection of parameters and it's values + + + + Represents arguments passed to script. + + + + + Determines whether or not the specified argument exist. + + The argument name. + + true if the argument exist; otherwise false. + + + + + Gets an argument. + + The argument name. + The argument value. + + + + Represents a context for scripts and script aliases. + + + + + Gets the file system. + + The file system. + + + + Gets the environment. + + The environment. + + + + Gets the globber. + + The globber. + + + + Gets the log. + + The log. + + + + Gets the arguments. + + The arguments. + + + + Gets the process runner. + + The process runner. + + + + Gets the registry. + + The registry. + + + + Gets the tool locator. + + The tool locator. + + + + Gets the data context resolver. + + + + + Represents a data context resolver. + + + + + Gets the data of the specified type. + + The data type. + The value of the data. + + + + Represents a data context service. + + + + + Adds the data of the specified type. + + The data type. + The value of the data. + + + + Represents the Cake engine. + + + + + Gets all registered tasks. + + The registered tasks. + + + + Raised during setup before any tasks are run. + + + + + Raised during teardown after all other tasks have been run. + + + + + Raised before each task is run. + + + + + Raised after each task has been run. + + + + + Registers a new task. + + The name of the task. + A . + + + + Allows registration of an action that's executed before any tasks are run. + If setup fails, no tasks will be executed but teardown will be performed. + + The action to be executed. + + + + Allows registration of an action that's executed before any tasks are run. + If setup fails, no tasks will be executed but teardown will be performed. + + The data type. + The action to be executed. + + + + Allows registration of an action that's executed after all other tasks have been run. + If a setup action or a task fails with or without recovery, the specified teardown action will still be executed. + + The action to be executed. + + + + Allows registration of an action that's executed after all other tasks have been run. + If a setup action or a task fails with or without recovery, the specified teardown action will still be executed. + + The data type. + The action to be executed. + + + + Runs the specified target using the specified . + + The context. + The execution strategy. + The execution settings. + The resulting report. + + + + Allows registration of an action that's executed before each task is run. + If the task setup fails, the task will not be executed but the task's teardown will be performed. + + The action to be executed. + + + + Allows registration of an action that's executed before each task is run. + If the task setup fails, the task will not be executed but the task's teardown will be performed. + + The data type. + The action to be executed. + + + + Allows registration of an action that's executed after each task has been run. + If a task setup action or a task fails with or without recovery, the specified task teardown action will still be executed. + + The action to be executed. + + + + Allows registration of an action that's executed after each task has been run. + If a task setup action or a task fails with or without recovery, the specified task teardown action will still be executed. + + The data type. + The action to be executed. + + + + Represents the environment Cake operates in. + + + + + Gets or sets the working directory. + + The working directory. + + + + Gets the application root path. + + The application root path. + + + + Gets a special path. + + The path. + A to the special path. + + + + Gets an environment variable. + + The variable. + The value of the environment variable. + + + + Gets all environment variables. + + The environment variables as IDictionary<string, string> + + + + Gets the platform Cake is running on. + + The platform Cake is running on. + + + + Gets the runtime Cake is running in. + + The runtime Cake is running in. + + + + Gets whether or not the current operative system is 64 bit. + + Whether or not the current operative system is 64 bit. + + + + Determines whether the current machine is running Unix. + + Whether or not the current machine is running Unix. + + + + Gets the application root path. + + The application root path. + + + + Extension methods for ICakeEnvironment + + + + + Expands the environment variables in the text. Variables shoud be quoted with %. + + The cake environment interface + A string containing the names of zero or more environment variables. + A string with each environment variable replaced by its value. + + + + Represents the platform that Cake is running on. + + + + + Gets the platform family. + + The platform family. + + + + Gets a value indicating whether or not the current operative system is 64 bit. + + + true if current operative system is 64 bit; otherwise, false. + + + + + Represents a report printer. + + + + + Writes the specified report to a target. + + The report to write. + + + + Represents the runtime that Cake is running in. + + + + + Gets the build-time .NET framework version that is being used. + + + + + Gets the current executing .NET Runtime. + + The target framework. + + + + Gets the version of Cake executing the script. + + The Cake.exe version. + + + + Gets a value indicating whether we're running on CoreClr. + + + true if we're runnning on CoreClr; otherwise, false. + + + + + Provides descriptive properties about a cake task. + + + + + Gets the name of the task. + + The name of the task. + + + + Gets the description of the task. + + The description of the task. + + + + Gets the task's dependencies. + + The task's dependencies. + + + + Gets the tasks that the task want to be a dependency of. + + The tasks that the task want to be a dependency of. + + + + Represents console output. + + + + + Gets or sets the foreground color. + + The foreground color + + + + Gets or sets the background color. + + The background color + + + + Writes the text representation of the specified array of objects to the + console output using the specified format information. + + A composite format string + An array of objects to write using format. + + + + Writes the text representation of the specified array of objects, followed + by the current line terminator, to the console output using the specified + format information. + + A composite format string + An array of objects to write using format. + + + + Writes the text representation of the specified array of objects to the + console error output using the specified format information. + + A composite format string + An array of objects to write using format. + + + + Writes the text representation of the specified array of objects, followed + by the current line terminator, to the console error output using the + specified format information. + + A composite format string + An array of objects to write using format. + + + + Sets the foreground and background console colors to their defaults. + + + + + Represents a task execution strategy. + + + + + Performs the setup. + + The action. + The context. + + + + Performs the teardown. + + The action. + The context. + + + + Executes the specified task. + + The task to execute. + The context. + Returned Task + + + + Skips the specified task. + + The task to skip. + The criteria that caused the task to be skipped. + + + + Executes the error reporter. + + The action. + The exception. + + + + Executes the error handler. + + The action. + The exception. + + + + Invokes the finally handler. + + The action. + + + + Performs the specified setup action before each task is invoked. + + The action. + The context. + + + + Performs the specified teardown action after each task is invoked. + + The action. + The context. + + + + Represents a quoted argument. + + + + + Initializes a new instance of the class. + + The argument. + + + + Render the arguments as a . + Sensitive information will be included. + + A string representation of the argument. + + + + Renders the argument as a . + Sensitive information will be redacted. + + A safe string representation of the argument. + + + + Returns a that represents the current object. + + A string that represents the current object. + + + + Represents a secret argument. + + + + + Initializes a new instance of the class. + + The argument. + + + + Render the arguments as a . + The secret text will be included. + + A string representation of the argument. + + + + Renders the argument as a . + The secret text will be redacted. + + A safe string representation of the argument. + + + + Returns a that represents the current object. + + A string that represents the current object. + + + + Represents a argument preceded by a switch. + + + + + Initializes a new instance of the class. + + The switch. + The argument. + The separator between the and the . + + + + Render the arguments as a . + Sensitive information will be included. + + + A string representation of the argument. + + + + + Renders the argument as a . + The secret text will be redacted. + + A safe string representation of the argument. + + + + Returns a string that represents the current object. + + + A string that represents the current object. + + + + + Represents a text argument. + + + + + Initializes a new instance of the class. + + The text. + + + + Render the arguments as a . + Sensitive information will be included. + + + A string representation of the argument. + + + + + Renders the argument as a . + Sensitive information will be redacted. + + + A safe string representation of the argument. + + + + + Returns a that represents the current object. + + A string that represents the current object. + + + + This namespace contain types + used to compose process arguments in a safe way. + + + + + Represents a directory path. + + + + + Initializes a new instance of the class. + + The path. + + + + Gets the name of the directory. + + The directory name. + + If this is passed a file path, it will return the file name. + This is by-and-large equivalent to how DirectoryInfo handles this scenario. + If we wanted to return the *actual* directory name, we'd need to pull in IFileSystem, + and do various checks to make sure things exists. + + + + + Combines the current path with the file name of a . + + The path. + A combination of the current path and the file name of the provided . + + + + Combines the current path with a . + The provided must be relative. + + The path. + A combination of the current path and the provided . + + + + Combines the current path with another . + The provided must be relative. + + The path. + A combination of the current path and the provided . + + + + Makes the path absolute to another (absolute) path. + + The path. + An absolute path. + + + + Makes the path absolute (if relative) using the current working directory. + + The environment. + An absolute path. + + + + Collapses a containing ellipses. + + A collapsed . + + + + Performs an implicit conversion from to . + + The path. + A . + + + + Performs a conversion from to . + + The path. + A . + + + + Get the relative path to another directory. + + The target directory path. + A . + + + + Get the relative path to another file. + + The target file path. + A . + + + + A collection of . + + + + + Gets the number of directories in the collection. + + The number of directories in the collection. + + + + Initializes a new instance of the class. + + The comparer. + + + + Initializes a new instance of the class. + + The paths. + The comparer. + is null. + + + + Adds the specified path to the collection. + + The path to add. + + true if the path was added; false if the path was already present. + + + + + Adds the specified paths to the collection. + + The paths to add. + + + + Removes the specified path from the collection. + + The path to remove. + + true if the path was removed; false if the path was not found in the collection. + + + + + Removes the specified paths from the collection. + + The paths to remove. + + + Adds a path to the collection. + The collection. + The path to add. + A new that contains the provided path as + well as the paths in the original collection. + + + Adds multiple paths to the collection. + The collection. + The paths to add. + A new with the content of both collections. + + + + Removes a path from the collection. + + The collection. + The path to remove. + A new that do not contain the provided path. + + + + Removes multiple paths from the collection. + + The collection. + The paths to remove. + A new that do not contain the provided paths. + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through a collection. + + + An that can be used to iterate through the collection. + + + + + Contains extension methods for . + + + + + Opens the file using the specified options. + + The file. + The mode. + A to the file. + + + + Opens the file using the specified options. + + The file. + The mode. + The access. + A to the file. + + + + Opens the file for reading. + + The file. + A to the file. + + + + Opens the file for writing. + If the file already exists, it will be overwritten. + + The file to be opened. + A to the file. + + + + Enumerates line in file + + The file to be read from. + The encoding that is applied to the content of the file. + A of file line content + + + + Represents a file path. + + + + + Gets a value indicating whether this path has a file extension. + + + true if this file path has a file extension; otherwise, false. + + + + + Initializes a new instance of the class. + + The path. + + + + Gets the directory part of the path. + + The directory part of the path. + + + + Gets the filename. + + The filename. + + + + Gets the filename without its extension. + + The filename without its extension. + + + + Gets the file extension. + + The file extension. + + + + Changes the file extension of the path. + + The new extension. + A new with a new extension. + + + + Appends a file extension to the path. + + The extension. + A new with an appended extension. + + + + Makes the path absolute (if relative) using the current working directory. + + The environment. + An absolute path. + + + + Makes the path absolute (if relative) using the specified directory path. + + The path. + An absolute path. + + + + Collapses a containing ellipses. + + A collapsed . + + + + Performs an implicit conversion from to . + + The path. + A . + + + + Performs a conversion from to . + + The path. + A . + + + + Get the relative path to another directory. + + The target directory path. + A . + + + + Get the relative path to another file. + + The target file path. + A . + + + + A collection of . + + + + + Gets the number of files in the collection. + + The number of files in the collection. + + + + Initializes a new instance of the class. + + The comparer. + + + + Initializes a new instance of the class. + + The paths. + The comparer. + + + + Adds the specified path to the collection. + + The path to add. + + true if the path was added; false if the path was already present. + + + + + Adds the specified paths to the collection. + + The paths to add. + + + + Removes the specified path from the collection. + + The path to remove. + + true if the path was removed; false if the path was not found in the collection. + + + + + Removes the specified paths from the collection. + + The paths to remove. + + + Adds a path to the collection. + The collection. + The path to add. + A new that contains the provided path as + well as the paths in the original collection. + + + Adds multiple paths to the collection. + The collection. + The paths to add. + A new with the content of both collections. + + + + Removes a path from the collection. + + The collection. + The path to remove. + A new that do not contain the provided path. + + + + Removes multiple paths from the collection. + + The collection. + The paths to remove. + A new that do not contain the provided paths. + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through a collection. + + + An that can be used to iterate through the collection. + + + + + A physical file system implementation. + + + + + Gets a instance representing the specified path. + + The path. + A instance representing the specified path. + + + + Gets a instance representing the specified path. + + The path. + A instance representing the specified path. + + + + Contains extensions for . + + + + + Determines if a specified exist. + + The file system. + The path. + Whether or not the specified file exist. + + + + Determines if a specified exist. + + The file system. + The path. + Whether or not the specified directory exist. + + + + The file system globber. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + + + + Returns instances matching the specified pattern. + + The pattern to match. + The predicate used to filter directories based on file system information. + + instances matching the specified pattern. + + + + + Contains extensions for . + + + + + Gets all files matching the specified pattern. + + The globber. + The pattern. + The files matching the specified pattern. + + + + Gets all directories matching the specified pattern. + + The globber. + The pattern. + The directories matching the specified pattern. + + + + Returns instances matching the specified pattern. + + The globber. + The pattern to match. + + instances matching the specified pattern. + + + + + Gets the next GlobToken from the context + + The Peek'd token + + + + Accepts the current GlobToken and loads the next into CurrentToken + + + + + Accepts the CurrentToken if it is of the specified TokenKind(s), and fetches the next token. + + The types of acceptable + + + + Gets the next token from the pattern. + + The next GlobToken. + + + + Peeks the next token from the pattern. + + The peek'd GlobToken. + + + + Loads the tokens into the token queue. + + A queue of tokens representing the pattern. + + + + Searches the private dictionary for a set of tokens matching the current (and future) character position(s). + Performs a greedy match of the keys in the dictionary against the remaining pattern. + + The GlobTokenKind associated with the mathing entry, or GlobTokenKind.Identifier if none were found. + + + + Determine what GlobTokenKind a period represents given the context + + The appropriate GlobTokenKind depending on the next character + + + + Represents a directory. + + + + + Gets the path to the directory. + + The path. + + + + Creates the directory. + + + + + Moves the directory to the specified destination path. + + The destination path. + + + + Deletes the directory. + + Will perform a recursive delete if set to true. + + + + Gets directories matching the specified filter and scope. + + The filter. + The search scope. + Directories matching the filter and scope. + + + + Gets files matching the specified filter and scope. + + The filter. + The search scope. + Files matching the specified filter and scope. + + + + Represents a file. + + + + + Gets the path to the file. + + The path. + + + + Gets the length of the file. + + The length of the file. + + + + Gets or sets the file attributes. + + The file attributes. + + + + Copies the file to the specified destination path. + + The destination path. + Will overwrite existing destination file if set to true. + + + + Moves the file to the specified destination path. + + The destination path. + + + + Deletes the file. + + + + + Opens the file using the specified options. + + The file mode. + The file access. + The file share. + A to the file. + + + + Represents a file system. + + + + + Gets a instance representing the specified path. + + The path. + A instance representing the specified path. + + + + Gets a instance representing the specified path. + + The path. + A instance representing the specified path. + + + + Represents an entry in the file system + + + + + Gets the path to the entry. + + The path. + + + + Gets a value indicating whether this exists. + + + true if the entry exists; otherwise, false. + + + + + Gets a value indicating whether this is hidden. + + + true if the entry is hidden; otherwise, false. + + + + + Represents a file system globber. + + + + + Returns instances matching the specified pattern. + + The pattern to match. + The predicate used to filter directories based on file system information. + + instances matching the specified pattern. + + + + + Represents a process. + + + + + Waits for the process to exit. + + + + + Waits for the process to exit with possible timeout for command. + + The amount of time, in milliseconds, to wait for the associated process to exit. The maximum is the largest possible value of a 32-bit integer, which represents infinity to the operating system. + true if the associated process has exited; otherwise, false. + + + + Gets the exit code of the process. + + The exit code of the process. + + + + Get the standard error of process. + + Returns process error output if RedirectStandardError is true + + + + Get the standard output of process + + Returns process output if RedirectStandardOutput is true + + + + Immediately stops the associated process. + + + + + Represents a process argument. + + + + + Render the arguments as a . + Sensitive information will be included. + + A string representation of the argument. + + + + Renders the argument as a . + Sensitive information will be redacted. + + A safe string representation of the argument. + + + + Represents a process runner. + + + + + Starts a process using the specified information. + + The file name such as an application or document with which to start the process. + The information about the process to start. + A process handle. + + + + Represents the Windows registry. + + + + + Gets a registry key representing HKEY_LOCAL_MACHINE. + + + A registry key representing HKEY_LOCAL_MACHINE. + + + + + Represents a Windows registry key. + + + + + Gets all sub keys. + + All sub keys. + + + + Opens the sub key with the specified name. + + The name of the key. + The sub key with the specified name + + + + Gets the value of the key. + + The name of the key. + The value of the key. + + + + Represents a NuGet path resolver. + + + + + Resolves the path to nuget.exe. + + The path to nuget.exe. + + + + Contains NuGet path resolver functionality + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The tool locator. + + + + Resolves the path to nuget.exe. + + The path to nuget.exe. + + + + This namespace contain types + related to NuGet functionality. + + + + + Provides properties and instance methods for working with paths. + This class must be inherited. + + + + + Gets the full path. + + The full path. + + + + Gets a value indicating whether this path is relative. + + + true if this path is relative; otherwise, false. + + + + + Gets the segments making up the path. + + The segments making up the path. + + + + Initializes a new instance of the class. + + The path. + + + + Returns a that represents this path. + + + A that represents this instance. + + + + + Compares instances. + + + + + The default path comparer. + + + + + Gets a value indicating whether comparison is case sensitive. + + + true if comparison is case sensitive; otherwise, false. + + + + + Initializes a new instance of the class. + + if set to true, comparison is case sensitive. + + + + Initializes a new instance of the class. + + The environment. + + + + Determines whether the specified instances are equal. + + The first to compare. + The second to compare. + + True if the specified instances are equal; otherwise, false. + + + + + Returns a hash code for the specified . + + The path. + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Utility for building process arguments. + + + + + Gets the number of arguments contained in the . + + + + + Initializes a new instance of the class. + + + + + Clears all arguments from the builder. + + + + + Appends an argument. + + The argument. + + + + Prepends an argument. + + The argument. + + + + Renders the arguments as a . + Sensitive information will be included. + + A string representation of the arguments. + + + + Renders the arguments as a . + Sensitive information will be redacted. + + A safe string representation of the arguments. + + + + Tries to filer any unsafe arguments from string + + unsafe source string. + Filtered string. + + + + Performs an implicit conversion from to . + + The text value to convert. + A . + + + + Performs a conversion from to . + + The text value to convert. + A . + + + + Returns an enumerator that iterates through the collection. + + + An enumerator that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through a collection. + + + An that can be used to iterate through the collection. + + + + + Responsible for starting processes. + + + + + Initializes a new instance of the class. + + The environment. + The log. + + + + Starts a process using the specified information. + + The file name such as an application or document with which to start the process. + The information about the process to start. + A process handle. + + + + Specifies a set of values that are used to start a process. + + + + + Gets or sets the set of command-line arguments to use when starting the application. + + The set of command-line arguments to use when starting the application. + + + + Gets or sets the working directory for the process to be started. + + The working directory for the process to be started. + + + + Gets or sets a value indicating whether or not to opt out of using + an explicit working directory for the process. + + + + + Gets or sets a value indicating whether the error output of an application is written to the standard error stream. + + true if error output should be redirected; false if error output should be written to the standard error stream. The default is false. + + + + Gets or sets a value indicating whether the output of an application is written to the standard output stream. + + true if output should be redirected; false if output should be written to the standard output stream. The default is false. + + + + Gets or sets optional timeout, in milliseconds, to wait for the associated process to exit. The maximum is the largest possible value of a 32-bit integer, which represents infinity to the operating system. + + + + + Gets or sets a value indicating whether process output will be suppressed. + + + true if process output will be suppressed; otherwise, false. + + + + + Gets or sets search paths for files, directories for temporary files, application-specific options, and other similar information. + + + + StartProcess("cmd", new ProcessSettings{ + Arguments = "/c set", + EnvironmentVariables = new Dictionary<string, string>{ + { "CI", "True" }, + { "TEMP", MakeAbsolute(Directory("./Temp")).FullPath } + } + }); + + + + + + Represents a search scope. + + + + + The current directory. + + + + + The current directory and child directories. + + + + + Represents a special path. + + + + + The directory that serves as a common repository for application-specific + data for the current roaming user. + + + + + The directory that serves as a common repository for application-specific + data that is used by all users. + + + + + The directory that serves as a common repository for application-specific + data that is used by the current, non-roaming user. + + + + + The Program Files folder. + + + + + The Program Files (X86) folder. + + + + + The Windows folder. + + + + + The current user's temporary folder. + + + + + Represents an Windows implementation of . + + + + + Gets the LocalMachine . + + + + + This namespace contain fundamental types that support + input and output, including the ability to read and write data + to streams and to interact with the file system. + + + + + Acts as a context providing info about the overall build before its started. + + + + + Gets target / initating task. + + + + + Gets all registered tasks that are going to be executed. + + + + + Acts as a context providing info about a before its invocation. + + + + + Gets the describing the that has just been invoked. + + + The task. + + + + + Acts as a context providing info about a following its invocation. + + + + + Gets the describing the that has just been invoked. + + + The task. + + + + + Gets the duration of the 's execution. + + + The duration of the 's execution. + + + + + Gets a value indicating whether this was skipped (not executed). + + + true if skipped; otherwise, false. + + + + + Acts as a context providing info about the overall build following its completion. + + + + + Gets a value indicating whether this build was successful. + + + true if successful; otherwise false. + + + + + Gets the exception that was thrown by the target. + + + + + The module responsible for registering + default types in the Cake.Core assembly. + + + + + Performs custom registrations in the provided registrar. + + The container registrar. + + + + Represents an installer for a specific package. + + + + + Determines whether this instance can install the specified resource. + + The package resource. + The package type. + + true if this installer can install the + specified resource; otherwise false. + + + + + Installs the specified resource at the given location. + + The package resource. + The package type. + The location where to install the resource. + The installed files. + + + + Represents an URI resource. + + + + + Gets the original string. + + The original string. + + + + Gets the scheme. + + The scheme. + + + + Gets the address. + + The address. + + + + Gets the parameters. + + The parameters. + + + + Gets the package. + + The package. + + + + Initializes a new instance of the class. + + The URI. + + + + Initializes a new instance of the class. + + The URI. + Package query string parameter is missing.;uri + + + + Represents a package type. + + + + + Represents an unspecified package type. + + + + + Represents an addin. + + + + + Represents a tool. + + + + + Represents a module. + + + + + Represents a platform family. + + + + + The platform family is unknown. + + + + + Represents the Windows platform family. + + + + + Represents the Linux platform family. + + + + + Represents the OSX platform family. + + + + + The current Runtime Cake is executing on. + + + + + Full Framework or Mono. + + + + + .NET Core 2. + + + + + The namespace contains fundamental classes and + base classes for Cake and the Cake scripting environment. + + + + + This namespace contain types + related to script processing and execution. + + + + + This namespace contain types + related to script processing. + + + + + Abstract line processor. + + + + + Processes the specified line. + + The analyzer. + The line. + The replacement for line, null if no replacement + true if the line was processed + by this processor; otherwise false. + + + + Splits the specified line into tokens. + + The line to split. + The parts that make up the line. + + + + Represents a load directive provider. + + + + + Indicates whether or not this provider can load the specified . + + The context. + The reference to the code to load. + true if the provider can load the reference; otherwise false. + + + + Loads the specified . + + The context. + The reference to load. + + + + Represents a resource to load via the #load directive. + + + + + Gets the original string. + + The original string. + + + + Gets the scheme. + + The scheme. + + + + Gets the address. + + The address. + + + + Gets the parameters. + + The parameters. + + + + Initializes a new instance of the class. + + The URI. + + + + Represents the script analyzer responsible for + parsing and analyzing scripts. + + + + + Analyzes the specified script path. + + The path to the script to analyze. + The script analysis result. + + + + Represents the context used by the . + + + + + Gets the path to the initial script being executed. + + + + + Gets the current script being processed. + + The current script being processed. + + + + Processes the specified script path using the same context. + + The script path to process. + + + + Adds a script line to the result. + + The script line to add. + + + + Adds a script error to the result. + + The script error to add. + + + + Represents information about a script. + + + + + Gets the script path. + + The script path. + + + + Gets the includes. + + The includes. + + + + Gets the referenced script assemblies. + + The referenced script assemblies. + + + + Gets all namespaces referenced by the script. + + The namespaces referenced by the script. + + + + Gets all using aliases defined by the scripts. + + The using aliases defined by the script. + + + + Gets all types referenced with the using static directive. + + The fully qualified type names referenced by using static in the script. + + + + Gets the defines directives defined by the scripts. + + The defines. + + + + Gets the tools. + + The tools. + + + + Gets the addins. + + The addins. + + + + Gets the modules. + + The modules. + + + + The script analyzer. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The log. + The load directive providers. + + + + Analyzes the specified script path. + + The path to the script to analyze. + The script analysis result. + + + + Represents a script analysis error. + + + + + Gets the file containing the error. + + + + + Gets the line number for the error. + + + + + Gets the error message. + + + + + Initializes a new instance of the class. + + The file containing the error. + The line number for the error. + The error message. + + + + Represents a script analysis result. + + + + + Gets the analyzed script. + + The script. + + + + Gets the merged script lines. + + The merged script lines. + + + + Gets all references. + + The references. + + + + Gets all the namespaces. + + The namespaces. + + + + Gets the using aliases. + + The using aliases. + + + + Gets all types referenced with the using static directive. + + + + + Gets the defines. + + The defines. + + + + Gets the addins. + + The addins. + + + + Gets the tools. + + The tools. + + + + Gets the modules. + + The modules. + + + + Gets a value indicating whether to analysis succeded without errors. + + + + + Gets the list of analyzer errors. + + + + + Initializes a new instance of the class. + + The script. + The merged script lines. + The analyzer errors. + + + + Responsible for generating generic parameter constraints on generated generic methods + + + + + Responsible for generating script method aliases. + + + + + Generates a script method alias from the specified method. + The provided method must be an extension method for + and it must be decorated with the . + + The method to generate the code for. + The generated code. + + + + Responsible for generating parameter tokens in method alias generation + + + + + Provides support for cleaning parameter names consisting of reserved keywords + + + + + Responsible for generating script property aliases. + + + + + Generates a script property alias from the specified method. + The provided method must be an extension method for + and it must be decorated with the . + + The method to generate the code for. + The generated code. + + + + Represents a script alias generator. + + + + + Finds script aliases in the provided assemblies. + + The assemblies to find script aliases in. + The script aliases that were found. + + + + Represents the script conventions used by Cake. + + + + + Gets the default namespaces. + + A list containing all default namespaces. + + + + Gets the default assemblies. + + The root to where to find Cake related assemblies. + A list containing all default assemblies. + + + + Represents a script engine. + + + + + Creates a new script session. + + The host. + A new script session. + + + + Represents a script host that works as a context for scripts. + + + + + Gets the context. + + The context. + + + + Gets all registered tasks. + + The registered tasks. + + + + Registers a new task. + + The name of the task. + A . + + + + Allows registration of an action that's executed before any tasks are run. + If setup fails, no tasks will be executed but teardown will be performed. + + The action to be executed. + + + + Allows registration of an action that's executed before any tasks are run. + If setup fails, no tasks will be executed but teardown will be performed. + + The action to be executed. + The data type. + + + + Allows registration of an action that's executed after all other tasks have been run. + If a setup action or a task fails with or without recovery, the specified teardown action will still be executed. + + The action to be executed. + + + + Allows registration of an action that's executed after all other tasks have been run. + If a setup action or a task fails with or without recovery, the specified teardown action will still be executed. + + The action to be executed. + The data type. + + + + Allows registration of an action that's executed before each task is run. + If the task setup fails, its task will not be executed but the task teardown will be performed. + + The action to be executed. + + + + Allows registration of an action that's executed before each task is run. + If the task setup fails, its task will not be executed but the task teardown will be performed. + + The data type. + The action to be executed. + + + + Allows registration of an action that's executed after each task has been run. + If a task setup action or a task fails with or without recovery, the specified task teardown action will still be executed. + + The action to be executed. + + + + Allows registration of an action that's executed after each task has been run. + If a task setup action or a task fails with or without recovery, the specified task teardown action will still be executed. + + The data type. + The action to be executed. + + + + Runs the specified target. + + The target to run. + The resulting report. + + + + Runs the specified target. + + The target to run. + The resulting report. + + + + Represents a script processor. + + + + + Installs the addins. + + The addins to install. + The install path. + A list containing file paths to installed addin assemblies. + + + + Installs the tools. + + The tools to install. + The install path. + + + + Installs the modules. + + The modules to install. + The install path. + + + + Represents a script runner responsible for running scripts. + + + + + Runs the script using the specified script host. + + The script host. + The script path. + The arguments. + + + + Represents a script session. + + + + + Adds a reference path to the session. + + The reference path. + + + + Adds an assembly reference to the session. + + The assembly reference. + + + + Imports a namespace to the session. + + The namespace to import. + + + + Executes the specified script. + + The script to execute. + + + + Represents a script. + + + + + Gets the namespaces imported via the using statement. + + The namespaces. + + + + Gets the script lines. + + + The lines. + + + + + Gets the aliases. + + The aliases. + + + + Gets the using alias directives. + + The using alias directives. + + + + Gets the using static directives. + + The using static directives. + + + + Gets the defines. + + The defines. + + + + Initializes a new instance of the class. + + The namespaces. + The scrip lines. + The script aliases. + The using alias directives. + The using static directives. + The defines. + + + + Represents a script alias. + + + + + Gets the name of the alias. + + The name. + + + + Gets the method associated with the alias. + + The method associated with the alias. + + + + Gets the alias type. + + The alias type. + + + + Gets all namespaces that the alias need to be imported. + + + The namespaces that the alias need to be imported. + + + + + Initializes a new instance of the class. + + The method associated with the alias. + The alias type. + The namespaces that the alias need to be imported. + + + + The script alias finder. + + + + + Initializes a new instance of the class. + + The log. + + + + Finds script aliases in the provided assemblies. + + The assemblies to find script aliases in. + The script aliases that were found. + + + + Represents a script alias type. + + + + + Represents an unknown script alias type. + + + + + Represents a script alias method. + + + + + Represents a script alias property. + + + + + The script conventions used by Cake. + + + + + Initializes a new instance of the class. + + The file system. + The assembly loader. + + + + Gets the default namespaces. + + A list containing all default namespaces. + + + + Gets the default assemblies. + + The root to where to find Cake related assemblies. + A list containing all default assemblies. + + + + The script host works as a context for scripts. + + + + + Gets the engine. + + The engine. + + + + Gets the context. + + The context. + + + + Gets the settings. + + The settings. + + + + Initializes a new instance of the class. + + The engine. + The context. + + + + Gets all registered tasks. + + The registered tasks. + + + + Registers a new task. + + The name of the task. + A . + + + + Allows registration of an action that's executed before any tasks are run. + If setup fails, no tasks will be executed but teardown will be performed. + + The action to be executed. + + + Setup(context => { + context.Log.Information("Hello World!"); + }); + + + + + + Allows registration of an action that's executed before any tasks are run. + If setup fails, no tasks will be executed but teardown will be performed. + + The data type. + The action to be executed. + + + Setup<Foo>(context => { + return new Foo(); + }); + + + + + + Allows registration of an action that's executed after all other tasks have been run. + If a setup action or a task fails with or without recovery, the specified teardown action will still be executed. + + The action to be executed. + + + Teardown(context => { + context.Log.Information("Goodbye World!"); + }); + + + + + + Allows registration of an action that's executed after all other tasks have been run. + If a setup action or a task fails with or without recovery, the specified teardown action will still be executed. + + The data type. + The action to be executed. + + + Teardown((context, data) => { + context.Log.Information("Goodbye {0}!", data.Place); + }); + + + + + + Allows registration of an action that's executed before each task is run. + If the task setup fails, its task will not be executed but the task teardown will be performed. + + The action to be executed. + + + + Allows registration of an action that's executed before each task is run. + If the task setup fails, its task will not be executed but the task teardown will be performed. + + The data type. + The action to be executed. + + + + Allows registration of an action that's executed after each task has been run. + If a task setup action or a task fails with or without recovery, the specified task teardown action will still be executed. + + The action to be executed. + + + + Allows registration of an action that's executed after each task has been run. + If a task setup action or a task fails with or without recovery, the specified task teardown action will still be executed. + + The data type. + The action to be executed. + + + + Runs the specified target. + + The target to run. + The resulting report. + + + + Runs the specified target. + + The target to run. + The resulting report. + + + + Implementation of a script processor. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The log. + The tool locator. + The available package installers. + + + + Installs the addins. + + The addins to install. + The install path. + A list containing file paths to installed addin assemblies. + + + + Installs the tools. + + The tools to install. + The install path. + + + + Installs the modules. + + The modules to install. + The install path. + + + + Responsible for running scripts. + + + + + Initializes a new instance of the class. + + The environment. + The log. + The configuration. + The session factory. + The alias finder. + The script analyzer. + The script processor. + The script conventions. + The assembly loader. + + + + Runs the script using the specified script host. + + The script host. + The script. + The arguments. + + + + This namespace contain types + related to text processing and transformations. + + + + + Represents a text template. + + + + + Registers a key and an associated value. + + The key. + The value. + + + + Renders the text template using the registered tokens. + + The rendered template. + + + + Utility that that respect quotes when splitting a string. + + + + + Splits the provided string on spaces while respecting quoted strings. + + The string to split. + The split, individual parts. + + + + Provides template functionality for simple text transformations. + + + + + Initializes a new instance of the class. + + The template. + + + + Initializes a new instance of the class. + + The template. + The key placeholder. + + + + Registers a key and an associated value. + + The key. + The value. + + + + Renders the template using the registered tokens. + + The rendered template. + + + + This namespace contain base classes + and functionality related to tooling. + + + + + Represents a tool locator. + + + + + Registers the specified tool file path. + + The tool path. + + + + Resolves the path to the specified tool. + + The tool. + A path if the tool was found; otherwise null. + + + + Represents a tool repository. + + + + + Registers the specified path with the repository. + + The path to register. + + + + Resolves the specified tool. + + The tool to resolve. + The tool's file paths if any; otherwise null. + + + + Represents a tool resolution strategy. + + + + + Resolves the specified tool using the specified tool repository. + + The tool repository. + The tool. + The path to the tool; otherwise null. + + + + Base class for tools. + + The settings type. + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The globber. + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The tool locator. + + + + Runs the tool using the specified settings. + + The settings. + The arguments. + + + + Runs the tool using a custom tool path and the specified settings. + + The settings. + The arguments. + The process settings + If specified called after process exit + + + + Customized exit code handling. + Standard behavior is to fail when non zero. + + The process exit code + + + + Runs the tool using a custom tool path and the specified settings. + + The settings. + The arguments. + The process that the tool is running under. + + + + Runs the tool using a custom tool path and the specified settings. + + The settings. + The arguments. + The process settings + The process that the tool is running under. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Gets the working directory. + Defaults to the currently set working directory. + + The settings. + The working directory for the tool. + + + + Gets alternative file paths which the tool may exist in + + The settings. + The default tool path. + + + + Gets the environment variables. + + The settings. + The environment variables for the tool. + + + + Gets the resolved tool path. + + The settings. + The resolved tool path. + + + + Implementation of the tool locator. + + + + + Initializes a new instance of the class. + + The environment. + The tool repository. + The tool resolution strategy. + + + + Registers the specified tool file path. + + The tool path. + + + + Resolves the path to the specified tool. + + The tool. + A path if the tool was found; otherwise null. + + + + The tool repository. + + + + + Initializes a new instance of the class. + + The environment. + + + + Registers the specified path with the repository. + + The path to register. + + + + Resolves the specified tool. + + The tool to resolve. + + The tool's file paths if any; otherwise null. + + + + + Implementation of the default tool resolution strategy. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The globber. + The configuration. + + + + Resolves the specified tool using the specified tool repository. + + The tool repository. + The tool. + + The path to the tool; otherwise null. + + + + + Base class for tool settings. + + + + + Gets or sets the tool path. + + The tool path. + + + + Gets or sets optional timeout for tool execution. + + + + + Gets or sets the working directory for the tool process. + + The working directory for the tool process. + + + + Gets or sets a value indicating whether or not to opt out of using + an explicit working directory for the process. + + + + + Gets or sets the argument customization. + Argument customization is a way that lets you add, replace or reuse arguments passed to a tool. + This allows you to support new tool arguments, customize arguments or address potential argument issues. + + + Combining tool specific settings and tool arguments: + + NuGetAddSource("Cake", "https://www.myget.org/F/cake/api/v3/index.json", + new NuGetSourcesSettings { UserName = "user", Password = "incorrect", + ArgumentCustomization = args=>args.Append("-StorePasswordInClearText") + }); + + + + Setting multiple tool arguments: + + MSTest(pathPattern, new MSTestSettings() + { ArgumentCustomization = args=>args.Append("/detail:errormessage") + .Append("/resultsfile:TestResults.trx") }); + + + The delegate used to customize the . + + + + Gets or sets search paths for files, directories for temporary files, application-specific options, and other similar information. + + + + MSBuild("./src/Cake.sln", new MSBuildSettings { + EnvironmentVariables = new Dictionary<string, string>{ + { "TOOLSPATH", MakeAbsolute(Directory("./tools")).FullPath } + }}); + + + + + + This namespace contain base classes + and functionality related to tooling. + The content in this namespace has been obsoleted. + + + + + Base class for tools. + + The settings type. + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The globber. + + + + Runs the tool using the specified settings. + + The settings. + The arguments. + + + + Runs the tool using a custom tool path and the specified settings. + + The settings. + The arguments. + The tool path to use. + + + + Runs the tool using a custom tool path and the specified settings. + + The settings. + The arguments. + The tool path to use. + The process settings + If specified called after process exit + + + + Runs the tool using a custom tool path and the specified settings. + + The settings. + The arguments. + The process that the tool is running under. + + + + Runs the tool using a custom tool path and the specified settings. + + The settings. + The arguments. + The tool path to use. + The process that the tool is running under. + + + + Runs the tool using a custom tool path and the specified settings. + + The settings. + The arguments. + The tool path to use. + The process settings + The process that the tool is running under. + + + + Gets the tool path. + + The settings. + The provided tool path (if any). + The tool path. + + + + Gets the name of the tool. + + The name of the tool. + + + + Gets the possible names of the tool executable. + + The tool executable name. + + + + Gets the working directory. + Defaults to the currently set working directory. + + The settings. + The working directory for the tool. + + + + Gets alternative file paths which the tool may exist in + + The settings. + The default tool path. + + + + Represents an assembly loader. + + + + + Loads an assembly from its assembly name. + + The assembly name. + The loaded assembly. + + + + Loads an assembly from the specified path. + + The assembly path to load. + If the assembly should be verified whether or not it will work properly with Cake or not. + The loaded assembly. + + + + Represents an assembly verifier. + + + + + Verifies an assembly. + + The target assembly. + + + + Acts as a context providing info about the overall build following its completion + + + + + Gets target / initating task. + + + + + Gets all registered tasks that are going to be executed. + + + + + Initializes a new instance of the class. + + The Cake context. + The target / initating task. + The tasks to execute. + + + + Event data for the event. + + + + + Gets the Cake context. + + + + + Initializes a new instance of the class. + + The context. + + + + Acts as a context providing info about a before its invocation. + + + + + Initializes a new instance of the class. + + The Cake Context. + The task. + + + + Gets the describing the that has just been invoked. + + + The task. + + + + + Event data for the event. + + + + + Gets the task setup context. + + + + + Initializes a new instance of the class. + + The task setup context. + + + + Acts as a context providing info about a following its invocation. + + + + + Initializes a new instance of the class. + + The Cake Context. + The task. + The duration of the task. + if set to true, the task was not executed. + + + + Gets the describing the that has just been invoked. + + + The task. + + + + + Gets the duration of the 's execution. + + + The duration of the 's execution. + + + + + Gets a value indicating whether the was skipped (not executed). + + + true if skipped; otherwise, false. + + + + + Event data for the event. + + + + + Gets the task teardown context. + + + + + Initializes a new instance of the class. + + The task teardown context. + + + + Acts as a context providing info about the overall build following its completion + + + + + Gets a value indicating whether this build was successful + + + true if successful; otherwise false. + + + + + Gets the exception that was thrown by the target. + + + + + Initializes a new instance of the class. + + The Cake context. + The exception that was thrown by the target. + + + + Event data for the event. + + + + + Gets the teardown context. + + + + + Initializes a new instance of the class. + + The teardown context. + + + diff --git a/integration-test/tools/Cake/Cake.NuGet.xml b/integration-test/tools/Cake/Cake.NuGet.xml new file mode 100644 index 0000000..ada36ef --- /dev/null +++ b/integration-test/tools/Cake/Cake.NuGet.xml @@ -0,0 +1,114 @@ + + + + Cake.NuGet + + + + + The config key name for overriding the default nuget package source + + + + + The config key name for using the in process client for installing packages + + + + + The config key name for enabling loading of nuget package dependencies + + + + + The config key name for overriding the default nuget config file + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The content resolver. + The log. + the configuration + + + + Represents a file locator for NuGet packages that returns relevant + files for the current framework given the resource type. + + + + + Gets the relevant files for a NuGet package + given a path and a resource type. + + The path to search. + The package. + The resource type. + A collection of files. + + + + Represents a NuGet package installer. + + + + + The module responsible for registering + default types in the Cake.NuGet assembly. + + + + + Initializes a new instance of the class. + + The config. + + + + Performs custom registrations in the provided registrar. + + The container registrar. + + + + Installer for NuGet URI resources. + + + + + Initializes a new instance of the class. + + The file system. + The environment. + The process runner. + The NuGet tool resolver. + The content resolver. + The log. + The configuration. + + + + Determines whether this instance can install the specified resource. + + The package reference. + The package type. + + true if this installer can install the + specified resource; otherwise false. + + + + + Installs the specified resource at the given location. + + The package reference. + The package type. + The location where to install the package. + The installed files. + + + diff --git a/integration-test/tools/Cake/Cake.exe.config b/integration-test/tools/Cake/Cake.exe.config new file mode 100644 index 0000000..1933eec --- /dev/null +++ b/integration-test/tools/Cake/Cake.exe.config @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/integration-test/tools/Cake/Cake.xml b/integration-test/tools/Cake/Cake.xml new file mode 100644 index 0000000..c27e450 --- /dev/null +++ b/integration-test/tools/Cake/Cake.xml @@ -0,0 +1,356 @@ + + + + Cake + + + + + Represents an argument parser. + + + + + Parses the specified arguments. + + The arguments to parse. + A instance representing the arguments. + + + + Responsible for parsing . + + + + + Initializes a new instance of the class. + + The log. + + + + Parses the provided string to a . + + The string to parse. + The verbosity. + true if parsing succeeded; otherwise false. + + + + The Cake application. + + + + + Initializes a new instance of the class. + + The command factory. + + + + Runs the application with the specified arguments. + + The options. + The application exit code. + + + + Gets the arguments. + + The arguments. + + + + Initializes a new instance of the class. + + The options. + + + + Determines whether or not the specified argument exist. + + The argument name. + + true if the argument exist; otherwise false. + + + + + Gets an argument. + + The argument name. + The argument value. + + + + The options that determines how the application should behave. + + + + + Gets or sets the output verbosity. + + The output verbosity. + + + + Gets or sets the build script. + + The build script. + + + + Gets the script arguments. + + The script arguments. + + + + Gets or sets a value indicating whether to show task descriptions. + + + true to show task description; otherwise, false. + + + + + Gets or sets a value indicating whether to perform a dry run. + + + true if a dry run should be performed; otherwise, false. + + + + + Gets or sets a value indicating whether to debug script. + + + true if a debug session should be started; otherwise, false. + + + + + Gets or sets a value indicating whether to show help. + + + true to show help; otherwise, false. + + + + + Gets or sets a value indicating whether to show version information. + + + true to show version information; otherwise, false. + + + + + Gets or sets a value indicating whether an error occurred during parsing. + + + true if an error occurred during parsing; otherwise, false. + + + + + Gets or sets a value indicating whether to bootstrap Cake modules. + + + + + Gets or sets a value indicating whether or not to use the target exclusively. + + + + + Initializes a new instance of the class. + + + + + A command that builds and runs a build script. + + + + + A command that builds and debugs a build script. + + + + + A command that displays information about script tasks. + + + + + A command that dry runs a build script. + + + + + A command that decorates another command but always return failure. + + + + + A command that displays help information. + + + + + Represents an executable command. + + + + + Executes the command with the specified options. + + The options. + true if the command exited successfully; otherwise, false. + + + + Represents a command factory. + + + + + Creates the bootstrap command. + + The bootstrap command. + + + + Creates the build command. + + The build command. + + + + Creates the debug command. + + The debug command. + + + + Creates the description command. + + The description command. + + + + Creates the dry run command. + + The dry run command. + + + + Creates the help command. + + The help command. + + + + Creates the version command. + + The version command. + + + + A command that shows version information. + + + + + Represents a debugger + + + + + Gets the current process id + + The current process id + + + + Wait for the debugger to attach + + A TimeSpan that represents the number of milliseconds to wait, + or a TimeSpan that represents -1 milliseconds to wait indefinitely. + true if the debugger is attached within the timeout; otherwise, false. + + + + The Cake program. + + + + + The application entry point. + + The application exit code. + + + + The script host used to execute Cake scripts. + + + + + Initializes a new instance of the class. + + The engine. + The context. + The report printer. + The log. + + + + Runs the specified target. + + The target to run. + The resulting report. + + + + The script host used for showing task descriptions. + + + + + Initializes a new instance of the class. + + The engine. + The context. + The console. + + + + Runs the specified target. + + The target to run. + The resulting report. + + + + The script host used to dry run Cake scripts. + + + + + Initializes a new instance of the class. + + The engine. + The context. + The log. + + + + Runs the specified target. + + The target to run. + The resulting report. + + + diff --git a/integration-test/tools/Cake/LICENSE b/integration-test/tools/Cake/LICENSE new file mode 100644 index 0000000..403462a --- /dev/null +++ b/integration-test/tools/Cake/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright (c) .NET Foundation and Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/integration-test/tools/packages.config b/integration-test/tools/packages.config new file mode 100644 index 0000000..0501888 --- /dev/null +++ b/integration-test/tools/packages.config @@ -0,0 +1,4 @@ + + + + diff --git a/integration-test/tools/packages.config.md5sum b/integration-test/tools/packages.config.md5sum new file mode 100644 index 0000000..44cd26d --- /dev/null +++ b/integration-test/tools/packages.config.md5sum @@ -0,0 +1 @@ +93-EC-52-0D-C7-2C-94-A3-4C-22-A0-B5-7C-21-FB-1D diff --git a/nuspec/nuget/Cake.ResourceHacker.nuspec b/nuspec/nuget/Cake.ResourceHacker.nuspec new file mode 100644 index 0000000..e2e6f9a --- /dev/null +++ b/nuspec/nuget/Cake.ResourceHacker.nuspec @@ -0,0 +1,21 @@ + + + + Cake.ResourceHacker + 1.0.0 + Miha Markic, Cake Contributors + Miha Markic, Cake Contributors + false + https://raw.githubusercontent.com/cake-contrib/Cake.ResourceHacker/master/LICENSE + https://github.com/cake-contrib/Cake.ResourceHacker + https://cdn.rawgit.com/cake-contrib/graphics/a5cf0f881c390650144b2243ae551d5b9f836196/png/cake-contrib-medium.png + ResourceHacker Addin for Cake Build. + Copyright 2018 (c) Miha Markic and contributors + Cake Script ResourceHacker + + + + + + + diff --git a/setup.cake b/setup.cake new file mode 100644 index 0000000..7cfecc5 --- /dev/null +++ b/setup.cake @@ -0,0 +1,25 @@ +#load nuget:https://www.myget.org/F/cake-contrib/api/v2?package=Cake.Recipe&prerelease + +Environment.SetVariableNames(); + +BuildParameters.SetParameters( + context: Context, + buildSystem: BuildSystem, + sourceDirectoryPath: "./src", + title: "Cake.ResourceHacker", + repositoryOwner: "cake-contrib", + repositoryName: "Cake.ResourceHacker", + appVeyorAccountName: "cakecontrib", + shouldRunDupFinder: false, + shouldRunInspectCode: false, + shouldRunCodecov: false); + +BuildParameters.PrintParameters(Context); + +ToolSettings.SetToolSettings( + context: Context, + dupFinderExcludePattern: new string[] { BuildParameters.RootDirectoryPath + "/src/Cake.ResourceHacker.Tests/*.cs" }, + testCoverageFilter: "+[*]* -[nunit.*]* -[Cake.Core]* -[Cake.Testing]* -[*.Tests]* ", + testCoverageExcludeByAttribute: "*.ExcludeFromCodeCoverage*", + testCoverageExcludeByFile: "*/*Designer.cs;*/*.g.cs;*/*.g.i.cs"); +Build.RunDotNetCore(); diff --git a/src/Cake.ResourceHacker.Tests/Cake.ResourceHacker.Tests.csproj b/src/Cake.ResourceHacker.Tests/Cake.ResourceHacker.Tests.csproj new file mode 100644 index 0000000..dd101e5 --- /dev/null +++ b/src/Cake.ResourceHacker.Tests/Cake.ResourceHacker.Tests.csproj @@ -0,0 +1,28 @@ + + + + netcoreapp2.0 + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Cake.ResourceHacker.Tests/ResourceHackerFixture.cs b/src/Cake.ResourceHacker.Tests/ResourceHackerFixture.cs new file mode 100644 index 0000000..94bf236 --- /dev/null +++ b/src/Cake.ResourceHacker.Tests/ResourceHackerFixture.cs @@ -0,0 +1,42 @@ +using Cake.Core; +using Cake.Core.Diagnostics; +using Cake.Core.IO; +using Cake.Core.Tooling; +using Cake.Testing.Fixtures; +using NSubstitute; +using System; + +namespace Cake.ResourceHacker.Tests.Apps.Create +{ + public class ResourceHackerFixture : ToolFixture, ICakeContext + { + public const string Root = "C:/Temp"; + public string Path { get; set; } + IFileSystem fileSystem; + ICakeEnvironment environment; + IFileSystem ICakeContext.FileSystem => fileSystem; + ICakeEnvironment ICakeContext.Environment => environment; + public ICakeLog Log => Log; + ICakeArguments ICakeContext.Arguments => throw new NotImplementedException(); + IProcessRunner ICakeContext.ProcessRunner => ProcessRunner; + public IRegistry Registry => Registry; + public ICakeDataResolver Data => throw new NotImplementedException(); + public ResourceHackerFixture(): base("ResourceHacker") + { + Tools = Substitute.For(); + fileSystem = Substitute.For(); + environment = Substitute.For(); + var toolPath = new FilePath("ResourceHacker"); + var file = Substitute.For(); + file.Exists.Returns(true); + fileSystem.GetFile(toolPath).Returns(file); + environment.WorkingDirectory.Returns(Root); + Tools.Resolve("ResourceHacker").Returns(toolPath); + ProcessRunner.Process.SetStandardOutput(new string[] { }); + } + protected override void RunTool() + { + this.ResourceHackerAdd(Settings); + } + } +} diff --git a/src/Cake.ResourceHacker.Tests/ResourceHackerTest.cs b/src/Cake.ResourceHacker.Tests/ResourceHackerTest.cs new file mode 100644 index 0000000..8e147e3 --- /dev/null +++ b/src/Cake.ResourceHacker.Tests/ResourceHackerTest.cs @@ -0,0 +1,39 @@ +using Cake.Core.IO; +using Cake.ResourceHacker.Tests.Apps.Create; +using NUnit.Framework; + +namespace Cake.ResourceHacker.Tests +{ + [TestFixture] + public class ResourceHacker + { + [TestFixture] + public class ResourceHackerAdd: ResourceHacker + { + [Test] + public void WhenSettingsAreEmpty_OnlyCommandIsUsed() + { + var fixture = new ResourceHackerFixture + { + Settings = new ResourceHackerSettings() + }; + + var actual = fixture.Run(); + Assert.That(actual.Args, Is.EqualTo("-add")); + } + [Test] + public void WhenOpenIsSet_CommandAndOpenIsUsed() + { + var fixture = new ResourceHackerFixture + { + Settings = new ResourceHackerSettings { Open = "somewhere.exe" } + }; + + var actual = fixture.Run(); + Assert.That(actual.Args, Is.EqualTo($"-add -open \"{GetAbsolutePath(fixture.Settings.Open)}\"").IgnoreCase); + } + } + + static string GetAbsolutePath(FilePath file) => $"{ResourceHackerFixture.Root}/{file.FullPath}"; + } +} diff --git a/src/Cake.ResourceHacker.sln b/src/Cake.ResourceHacker.sln new file mode 100644 index 0000000..75b8622 --- /dev/null +++ b/src/Cake.ResourceHacker.sln @@ -0,0 +1,40 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.26730.16 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cake.ResourceHacker", "Cake.ResourceHacker\Cake.ResourceHacker.csproj", "{FD486426-7B7F-4A53-9930-AE077C7D5106}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cake.ResourceHacker.Tests", "Cake.ResourceHacker.Tests\Cake.ResourceHacker.Tests.csproj", "{77411B61-1819-48DD-B527-C6ADA303EDF2}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{3509B976-7BAF-4918-949C-41F194C5E424}" + ProjectSection(SolutionItems) = preProject + ..\.appveyor.yml = ..\.appveyor.yml + ..\nuspec\nuget\Cake.ResourceHacker.nuspec = ..\nuspec\nuget\Cake.ResourceHacker.nuspec + ..\LICENSE = ..\LICENSE + ..\README.md = ..\README.md + ..\setup.cake = ..\setup.cake + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {FD486426-7B7F-4A53-9930-AE077C7D5106}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FD486426-7B7F-4A53-9930-AE077C7D5106}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FD486426-7B7F-4A53-9930-AE077C7D5106}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FD486426-7B7F-4A53-9930-AE077C7D5106}.Release|Any CPU.Build.0 = Release|Any CPU + {77411B61-1819-48DD-B527-C6ADA303EDF2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {77411B61-1819-48DD-B527-C6ADA303EDF2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {77411B61-1819-48DD-B527-C6ADA303EDF2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {77411B61-1819-48DD-B527-C6ADA303EDF2}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {A93D86A1-3D96-429E-8422-AB94C1003A04} + EndGlobalSection +EndGlobal diff --git a/src/Cake.ResourceHacker.v3.ncrunchsolution b/src/Cake.ResourceHacker.v3.ncrunchsolution new file mode 100644 index 0000000..10420ac --- /dev/null +++ b/src/Cake.ResourceHacker.v3.ncrunchsolution @@ -0,0 +1,6 @@ + + + True + True + + \ No newline at end of file diff --git a/src/Cake.ResourceHacker/ArgumentsBuilderExtension.cs b/src/Cake.ResourceHacker/ArgumentsBuilderExtension.cs new file mode 100644 index 0000000..16a53a7 --- /dev/null +++ b/src/Cake.ResourceHacker/ArgumentsBuilderExtension.cs @@ -0,0 +1,65 @@ +using Cake.Core.IO; +using System; +using Cake.Core; + +namespace Cake.ResourceHacker +{ + /// + /// Arguments builder + /// + public static class ArgumentsBuilderExtension + { + /// + /// Appends all arguments from and . + /// + /// + /// + /// The settings. + /// + public static void AppendAll(this ProcessArgumentBuilder builder, ICakeEnvironment cakeEnvironment, string command, ResourceHackerSettings settings) + { + if (builder == null) + { + throw new ArgumentNullException("builder"); + } + if (string.IsNullOrEmpty(command)) + { + throw new ArgumentNullException("command"); + } + if (settings == null) + { + settings = new ResourceHackerSettings(); + } + builder.Append($"-{command}"); + AppendArguments(builder, cakeEnvironment, settings); + } + /// + /// Appends pre or post command arguments. + /// + /// + /// + /// + /// + public static void AppendArguments(ProcessArgumentBuilder builder, ICakeEnvironment cakeEnvironment, ResourceHackerSettings settings) + { + AppendFilePathIfNotNull(builder, cakeEnvironment, "open", settings.Open); + AppendFilePathIfNotNull(builder, cakeEnvironment, "save", settings.Save); + AppendFilePathIfNotNull(builder, cakeEnvironment, "log", settings.Log); + AppendFilePathIfNotNull(builder, cakeEnvironment, "resource", settings.Resource); + AppendFilePathIfNotNull(builder, cakeEnvironment, "script", settings.Script); + if (settings.Mask.HasValue) + { + var mask = settings.Mask.Value; + builder.Append($"-mask {mask.Type},{mask.Name},{mask.Language}"); + } + } + + static void AppendFilePathIfNotNull(ProcessArgumentBuilder builder, ICakeEnvironment cakeEnvironment, string name, FilePath path) + { + if (path != null) + { + builder.Append($"-{name} \"{path.MakeAbsolute(cakeEnvironment)}\""); + } + } + } +} diff --git a/src/Cake.ResourceHacker/Cake.ResourceHacker.csproj b/src/Cake.ResourceHacker/Cake.ResourceHacker.csproj new file mode 100644 index 0000000..d371a7c --- /dev/null +++ b/src/Cake.ResourceHacker/Cake.ResourceHacker.csproj @@ -0,0 +1,16 @@ + + + + netstandard2.0 + latest + + + + bin\Release\netstandard2.0\Cake.AppCenter.xml + + + + + + + diff --git a/src/Cake.ResourceHacker/Mask.cs b/src/Cake.ResourceHacker/Mask.cs new file mode 100644 index 0000000..54aca36 --- /dev/null +++ b/src/Cake.ResourceHacker/Mask.cs @@ -0,0 +1,9 @@ +namespace Cake.ResourceHacker +{ + public struct Mask + { + public string Type { get; set; } + public string Name { get; set; } + public string Language { get; set; } + } +} diff --git a/src/Cake.ResourceHacker/MaskName.cs b/src/Cake.ResourceHacker/MaskName.cs new file mode 100644 index 0000000..c9c749a --- /dev/null +++ b/src/Cake.ResourceHacker/MaskName.cs @@ -0,0 +1,13 @@ +namespace Cake.ResourceHacker +{ + /// + /// Defines well known mask names. + /// + public static class MaskName + { + /// + /// Main icon + /// + public const string MainIcon = "MAINICON"; + } +} diff --git a/src/Cake.ResourceHacker/MaskType.cs b/src/Cake.ResourceHacker/MaskType.cs new file mode 100644 index 0000000..c283702 --- /dev/null +++ b/src/Cake.ResourceHacker/MaskType.cs @@ -0,0 +1,17 @@ +namespace Cake.ResourceHacker +{ + /// + /// Defines well known mask types. + /// + public static class MaskType + { + /// + /// Icon group + /// + public const string IconGroup = "ICONGROUP"; + /// + /// Dialog + /// + public const string Dialog = "DIALOG"; + } +} diff --git a/src/Cake.ResourceHacker/NamespaceDoc.cs b/src/Cake.ResourceHacker/NamespaceDoc.cs new file mode 100644 index 0000000..564a764 --- /dev/null +++ b/src/Cake.ResourceHacker/NamespaceDoc.cs @@ -0,0 +1,12 @@ +using System.Runtime.CompilerServices; + +namespace Cake.ResourceHacker +{ + /// + /// This namespace contains Resource Hacker operations. + /// + [CompilerGenerated] + internal class NamespaceDoc + { + } +} diff --git a/src/Cake.ResourceHacker/ResourceHackerAliases.cs b/src/Cake.ResourceHacker/ResourceHackerAliases.cs new file mode 100644 index 0000000..193c76d --- /dev/null +++ b/src/Cake.ResourceHacker/ResourceHackerAliases.cs @@ -0,0 +1,108 @@ +using Cake.Core; +using Cake.Core.Annotations; +using System; + +namespace Cake.ResourceHacker +{ + /// + /// Contains functionality for working with Resource Hacker commands. + /// + [CakeAliasCategory("File Manipulation")] + public static partial class ResourceHackerAliases + { + /// + /// Add command + /// + /// The context. + /// The settings. + [CakeMethodAlias] + public static void ResourceHackerAdd(this ICakeContext context, ResourceHackerSettings settings) + { + InvokeCommand(context, "add", settings); + } + /// + /// AddOverwrite command + /// + /// The context. + /// The settings. + [CakeMethodAlias] + public static void ResourceHackerAddOverwrite(this ICakeContext context, ResourceHackerSettings settings) + { + InvokeCommand(context, "addoverwrite", settings); + } + /// + /// AddSkip command + /// + /// The context. + /// The settings. + [CakeMethodAlias] + public static void ResourceHackerAddSkip(this ICakeContext context, ResourceHackerSettings settings) + { + InvokeCommand(context, "addskip", settings); + } + /// + /// Compile command + /// + /// The context. + /// The settings. + [CakeMethodAlias] + public static void ResourceHackerCompile(this ICakeContext context, ResourceHackerSettings settings) + { + InvokeCommand(context, "compile", settings); + } + /// + /// Delete command + /// + /// The context. + /// The settings. + [CakeMethodAlias] + public static void ResourceHackerDelete(this ICakeContext context, ResourceHackerSettings settings) + { + InvokeCommand(context, "delete", settings); + } + /// + /// Extract command + /// + /// The context. + /// The settings. + [CakeMethodAlias] + public static void ResourceHackerExtract(this ICakeContext context, ResourceHackerSettings settings) + { + InvokeCommand(context, "extract", settings); + } + /// + /// Modify command + /// + /// The context. + /// The settings. + [CakeMethodAlias] + public static void ResourceHackerModify(this ICakeContext context, ResourceHackerSettings settings) + { + InvokeCommand(context, "modify", settings); + } + /// + /// ChangeLanguage command + /// + /// The context. + /// LangId argument. + /// The settings. + [CakeMethodAlias] + public static void ResourceHackerChangeLanguage(this ICakeContext context, string languageId, ResourceHackerSettings settings) + { + if (string.IsNullOrEmpty(languageId)) + { + throw new ArgumentNullException(nameof(languageId)); + } + InvokeCommand(context, $"changelanguage({languageId})", settings); + } + static void InvokeCommand(ICakeContext context, string command, ResourceHackerSettings settings) + { + if (context == null) + { + throw new ArgumentNullException(nameof(context)); + } + var runner = new ResourceHackerTool(context.FileSystem, context.Environment, context.ProcessRunner, context.Tools); + runner.Run(command, settings); + } + } +} diff --git a/src/Cake.ResourceHacker/ResourceHackerResolver.cs b/src/Cake.ResourceHacker/ResourceHackerResolver.cs new file mode 100644 index 0000000..ebb50ad --- /dev/null +++ b/src/Cake.ResourceHacker/ResourceHackerResolver.cs @@ -0,0 +1,36 @@ +using Cake.Core; +using Cake.Core.IO; +using System; + +namespace Cake.ResourceHacker +{ + /// + /// ResourceHacker tool resolver. + /// + public class ResourceHackerResolver + { + /// + /// Returns the path of the ResourceHacker.exe. + /// + /// + /// + /// The path of the latest ResourceHacker.exe + /// Throws if ResourceHacker isn't found. + public static FilePath GetResourceHackerPath(IFileSystem fileSystem, ICakeEnvironment environment) + { + if (fileSystem == null) + { + throw new ArgumentNullException(nameof(fileSystem)); + } + if (environment == null) + { + throw new ArgumentNullException(nameof(environment)); + } + var exe = new DirectoryPath(Environment.GetEnvironmentVariable("ProgramFiles(x86)")) + .Combine("Resource Hacker") + .CombineWithFilePath("ResourceHacker.exe"); + Console.WriteLine($"program files: {exe}"); + return exe; + } + } +} diff --git a/src/Cake.ResourceHacker/ResourceHackerSettings.cs b/src/Cake.ResourceHacker/ResourceHackerSettings.cs new file mode 100644 index 0000000..728b30f --- /dev/null +++ b/src/Cake.ResourceHacker/ResourceHackerSettings.cs @@ -0,0 +1,40 @@ +using Cake.Core.IO; +using Cake.Core.Tooling; + +namespace Cake.ResourceHacker +{ + /// + /// Resource hacker settings. + /// + public class ResourceHackerSettings : ToolSettings + { + /// + /// filename - the name of the file that is to be modified. It should be a Windows PE file (*.exe, *.dll etc) or a compiled or uncompiled resouce file (*.res or *.rc) + /// + public FilePath Open { get; set; } + /// + /// usually a filename for the new or modified file, but can also be a folder when extracting multiple resources + /// + public FilePath Save { get; set; } + /// + /// Filename or CONSOLE or NUL + /// CONSOLE can be abbreviated to CON + /// Logs the details of the operation performed + /// If this switch is omitted, the log will be written to resourcehacker.log + /// + public FilePath Log { get; set; } + /// + /// filename - contains a resource being added to the opened file. + /// + public FilePath Resource { get; set; } + /// + /// filename - contains a multi-command script, NOT a resource script for more info: -help script + /// + public FilePath Script { get; set; } + /// + /// resource mask - Type,Name,Language + /// commas are mandatory but each of Type, Name & Language are optional + /// + public Mask? Mask { get; set; } + } +} diff --git a/src/Cake.ResourceHacker/ResourceHackerTool.cs b/src/Cake.ResourceHacker/ResourceHackerTool.cs new file mode 100644 index 0000000..b71749f --- /dev/null +++ b/src/Cake.ResourceHacker/ResourceHackerTool.cs @@ -0,0 +1,91 @@ +using Cake.Core; +using Cake.Core.IO; +using Cake.Core.Tooling; +using System; +using System.Collections.Generic; + +namespace Cake.ResourceHacker +{ + /// + /// Resource Hacker tool. + /// + /// The settings type. + public class ResourceHackerTool : Tool + { + readonly ICakeEnvironment environment; + readonly IFileSystem fileSystem; + + /// + /// Initializes a new instance of the class. + /// + /// The file system. + /// The environment. + /// The process runner. + /// The tools. + public ResourceHackerTool( + IFileSystem fileSystem, + ICakeEnvironment environment, + IProcessRunner processRunner, + IToolLocator tools) + : base(fileSystem, environment, processRunner, tools) + { + this.fileSystem = fileSystem; + this.environment = environment; + } + + /// + /// Runs given using given . + /// + /// The command. + /// The settings. + /// Additional arguments. + public void Run(string command, ResourceHackerSettings settings) + { + if (string.IsNullOrEmpty(command)) + { + throw new ArgumentNullException(nameof(command)); + } + Run(settings, GetArguments(command, settings ?? new ResourceHackerSettings())); + } + ProcessArgumentBuilder GetArguments(string command, ResourceHackerSettings settings) + { + var builder = new ProcessArgumentBuilder(); + builder.AppendAll(environment, command, settings); + return builder; + } + /// + /// Gets the name of the tool. + /// + /// The name of the tool. + protected override string GetToolName() + { + return "Resource Hacker"; + } + + /// + /// Gets the possible names of the tool executable. + /// + /// The tool executable name. + protected override IEnumerable GetToolExecutableNames() + { + return new[] { "ResourceHacker.exe", "ResourceHacker" }; + } + /// + /// Finds the proper Resource Hacker executable path. + /// + /// The settings. + /// A single path to Resource Hacker executable. + protected override IEnumerable GetAlternativeToolPaths(ResourceHackerSettings settings) + { + var path = ResourceHackerResolver.GetResourceHackerPath(fileSystem, environment); + if (path != null) + { + return new FilePath[] { path }; + } + else + { + return new FilePath[0]; + } + } + } +} diff --git a/tools/packages.config b/tools/packages.config new file mode 100644 index 0000000..0501888 --- /dev/null +++ b/tools/packages.config @@ -0,0 +1,4 @@ + + + + diff --git a/tools/packages.config.md5sum b/tools/packages.config.md5sum new file mode 100644 index 0000000..15e5555 --- /dev/null +++ b/tools/packages.config.md5sum @@ -0,0 +1 @@ +5D-BB-5A-76-3E-F2-AB-5B-8D-82-8D-E9-9B-17-48-A9