chocolatey 0.10.5

The ID prefix of this package has been reserved for one of the owners of this package by Prefix Reserved
There is a newer version of this package available.
See the version list below for details.
dotnet add package chocolatey --version 0.10.5
NuGet\Install-Package chocolatey -Version 0.10.5
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="chocolatey" Version="0.10.5" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add chocolatey --version 0.10.5
#r "nuget: chocolatey, 0.10.5"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install chocolatey as a Cake Addin
#addin nuget:?package=chocolatey&version=0.10.5

// Install chocolatey as a Cake Tool
#tool nuget:?package=chocolatey&version=0.10.5

Chocolatey is a package manager for Windows (like apt-get but for Windows). It was designed to be a decentralized framework for quickly installing applications and tools that you need. It is built on the NuGet infrastructure currently using PowerShell as its focus for delivering packages from the distros to your door, err computer.

Chocolatey is brought to you by the work and inspiration of the community, the work and thankless nights of the [Chocolatey Team](, with Rob heading up the direction.

You can host your own sources and add them to Chocolatey, you can extend Chocolatey's capabilities, and folks, it's only going to get better.

### Commands
There are quite a few commands you can call - you should check out the [command reference]( Here are the most common:

* Help - choco -? or choco command -?
* Search - choco search something
* List - choco list -lo
* Config - choco config list
* Install - choco install baretail
* Pin - choco pin windirstat
* Outdated - choco outdated
* Upgrade - choco upgrade baretail
* Uninstall - choco uninstall baretail

#### Alternative installation sources:
* Install ruby gem - choco install compass -source ruby
* Install python egg - choco install sphynx -source python
* Install windows feature - choco install IIS -source windowsfeatures
* Install webpi feature - choco install IIS7.5Express -source webpi

#### More
For more advanced commands and switches, use `choco -?` or `choco command -h`. You can also look at the [command reference](, including how you can force a package to install the x86 version of a package.

### Create Packages?
We have some great guidance on how to do that. Where? I'll give you a hint, it rhymes with socks! [Docs!](

In that mess there is a link to the [PowerShell Chocolatey module reference](

There are no supported framework assets in this package.

Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

NuGet packages (3)

Showing the top 3 NuGet packages that depend on chocolatey:

Package Downloads

Add support for using native node modules with Edge.js


Git for Windows focuses on offering a lightweight, native set of tools that bring the full feature set of the Git SCM to Windows while providing appropriate user interfaces for experienced Git users and novices alike. ## Features * **Git BASH**: Git for Windows provides a BASH emulation used to run Git from the command line. *NIX users should feel right at home, as the BASH emulation behaves just like the "git" command in LINUX and UNIX environments. * **Git GUI**: As Windows users commonly expect graphical user interfaces, Git for Windows also provides the Git GUI, a powerful alternative to Git BASH, offering a graphical version of just about every Git command line function, as well as comprehensive visual diff tools. * **Shell Integration**: Simply right-click on a folder in Windows Explorer to access the BASH or GUI. ## Package parameters - `/GitOnlyOnPath` - Puts gitinstall\cmd on path. This is also done by default if no package parameters are set. - `/GitAndUnixToolsOnPath` - Puts gitinstall\bin on path. This setting will override `/GitOnlyOnPath`. - `/NoAutoCrlf` - Ensure _'Checkout as is, commit as is'_. This setting **only affects new installs**, it will not override an existing `.gitconfig`. - `/WindowsTerminal` - Makes `vim` use the regular Windows terminal instead of MinTTY terminal. - `/NoShellIntegration` - Disables open GUI and open shell integration ( _"Git GUI Here"_ and _"Git Bash Here"_ entries in context menus). - `/NoGuiHereIntegration` - Disables open GUI shell integration ( _"Git GUI Here"_ entry in context menus). - `/NoShellHereIntegration` - Disables open git bash shell integration ( _"Git Bash Here"_ entry in context menus) - `/NoCredentialManager` - Disable _Git Credential Manager_ by adding `$Env:GCM_VALIDATE='false'` user environment variable. - `/NoGitLfs` - Disable Git LFS installation. - `/SChannel` - Configure Git to use the Windows native SSL/TLS implementation (SChannel) instead of OpenSSL. This aligns Git HTTPS behavior with other Windows applications and system components and increases manageability in enterprise environments. Example: `choco install git.install --params "/GitAndUnixToolsOnPath /NoGitLfs /SChannel /NoAutoCrlf"` ## Notes - The package uses default install options minus cheetah integration and desktop icons. Cheetah prevents a good upgrade scenario, so it has been removed.


Custom log4net Appender to send logs to Logdna

GitHub repositories (2)

Showing the top 2 popular GitHub repositories that depend on chocolatey:

Repository Stars
ReportGenerator converts coverage reports generated by coverlet, OpenCover, dotCover, Visual Studio, NCover, Cobertura, JaCoCo, Clover, gcov or lcov into human readable reports in various formats.
Windows tail program and log file analyzer.
Version Downloads Last updated
2.3.0 340 6/5/2024
2.2.2 12,801 8/8/2023
2.2.0 6,417 7/26/2023
2.1.0 7,026 6/29/2023
2.1.0-alpha-20230614 5,642 6/14/2023
2.1.0-alpha-20230608 6,278 6/8/2023
2.0.0 6,913 5/31/2023
2.0.0-beta-20230426 6,202 4/26/2023
2.0.0-beta-20230412 5,908 4/12/2023
2.0.0-beta-20230321 6,515 3/21/2023
2.0.0-alpha-20230307 6,138 3/7/2023
2.0.0-alpha-20230221 5,984 2/21/2023
2.0.0-alpha-20230124 5,835 1/24/2023
1.4.0 17,161 5/10/2023
1.3.1 255,768 3/14/2023
1.3.0 7,676 2/15/2023
1.2.1 15,961 12/6/2022
1.2.0 8,065 10/20/2022
1.1.0 21,437 3/30/2022
1.0.1 7,019 3/24/2022
1.0.0 6,483 3/21/2022
0.12.1 11,043 1/25/2022
0.12.0 6,109 1/18/2022
0.11.3 9,457 10/27/2021
0.11.2 6,326 9/23/2021
0.11.1 6,794 9/9/2021
0.10.15 6,795 9/9/2021
0.10.14 162,909 5/31/2019
0.10.13 14,929 3/15/2019
0.10.12 6,644 3/15/2019
0.10.11 53,154 5/4/2018
0.10.10 9,273 4/12/2018
0.10.8 179,769 8/30/2017 21,316 6/3/2017
0.10.6 11,680 6/1/2017
0.10.5 10,854 3/30/2017
0.10.4 6,840 3/30/2017
0.10.3 20,977 10/7/2016
0.10.2 16,392 9/30/2016
0.10.1 7,642 9/19/2016
0.10.0 8,894 8/11/2016 9,545 6/23/2016 7,682 6/19/2016 7,202 6/18/2016
0.9.10 7,626 6/17/2016
0.9.10-rc1 6,824 6/13/2016
0.9.10-beta-20160612 7,388 6/12/2016
0.9.10-beta-20160302 6,565 3/4/2016
0.9.10-beta-20160101 6,429 1/1/2016 19,826 6/27/2015 29,836 11/4/2014 11,769 7/14/2014 6,658 7/13/2014 7,548 7/12/2014 7,270 7/7/2014 7,212 7/3/2014 6,648 6/30/2014 6,945 6/25/2014 6,630 6/8/2014 6,816 2/11/2014 10,700 11/11/2013 7,714 11/11/2013 6,845 11/9/2013 7,557 11/8/2013 6,916 11/8/2013 6,599 10/26/2013 7,442 6/27/2013 6,619 5/30/2013 11,345 12/11/2012 6,821 12/5/2012 6,758 10/16/2012 9,578 7/2/2012 7,627 6/16/2012 7,873 6/15/2012 7,253 6/13/2012 6,879 6/13/2012 7,915 2/27/2012 8,021 2/27/2012 6,803 2/17/2012 8,061 2/6/2012 7,957 1/8/2012 8,830 11/20/2011 7,983 10/14/2011 8,081 9/17/2011 8,216 9/10/2011 8,146 9/10/2011 8,584 9/2/2011 8,940 7/27/2011 8,114 7/27/2011 8,434 7/27/2011 17,175 7/7/2011 9,191 5/21/2011 8,785 5/18/2011
0.9.8 8,597 5/4/2011 8,538 4/30/2011 8,309 4/29/2011 8,864 4/29/2011
0.9.7 8,348 4/29/2011 9,157 4/26/2011 9,070 4/25/2011 9,120 4/25/2011 9,015 4/23/2011
0.9.6 8,779 4/23/2011
0.9.5 8,741 4/21/2011
0.9.4 9,563 4/10/2011
0.9.3 9,141 4/4/2011
0.9.2 9,477 4/4/2011
0.9.1 9,375 3/30/2011
0.9.0 9,264 3/28/2011
0.8.0 10,123 3/28/2011
0.7.0 9,686 3/27/2011
0.6.0 10,067 3/23/2011

See all -

## 0.10.5


* Fix - Start-ChocolateyProcessAsAdmin errors when running PowerShell scripts - see [#1220](
* Fix - Chocolatey timed out immediately when execution timeout was infinite - see [#1224](


* Show machine readable output with `choco outdated -r` - see [#1222](

## 0.10.4

We're dubbing this the "10-4 good buddy" release. We've added some major functionality and fixes we think you are going to find top notch - dare we say as smooth as really expensive chocolate? A lot of work for this release has been provided by the community. Remember that Chocolatey is only as good as the support that comes from the community! Be sure to thank other community members for the awesome that is Chocolatey and Chocolatey 10-4. We've closed over 30 bugs and added over 40 enhancements (75 tickets in total)!

Proxy support just got some major enhancements with the ability to not only [specify proxy information at runtime](, but also to [set bypass lists and bypassing on local connections]( and [configure source repositories to bypass proxies]( A major issue with [changing command execution timeout]( was just fixed. And there used to be a tiny chance you might [corrupt the choco config when running multiple choco processes]( -but now that is much better handled.

We've also made [package itself display download progress](, which is great when software binaries are embedded in packages. For you folks looking to remove any progress (like when using Vagrant), now you can use [`--no-progress`]( When NuGet.Core has issues, those issues will have more visibility into why things are failing without needing a debugging log. Speaking of some extreme visibility, see network traffic with [`--trace`](

We've got a few possible breaking changes that could affect you, see what we've written about them below.

This also marks the first release that uses the [Chocolatey Software digital certificate for signing]( instead of the RealDimensions Software, LLC certificate.

Another major feature released in preview is [using remembered arguments on upgrade]( This is in preview in 0.10.4 and will be turned to 'on' automatically in a future release. We are going to be continually making it better and won't turn it on by default until it is ready. If you want to turn it on and start using it, once you have 0.10.4 installed, run `choco feature enable -n useRememberedArgumentsForUpgrades`. You can also do this per command with `--use-remembered-arguments`. You can also turn it off per command with `--ignore-remembered-arguments`. We've also really described a lot of important considerations and thoughts related to using this so there are no surprises. Please do read the issue notes at length if you plan to use this feature to reduce confusion.


* Run with highestAvailable Execution Level by default - see [#1054](

   One longstanding request with Chocolatey was to have it always request admin privileges before running. This has been a hope that it would cut down on the accidental runs of Chocolatey in a command shell that is not elevated and needing to open one that is elevated. This UAC (User account control) setting is handled by something called an application manifest (app.manifest). We had it set to "asInvoker", or run with the context of the user that ran the command. We've moved this to "highestAvailable", which means if you are a non-admin, it will just run under your context, but if you are an admin in a non-elevated shell, it will ask for elevated permissions to run. There is also "requireAdministrator", which locks execution down to administrators only.

   Moving to "highestAvailable" allows for that asking of privileges that you are used to, up front before it runs. However one additional thing we did here was give you more control over this setting now. We used to embed the app manifest into choco.exe. We now set it next to choco.exe (base install under `$env:ChocolateyInstall`, you will find `choco.exe.manifest`) so you have more freedom to adjust those execution levels as you see fit. There is one catch, you will need to do it on every install/upgrade of Chocolatey until [#1206]( is implemented.

* When a prerelease is installed, it should upgrade to latest prerelease unless excluded - typically seen in choco upgrade all - see [#686](

   When you run `choco upgrade all`, it never catches the prereleases. However if you run `choco upgrade all --pre`, it may upgrade some of your stable installs to prereleases. Neither of these situations are desirable. So by default, we've made it so that `choco upgrade all` just does the right thing, which is to upgrade your stable releases to the latest stable release and your prerelease packages will upgrade to the absolute latest available, whether that be stable or prerelease. If you need to change the behavior back to the old way for upgrade all, simply add the `--exclude-prerelease` option.

* Fix - Passing Allow Downgrade To upgrade against a prerelease may downgrade it to last stable version - see [#1212](

   This is a bug fix that was allowing a prerelease to be downgraded accidentally to the last stable version if you ran `choco upgrade somepackage --allow-downgrade` without a particular version and without `--pre`. Now while this would be less affected with #686 above, it could still happen. It's a bug. The only reason this was marked as breaking change is that someone could be depending on the buggy behavior. So heads up, this bug is now fixed. If you are attempting to downgrade, make sure you specify the version you want it to go down to.


* [Security][Preview] Use Remembered Arguments for a Package During Upgrades - You must opt in for this to work - see [#797](
* Show download progress for the packages themselves - see [#1134](
* Set Explicit Proxy Bypass List / Bypass On Local - see [#1165](
* Option/feature to stop installation when a package fails - see [#1151](
* Add File64 to Install-ChocolateyInstallPackage and Get-ChocolateyUnzip - see [#1187](


* [Security] Fix - PowerShell sees authenticode hash as changed in scripts that were signed with Unix Line Endings (`LF`) - unable to use `AllSigned` - see [#1203](
* [Security] Fix - chocolatey setup - Use https for downloading .NET Framework 4x if not installed - see [#1112](
* Fix - chocolatey.config gets corrupted when multiple processes access simultaneously - see [#1047](
* Fix - "commandExecutionTimeoutSeconds" always reverts to 2700 when deprecated config setting is 0 - see [#1059](
* Fix - Allow Chocolatey version check with FIPS - see [#1193](
* Fix - Chocolatey doesn't always decompress downloads appropriately (support automatic decompression) - see [#1056](
* Fix - Load built-in Chocolatey functions, then load extensions - see [#1200](
* Fix - Use provided checksum type - see [#1018](
* Fix - MSU fails to install with space in path - see [#1177](
* Fix - Unable to disable failOnInvalidOrMissingLicense feature - see [#1069](
* Fix - PowerShell (Start-ChocolateyProcessAsAdmin) should only import the installerModule and not the profile - see [#1013](
* Fix - Automatic Uninstaller should skip when uninstaller executable does not exist - see [#1035](
* Fix - Package installation often fails with ERROR: You cannot call a method on a null-valued expression - see [#1141](
* Fix - Text file determination fails to throw an error because it catches it - see [#1010](
* Fix - Delete the .istext file before the content-type check - see [#1012](
* Fix - new command - don't add unparsed options as the name - see [#1085](
* Fix - Proxy settings ignored for local connections - see [#497](
* Fix - RefreshEnv / Update-SessionEnvironment changes current user to SYSTEM - see [#902](
* Fix - Set-EnvironmentVariable writes an error when installing Chocolatey as SYSTEM - see [#1043](
* Fix - Get-FtpFile fails with integer overflow when downloading file more than 2gb in size - see [#1098](
* Fix - Uninstall-ChocolateyPackage prints out warning if the passed file path starts and ends with quotes - see [#1039](
* Fix - Get-UninstallRegistryKey fixes/improvements - see [#815](
* Fix - Unzip specific folder feature is broken after introducing 7zip - see [#676](
* Fix - Join-Path error when installing Chocolatey as SYSTEM - see [#1042](
* Fix - `$env:OS_NAME` is 'Windows' for Windows 10 - see [#1178](
* Fix - choco install relativepath/to/some.nuspec fails - see [#906](
* Fix - When pointing to a nupkg, choco should use only that nupkg to install and not a newer version in the same directory - see [#523](
* Fix - Automatic uninstaller should split by quotes when necessary - see [#1208](
* [API] Fix - lib should merge the AlphaFS dependency - see [#1148](
* [API] Fix - don't reset loggers on setting custom automatically - see [#1121](
* [API] Fix - Chocolatey file cache adds a 'chocolatey' directory on each install - see [#1210](
* [API] Fix - Getting Local List of Package may leave config in undesirable state - see [#1213](
* Fix - Pro/Business - Chocolatey Licensed Feed May Show Up More Than Once - see [#1166](
* Fix - Pro/Business - Synchronized packages with DLLs are attempted to be imported by Chocolatey's PowerShell Extensions Loader - see [#1041](


* [Security] Username and password for `choco apikey` not encrypted in output - see [#1106](
* [Security] Sign Binaries / Authenticode Signatures with Chocolatey Software digital certificate - see [#1214](
* Setting commandExecutionTimeout to 0 means never time out - see [#1202](
* Configure sources to skip proxy - see [#262](
* Set proxy information at runtime - see [#1173](
* Start-ChocolateyProcessAsAdmin should not elevate when already elevated - see [#1126](
* Add `--no-progress` cli switch for hidding progress bars - see [#917](
* Note web status errors on package install failures - see [#1172](
* Always let Nuget.Core log - see [#1095](
* Make choco get its proxy settings also from environment variables - see [#605](
* Remove quotes in process passed to Start-ChocolateyProcessAsAdmin / CommandExecutor - see [#1167](
* Increase download buffer size in Get-FtpFile to speed up downloads - see [#1099](
* Trace network traffic - see [#1182](
* Upgrade 7Zip to 16.04 - see [#1184](
* Do not create .ignore file if outside of Chocolatey location - see [#1180](
* Help should exit zero if called with the help switch, otherwise non-zero on bad commands - see [#473](
* "Licensed messages" may address users in a somewhat unprofessional manner - see [#1111](
* Show the entire text to turn on the allowGlobalConfirmation flag - see [#1053](
* Running `choco` should produce name/version and further instructions - see [#1083](
* Typo in Install-ChocolateyPowershellCommand - see [#1088](
* Update `choco new pkg` template to give example of handling nested quoted paths - see [#1067](
* Add Aliases for Install-ChocolateyVsixPackage - see [#1146](
* Add Chocolatey Software to copyright - see [#1209](
* Pro/Business - Feature to Disable Non-Elevated Warnings - see [#1118](
* Pro/Business - Package Throttle - Bitrate limit packages and downloads (support) - see [#454](
* Pro/Business - Allow version overrides for local packages - see [#942](
* Pro/Business - List include programs should not show items from Package Synchronizer's Programs and Features Package Sync - see [#1205](
* Pro/Business - Show better messaging when unable to load licensed assembly - see [#1145](
* Pro/Business - PowerShell Functions should allow overriding urls - see [#1117](
* Pro/Business - Automatic Uninstaller - allow remove directly - see [#1119](
* Pro/Business - Add Chocolatey Architect edition license SKU - see [#1075](
* Pro/Business - Ensure sync command can be machine parseable - quiet logging - see [#1147](
* Pro/Business - Configure a source to be allowed for self-service - see [#1181](

## 0.10.3


* Fix - Do Not Check `$LastExitCode` - Only error a package install if script errors or set a different exit code when it is specifically set - see [#1000](

Starting in v0.9.10, Chocolatey started checking `$LASTEXITCODE` in addition to the script command success as a way to be more helpful in determining package failures. This meant it offered the ability to capture when a script exited with `Exit 1` and handle that accordingly. However that really has never been a recommended scenario for returning errors from scripts and is not seen in the wild anywhere so it is believed that those that may be affected are very few.

Checking `$LastExitCode` checks the last executable's exit code when the script specifically does not call `Exit` (which is . This can lead to very perplexing failures, such as running a successful xcopy that exits with `2` and seeing package failures without understanding why. Since it is not typically recommended to call `Exit` to return a value from PowerShell because of issues with different hosts, it's less of a concern to only look at explicit failures. For folks that may need it, allow failing a package again by the last external command exit code or `exit` from a PowerShell script. Note that it is not recommended to use exit with a number to return from PowerShell scripts. Instead you should use `$env:ChocolateyExitCode` or `Set-PowerShellExitCode` (first available in v0.9.10) to ensure proper setting of the exit code.

If you need the prior behavior, please turn on the feature `scriptsCheckLastExitCode`.


* Fix - chocolateybeforemodify runs after modifying (moving) chocolatey lib package files - see [#995](
* Fix - The refreshenv command throws an error about Write-FunctionCallLogMessage when ran in PowerShell on 0.10.2 - see [#996](

## 0.10.2

We're dubbing this the "Every Joe" release in honor of a friend that just lost his fight with brain cancer. If you want to help further research, please make a donation to a cancer research association of your choosing (e.g. the [American Brain Tumor Assocation](

A couple of important fixes/enhancements in this release. Most of the improvements are about providing better feedback to you and fixing minor issues. The big one surrounds when packages set a download path for a file using `$env:TEMP`, choco will ensure that the file can still be found for later use.


* Fix - Downloaded file is at old `$env:TEMP\chocolatey\chocolatey` location, but install calls with just `$env:TEMP\chocolatey\` location - see [#969](
* Fix - [Pro/Business] UseOriginalLocation fails when there is no 64bit file - see [#972](
* Fix - Do not use unparsed options as package names - see [#983](


* Start-ChocolateyProcessAsAdmin enhancements - see [#977](
* Log PowerShell function calls better - see [#976](
* Allow environment variables in some config settings - see [#971](
* [Pro/Business] Provide license type to environment variables - see [#968](
* Note that chocolateyUninstall.ps1 may no longer required in template - see [#982](
* Provide guidance when licensed only options are passed to FOSS - see [#984](
* Rollback automatically when a user cancels an operation - see [#985](
* Explain how to workaround a failing uninstall - see [#573](
* Remove extra forward slashes in url - see [#986](
* Side by side uninstall enhancements - see [#992](

## 0.10.1

We're dubbing this the "Shhh! Keep that secret please" release. We've found that when passing in passwords and other sensitive arguments, those items can end up in the logs in clear text. We've addressed this in [#948]( and [#953]( When it comes to passing sensitive arguments through to native installers, you can set up environment variables with those sensitive args and pass those arguments directly through to `Start-ChocolateyProcessAsAdmin`. If you prefer a better experience, the licensed version allows passing sensitive options directly through choco.exe as `--install-arguments-sensitive` and `--package-parameters-sensitive`. Read more in the [Licensed CHANGELOG](

Perhaps the biggest improvement in this release is that Chocolatey will automatically look to see if it can download binaries over HTTPS when provided an HTTP url. If so, Chocolatey will switch to downloading the binaries over SSL. This provides better security in downloading and knowing you are getting the binary from the source location instead of a possible man in the middle location, especially when the package does not provide checksums for verification.

Another improvement you may not even notice, but we think you will love is that Chocolatey now supports TLS v1.2 transport which presents a nice transparent increase in security. You will need to have at least .NET Framework 4.5 installed to take advantage of this feature.


* [Security] Support TLS v1.2 - see [#458](
* [Security] Attempt to download packages via HTTPS connection - see [#746](
* [Security] Pro/Business - Pass sensitive arguments to installers - see [#948](
* Search (and info) by version - see [#935](


* [Security] Fix - Passwords in command line options are logged in clear text - see [#953](
* [Security] Fix - For PowerShell v2 - if switch down to SSLv3 protocol fails, go back to original protocol - see [#958](
* Fix - Unzipping to ProgramFiles/System32 is Subject to File System Redirection - see [#960](
* Fix - Run without login - see [#945](
* Fix - Support Long Paths - see [#934](
* Fix - help should not issue warning about elevated command shell - see [#893](
* Fix - Licensed Feed cannot be disabled - see [#959](
* Fix - Choco with unknown command should show help menu - see [#938](
* Fix - Get-FtpFile error when file is missing (called through Get-ChocolateyWebFile) - see [#920](
* Fix - Skip Get-WebFileName for FTP - see [#957](
* Fix - Chocolatey-InstallChocolateyPackage fix for double chocolatey folder name is not also applied to the passed in file name - see [#908](
* Fix - Start-ProcessAsAdmin - working directory should be from the location of the executable - see [#937](
* [POSH Host] Fix - PowerShell Host - Package scripts setting values can affect packages that depend on them - see [#719](
* Fix - Transactional install - pending check may fail if the lib folder doesn't exist - see [#954](
* Fix - Start-ChocolateyProcessAsAdmin Module Import for PowerShell causes errors - see [#901](


* Transactional Install - Improve concurrent operations (pending) - see [#943](
* Uninstall-ChocolateyPackage should set unrecognized fileType to exe - see [#964](
* Powershell functions - Allow access to package title, not only ID - see [#925](
* Option to apply package parameters / install arguments to dependent packages - see [#839](
* Get-ChocolateyWebFile download check enhancements - see [#952](
* Do not treat unknown checksum types as MD5 - see [#932](
* Pro/Business - Install-ChocolateyPackage - UseOriginalLocation - see [#950](
* Auto determine checksum type - see [#922](
* Ensure PowerShell functions have parameter name parity - see [#941](
* Output from installer should go to verbose log - see [#940](

## 0.10.0

What was planned for is now 0.10.0. This is due partly to a breaking change we are making for security purposes and a move to provide better a better versioning scheme for the remainder of the sub-v1 versions of Chocolatey. Instead of 0.y.z.0 being considered where major verions occur in the sub 1 series, 0.y.0 will now be considered where those major versions occur. We also are moving right along towards v1 (and hope to be there in 2017).

0.10.0 carries the fixes for and includes a major security enhancement (checksum requirement).


* [Security] Checksum requirement and enhancements - see [#112](

Checksums in package scripts are meant as a measure to validate the originally intended downloaded resources used in the creation of a package are the same files that are received at a future date. This also ensures that the same files that are checked by all parts of moderation (if applicable) are the same files that are received by users for a package. This is seen mostly on the community repository because it is public and packages are subject to copyright laws (distribution rights), which typically requires the package scripts to download software from the official distribution locations. The Chocolatey framework has had the ability to use checksums in package scripts since [July 2014](

**What is the requirement?** choco will now fail if a package download resources from HTTP/FTP and does not use checksums to verify those downloaded resources. The requirement for HTTP/FTP is [#112]( We are considering also requiring it for [HTTPS (#895)]( as well. You can optionally set a feature (`allowEmptyChecksumsSecure`) to ensure packages using HTTPS also use checksums.

**How does this protect the community anymore than before?** During moderation review, there is a check of these downloaded binaries against VirusTotal (which verifies these binaries against 50-60+ different virus scanners). The binaries are also verified for installation purposes against a test computer. With an independent 3rd party checksum in the package itself, it guarantees that the files received by a user from those remote sources are the exact same files that were used in the verification process.

**Why the requirement, and why now?** This is a measure of protection for the Chocolatey community. HTTP is easy to hack with both DNS poisoning and MITM (man in the middle) attacks. Without independent verification of the integrity of the downloaded resources, users can be left susceptible to these issues. We've been planning a move to require checksums for awhile now, with a planned longer and smoother transition for package maintainers to get packages updated to reduce breakages. Unfortunately there was a recent event with [FOSSHub getting hacked]( (the [community repository had 8 possibly affected packages]( and [we quickly took action](, which necessitated a need for us to move in a much swifter fashion to ensure the protection of the community sooner, rather than later. The changes in Chocolatey represented by the checksum changes are a major step in the process to ensure protection. Requiring for HTTPS as well will mitigate any future compromises of software distribution sites that are used with Chocolatey packages.

**Can I shut this behavior off or opt out per package?**
You can shut off the checksum requirement by enabling the feature `allowEmptyChecksums`. This will return Chocolatey to previous behavior. We strongly recommend against it.

You can shut it off or turn it per package install/upgrade with `--allow-empty-checksums` and `--require-checksums`, respectively. See /

You can also disable the feature `allowEmptyChecksumsSecure` to enforce checksums for packages that download from secure locations (HTTPS).

**Other things I should know?** Users also now have the ability to pass their own checksums and checksumtypes into the install. See /


* [Known Issues](


* Pro/Business - Download a package without installing it - see [#108](


* Fix - Installing choco on Windows 10 Vagrant box stops Vagrant from being able to manage the box - see [#834](
* Fix - 64bit 7z.exe on 32bit system in chocolatey\tools - see [#836](
* Fix - [POSH Host] PowerShell exit code does not reset between packages in a single run - see [#854](
* Fix - Uninstall-ChocolateyZipPackage is failing - see [#871](
* Fix - "C:\Program Files\WindowsPowerShell\Modules" is missing in PSModulePath for cmd.exe [#830](
* Fix - Environment variables update fixes [#840](
* Fix - Handle null items better - see [#853](
* Fix - HKCU may not have Environment (Install of Chocolatey) - see [#375](
* Fix - Progress of download does not clear the whole output line - see [#875](
* Fix - Wrong download progress reported during package upgrade - see [#872](
* Fix - Uninstall not supporting side-by-side => ChocolateyUninstall.ps1 not run - see [#862](
* Fix - Uninstall ignores the version parameter - see [#861](
* Fix - Search by exact or by id only is case sensitive for remote sources - see [#889](
* Fix - Deprecated links inserted in .nuspec files created by `choco new ...` - see [#870](
* Fix - Get-OSArchitectureWidth doesn't do what it says it does - see [#828](
* Fix - When Choco fails to get a package from NuGet Core, fail the package with exit code 1 - see [#867](
* Fix - Illegal characters in path - see [#857](
* Fix - Get-OSArchitectureWidth doesn't do what it says it does - see [#828](
* Fix - Pro/Business - Choco install config file fails on licensed assembly - see [#866](
* Fix - DISM /all doesn't run anywhere but Windows 6.2 -- no dependencies get installed - see [#897](


* Do not install tab completion (edit of profile) under certain conditions - see [#833](
* Choco install with packages.config should print out the packages to install - see [#878](
* Larger default log file size and retention - see [#852](
* Allow getting installer type to be overridden - see [#885](
* Pack - Add optional output folder option - see [#598](
* Little command name correction on init.ps1 - see [#595](
* Tab completion - don't query if there is a file in the folder that meets completion - see [#847](



* Fix - Ignore ValidPackage Exit Codes for Real - see [#827](
* Fix - Cache folder running under SYSTEM account should be C:\Windows\TEMP - see [#826](
* Fix - Built-in 7zip doesn't behave properly - see [#775](
* Fix - Successful installer exit codes not recognized by choco should return 0 - see [#821](
* Fix - NotSilent fails with "Cannot bind argument to parameter statements because it is an empty string" - see [#819](
* Fix - Silent Args being passed as a string array cause package failure - see [#808](


* Hold pending check for 10 seconds / provide means of explicitly overriding the transactional install cleanup - see [#822](
* Pro/Business - Add runtime skip option to allow skipping the virus scanner - see [#786](



* Fix - Chocolatey Licensed is unable to find 0.9.10.x (only - see [#814](
* Fix - Logging is broken in some packages due to new TEMP directory - see [#813](
* [API] Fix - When performing an Install/Uninstall/Upgrade operation through the API, an error is throw for "chocolatey.resources" - see [#811](


* Ensure log file path exists - and fix the log file arguments if necessary - see [#758](



* Fix - Cannot bind argument to parameter 'exitCode' because it is null - see [#810](


* [Security] Upgrade to 7zip 16.02 to overcome CVE-2016-2334/CVE-2016-2335 - see [#812](

## 0.9.10

The "I got 99 problems, but a package manager ain't one" release. With the release of 0.9.10 (or if you prefer, we're about to make everything 100% better in your Windows package management world. We've addressed over 100 features and bugs in this release. We looked at how we could improve PowerShell and we've come out with a [competely internal host]( that can Prompt and Read-Host in a way that times out and selects default values after a period of time. Speaking of PowerShell, how about some tab completion `choco <tab>` to `choco install node<tab>`? How about never having to [close and reopen your shell again](

Alternative sources (`-source webpi`, `-s windowsfeature`, etc) are back! I mean, am I right?! Have you heard of auto uninstaller? If Chocolatey has installed something that works with Programs and Features, Chocolatey knows how to uninstall it without an uninstall script about 90+% of the time. This feature was in beta for the 0.9.9 series, it is on by default in 0.9.10 (unless you disabled it after trying it, you will need to reenable it, see `choco feature` for more details).

Here's one you probably never knew existed - extensions. Chocolatey has had the ability to extend itself by adding PowerShell modules for years, and most folks either didn't know it existed or have never used them. We've enhanced them a bit in preparation for the licensed version of Chocolatey.

We redesigned our `choco new` default packaging template and we've made managing templates as easy as managing packages.

`choco search`/`choco list` has so many enhancements, you may not need to visit dot org again. [See it in action](
* [search -v provides moderation related information and a world of nuspec information](
* [search by id only](
* [search by id exact](
* [search by approved only, not broken, and/or by download cache](
* [sort by version](
* [search with paging](

There are 150 tickets closed for this release! We've included remediation steps for when a breaking change affects you. Mostly if you have been using Chocolatey in a recommended way, you won't even notice any adverse changes. There are a number of things we thought to highlight, and quite a few security enhancements coming in this release (look for the [Security] tag on the ticket summary).


* Only fail automation scripts (chocolateyInstall.ps1) if the script returns non-zero exit code - see [#445](

The 0.9.8 series would only fail a package with terminating errors. The 0.9.9 series took that a bit further and started failing packages if anything wrote to stderr. It turns out that is a bad idea. Only when PowerShell exits with non-zero (which comes with terminating errors) should the package fail due to this. If you need the old behavior of the 0.9.9 series, you can get it back with a switch (`--fail-on-standard-error` and its aliases) and/or a feature flip (`failOnStandardError`).

* Fix - Force reinstall, force upgrade, and uninstall should delete the download cache - see [#590](

If you set a custom cache directory for downloads, it will no longer use a "chocolatey" subdirectory under that. You may need to make any adjustments if this is going to affect you.

* Exit with the same exit code as the software being installed - see [#512](

There are more exit codes from Chocolatey now that indicate success -`0`, `1605`, `1614`, `1641`, and `3010`. You may need to adjust anything you were using that would only check for 0 and nonzero.
If you need the previous behavior, be sure to disable the feature `usePackageExitCodes` or use the `--ignore-package-exit-codes` switch in your choco commands.

* PowerShell module functions adjusted for automatic documentation - see [#697](

If you were using any of the functions in a non-recommended way or not compliant with the examples, you are going to find breakages in the functions as some of the things that were called out as non-optional are now enforced. This shouldn't affect most folks.

* [Security] Explicit permissions - remove inheritance/lock down to admins - see [#398](

This further restricts the default installation location by removing all permissions and inheritance of permissions, explicitly giving Administrator/LocalSystem to Full access, and Users are granted Read and Execute. In prior installations, we ensured Modify access to the installing user, but that has been removed for security reasons. Should you need the previous behavior, set `$env:ChocolateyInstallAllowCurrentUser="true"`.


* [Known Issues](


* Alternative Sources - see [#14](
* [POSH Host] Use Internal PowerShell Host - see [#8](
* Run a script before uninstall/upgrade (chocolateyBeforeModify.ps1) to allow for things like services to shutdown - see [#268](
* Manage package templates with a specially named package and special package folder - see [#542](
* Support for custom headers - see [#332](
* [Security] Show moderation-related information in search results - see [#493](
* New Helper - Get-ToolsLocation helper (replacement for Get-BinRoot) - see [#631](
* Choco list/search should have exact filter search - see [#453](
* RefreshEnv (Refresh Environment Variables) Should also work in PowerShell - see [#664](
* Provide PowerShell tab completion for Chocolatey - see [#412](
* [Security] Sign the powershell scripts and assemblies - see [#501](
* Add a `choco info` command to show info for one package - see [#644](
* Mark packages pending until install completes successfully - see [#198](
* Resolve sources by name - see [#356](
* Uninstall-ChocolateyEnvironmentVariable function - see [#772](
* Get-UninstallRegistryKey function - see [#739](
* Pro/Business - Ubiquitous Install Directory Switch - see [#258](
* Pro/Business - Runtime Virus Scanning - see [virus scanning](
* Pro/Business - Private CDN cache for downloads - see [private CDN cache](
* Pro/Business - Sync "choco installed status" with "Windows installed status" - see [#567](


* [Security] Fix - Only load the Chocolatey PowerShell module from a known location - see [#560](
* [Security] Fix - Package source authentication at http://location/path doesn't also use http://location/ (base url) - see [#466](
* [Security] Fix - When defining a proxy without credentials - proxy password is shown in plain text - see [#503](
* [Security] Fix - Fully qualify shutdown command - see [#702](
* [Security] Fix - MSI packages fail install with `Could not find 'msiexec'` - see [#723](
* Fix - Force should set allow-downgrade to true - see [#585](
* Fix - Do not use NuGet package cache - see [#479](
* Fix - Pack doesn't include chocolatey-specific metadata - see [#607](
* Fix - TEMP environment variable is 8.3 Path on some systems - see [#532](
* Fix - `$packageName` should be present for zip uninstalls in uninstall script template - see [#534](
* Fix - Debug/Verbose messages not logged in automation scripts (chocolateyInstall.ps1) - see [#520](
* Fix - Escape log output for variables that have data from external sources - see [#565](
* Fix - Choco new silentargs can't pass in args in the param=value format - see [#510](
* Fix - Exception if no source is enabled - see [#490](
* Fix - Chocolatey command help output written to standard error instead of standard out - see [#468](
* Fix - Logger doesn't clear cached NullLoggers - see [#516](
* Fix - DISM "/All" argument in the wrong position - see [#480](
* Fix - Pro - Installing/uninstalling extensions should rename files in use - see [#594](
* Fix - Running Get-WebFileName in PowerShell 5 fails and sometimes causes package errors - see [#603](
* Fix - Merging assemblies on a machine running .Net 4.5 or higher produces binaries incompatible with .Net 4 - see [#392](
* Fix - API - Incorrect log4net version in chocolatey.lib dependencies - see [#390](
* [POSH Host] Fix - Message after Download progress is on the same line sometimes - see [#525](
* [POSH Host] Fix - PowerShell internal process - "The handle is invalid." - see [#526](
* [POSH Host] Fix - The handle is invalid - when output is being redirected and a package attempts to write to a filestream - see [#572](
* [POSH Host] Fix - Write-Host adding multiple line breaks - see [#672](
* [POSH Host] Fix - PowerShell Host doesn't show colorization overrides - see [#674](
* [POSH Host] Fix - $profile is empty string when installing packages - does not automatically install the ChocolateyProfile - see [#667](
* [POSH Host] Fix - Getting LCID doesn't work properly with the built-in PowerShell - see [#741](
* [POSH Host] Fix - Host.Version should return actual PowerShell version - see [#708](
* Fix - Verbose shows in output on debug switch - see [#611](
* Fix - Get-ChocolateyUnzip captures files that don't belong to the package / Unzip should not do a full disk scan - see [#616]( and [#155](
* Fix - Package succeeds but software install silently fails when Install-ChocolateyInstallPackage has the wrong arguments - see [#629](
* Fix - ShimGen handling of spaces and arguments that have shimgen in them - see [#647](
* Fix - PowerShell v2 - Choco installer messages can't actually be warnings (causes FileStream errors) - see [#666](
* Fix - Installing chocolatey removes $env:PSModulePath changes for current PowerShell session - see [#295](
* Fix - Notice for Get-BinRoot deprecation won't be displayed - see [#673](
* Fix - choco new creates a bad ChocolateyUninstall.ps1 script which does not work.  - see [#460](
* Fix - ShimGen fails when file metadata has strings that need literals - see [#677](
* Fix - Install-ChocolateyPath Expands Variables in PATH, Overwriting Preexisting Variables - see [#303](
* Fix - Install-ChocolateyShortcut gives invalid warning when target is a web url - see [#592](
* Fix - Argument Parsing failures should be reported as warnings and not debug messages - see [#571](
* Fix - choco pack returns zero exit code when Nuget.Core validation errors - see [#469](
* Fix - `Install-ChocolateyPath` updates `PATH` to `REG_SZ`, which may break using Windows dir and system32 tools - see [#699](
* Fix - Removing environment variables sets empty environment variables - see [#724](
* Fix - Environment Variable Changes Require Reboot - see [#728](
* Fix - Get-WebFileName determines strange file name - see [#727](
* Fix - Package params are also applied to dependent package - see [#733](
* Fix - Use package name/version from environment, not parameters - see [#751](
* Fix - Get-WebFileName Does Not Match on Invalid Characters - see [#753](
* Fix - `choco new` cannot introduce multistage folder hierarchy template - see [#706](
* Fix - Empty $env:ChocolateyToolsLocation combine error - see [#756](
* Fix - Installing chocolatey removes $env:PSModulePath changes for current powershell session - see [#295](
* Fix - Some environment variables are set too early for options/switches to have an effect - see [#620](
* [API] Fix - Issue when attempting to execute run command through API - see [#769](
* Fix - Logging of upgrade messages - placement of some messages is incorrect - see [#557](
* Fix - Get-WebFile fails with - The term '//continue' is not recognized as the name of a cmdlet - see [#789](
* Fix - Unable to read registry snapshot file - see [#487](
* Fix - Pro/Business - Licensed version has an incorrect dependency on PowerShell assemblies and will only load v3 and above - see [#799](
* Fix - Exit codes in package scripts should work - see [#802](
* Fix - Running choco new creates a bad nuspec - see [#801](


* AutoUninstaller is on by default - see [#308](
* Use the actual download file name instead of providing one - see [#435](
* Unset Configuration Values - see [#551](
* Ability to run "choco upgrade all" ignoring specific packages - see [#293](
* Extensions enhancements - see [#588](
* Show human-readable file sizes when downloading - see [#363](
* [Security] Warn about environment changes - see [#563](
* Warn when execution timeout has elapsed - see [#561](
* Update nuspec to make it easier to get started - see [#535](
* Suppress verbose output to verbose - like with 7-zip - see [#476](
* Choco push moderation message only on push to dot org - see [#601](
* Allow tools/bin root to be root of the drive again - see [#628](
* File description of ShimGen shims should match original as closely as possible - see [#374](
* Shim Generation should automatically detect GUI - see [#634](
* Don't show 32 bit wording unless there is explicitly both versions available - see [#642](
* Allow passing arbitrary key/value arguments to new command when generating packages from templates - see [#658](
* Choco search/list should be able to search just by Id - see [#663](
* Search by approved, by not broken, by download cache - see [#670](
* Save nuspec files with package installs - see [#623](
* Show a prompt character when asking a multiple choice question - see [#184](
* When prompting for a user yes/no answer, use a short [y/n] representation - see [#181](
* Default package template should include LICENSE.txt and VERIFICATION.txt for packages with binaries - see [#675](
* choco list/search aliases for -v - '-detail' and '-detailed' - see [#646](
* Log normal output to a secondary log - see [#682](
* Display Package test status information on install/upgrade - see [#696](
* Report when reboots are necessary from package installs - see [#712](
* Report loaded extensions - see [#715](
* Exit with specific codes on certain actions - see [#707](
* Determine if Downloaded File is HTML or Plain Text - see [#649](
* Interactively prompt with timeout on some questions - see [#710](
* [POSH Host] Exit code from PowerShell Host should be useful - see [#709](
* Update environment for scripts after setting environment variables - see [#729](
* Clean up any temp nuget folder actions after NuGet operations - see [#622](
* Ensure Web Requests and Responses Do Not Timeout - make configurable - see [#732](
* Combine timeout from push and execution timeout as one parameter - see [#752](
* Override autouninstaller / failonautouninstaller fail with switches for uninstall  - see [#515](
* Offer to remove actual package (*.install/*.portable) when removing meta/virtual package - see [#735](
* Provide more info in package summary - see [#455](
* Report install location - see [#689](
* Track MSI Information Better - see [#755](
* Support for client certificates - see [#399](
* choco feature list formatting enhancements - see [#742](
* choco new --original-template - see [#737](
* Update Get-FtpFile with fixes for Get-WebFile - see [#765](
* Rename Get-ProcessorBits as a more appropriately named Get-OSArchitectureWidth - see [#713](
* Allow passing no 32-bit url and fail the package on 32-bit systems - see [#527](
* Enhance Install-ChocolateyShortcut to support WindowStyle, Pin to Taskbar and Run As Administrator checkbox - see [#519](
* [Security] Allow hashing files for checksums with FIPS compliant algorithms - see [#446](
* After upgrading provide summary of upgraded packages - see [#759](
* Web functions - Check for local file and return early - see [#781](
* Refresh environment variables after each install - see [#439](
* Capture Arguments for a Package during Install/Upgrade - see [#358](
* If config update fails, log to debug instead of warn - see [#793](
* Remove extra empty lines when doing choco upgrade all - see [#796](
* Mention required permissions if user has no access - see [#794](
* Pro/Business - Also check for license in User Profile location - see [#606](
* Pro/Business - Set download cache information if available - see [#562](
* Pro/Business - Allow commands to be added - see [#583](
* Pro/Business - Load/Provide hooks for licensed version - see [#584](
* Pro/Business - On valid license, add pro/business source automatically - see [#604](
* Pro/Business - Add switch to fail on invalid or missing license - see [#596](
* Pro/Business - add ignore invalid switches/parameters - see [#586](
* Pro/Business - Don't prompt to upload file for virus scanning if it is too large - see [#695](
* Pro/Business - add 'support' command - see [#745](
* Pro/Business - Adjust environment settings warning to suggest upgrade - see [#795](
* API - Add the ability to retrieve package count for a Source - see [#431](
* API - Chocolatey Lib still marks vital package information as internal - see [#433](
* API - Add paging to list command - see [#427](
* API - Choco search should sort by version - see [#668](
* API - Switch dll to .NET Client Profile - see [#680](