<commit_before># Changelog

## v2.7.0 - December 11, 2021

Features:

- Add support for 64-bit Visual Studio versions (e.g. VS 2022)

## v2.6.5 - October 29, 2020

Fixes:

- Fix wrong variable name so that the `AutoLaunchBuildErrorsLogOnFailure` parameter is obeyed properly.<commit_msg>Backfill the changelog iwth older release versions<commit_after># Changelog

## v2.7.0 - December 11, 2021

Features:

- Add support for 64-bit Visual Studio versions (e.g. VS 2022).

## v2.6.5 - October 29, 2020

Fixes:

- Fix wrong variable name so that the `AutoLaunchBuildErrorsLogOnFailure` parameter is obeyed properly.

## v2.6.4 - February 1, 2019

Fixes:

- Fix hanging indefinitely when waiting for build process to complete.

## v2.6.3 - February 1, 2019

Fixes:

- Fix not handling 32-bit switch correctly.

## v2.6.2 - July 2, 2018

Fixes:

- Use native -WhatIf parameter functionality.

## v2.6.1 - May 1, 2018

Fixes:

- Use `-LiteralPath` parameter for cmdlets to properly support file paths with symbols (e.g. square brackets in file paths).

## v2.6.0 - May 14, 2017

Features:

- Added a BypassVisualStudioDeveloperCommandPrompt parameter to allow the Visual Studio Developer Command Prompt to be bypassed, as it can sometimes take a long time to load, leading to a performance problem.
- Improved the file path validations performed on the scripts parameters.

## v2.5.1 - April 22, 2017

Fixes:

- Fix to find the "Program Files" location correctly on 32 bit windows without throwing an error.

## v2.5.0 - April 21, 2017

Features:

- Added new BuildDuration TimeSpan property to the returned hash table that shows how long the build ran for.

## v2.4.2 - April 20, 2017

Fixes:

- Fixed bug where MsBuild.exe would not be found on 32-bit Windows OSs.

## v2.4.1 - April 20, 2017

Fixes:

- Fixed "CurrentCulture is a ReadOnly property" bug on computers running .Net 4.5.2 and lower.

## v2.4.0 - April 1, 2017

Features:

- Added MsBuildFilePath and VisualStudioDeveloperCommandPromptFilePath script parameters, so users can pass in which versions they would like to use, instead of the script using the latest versions.

Fixes:

- Fixed inverted bool logic that was causing the VS Command Prompt to never be used.

## v2.3.1 - April 1, 2017

Fixes:

- Fixes to truly support VS 2017 MsBuild.

## v2.3.0 - March 20, 2017

Features:

- Added support to find and use Visual Studio 2017's MsBuild.exe.

## v2.2.0 - March 30, 2017

Features:

- Added LogVerbosityLevel parameter to adjust the verbosity MsBuild uses to write to the log file.

Fixes:

- Fixed bug that prevented us from finding msbuild.exe on some machines.

## v2.1.0 - September 20, 2016

Features:

- Added new Use32BitMsBuild parameter to allow users to force the 32-bit version of MsBuild.exe to be used instead of the 64-bit version when both are available.

## v2.0.0 - May 25, 2016

Breaking Changes from v1:

- A hash table with several properties is returned instead of a simple $true/$false/$null value.
- The `GetLogPath` switch is gone and replaced with the `WhatIf` switch.

Features:

- A build log file containing only build errors is created alongside the regular build log file.
- The errors build log file can be auto-launched on build failure.
- New switch has been added to show the build output in the calling scripts console window (does not work with some 3rd party - consoles due to Start-Process cmdlet bug).
- A hash table containing the following properties is now returned:
- BuildSucceeded = $true if the build passed, $false if the build failed, and $null if we are not sure.
- BuildLogFilePath = The path to the builds log file.
- BuildErrorsLogFilePath = The path to the builds error log file.
- ItemToBuildFilePath = The item that MsBuild is ran against.
- CommandUsedToBuild = The full command that is used to invoke MsBuild. This can be useful for inspecting what parameters are - passed to MsBuild.exe.
- Message = A message describing any problems that were encountered by Invoke-MsBuild. This is typically an empty string unless - something went wrong.
- MsBuildProcess = The process that was used to execute MsBuild.exe.

Changes to make when updating from v1 to v2:

- To capture/display the build success result, you must change `Invoke-MsBuild ...` to `(Invoke-MsBuild ...).BuildSucceeded`.
- To get the path where the log file will be created, you must change `Invoke-MsBuild ... -GetLogPath` to `(Invoke-MsBuild ... -WhatIf).BuildLogFilePath`.
{'fraction_non_alphanumeric': 0.07309417040358744, 'fraction_numerical': 0.045739910313901344, 'mean_word_length': 3.632398753894081, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 3, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3335431', 'n_tokens_mistral': 1461, 'n_tokens_neox': 1282, 'n_words': 630}