Paket 12 only ships as the paket .NET tool, which needs the .NET 10 runtime: paket.exe, paket.bootstrapper.exe and Mono are no longer supported. To upgrade, install Paket as a local tool (dotnet new tool-manifest if the repository has none, then dotnet tool install paket), delete .paket/paket.exe and .paket/paket.bootstrapper.exe, call dotnet paket instead of .paket/paket.exe in your build scripts, and run dotnet paket auto-restore on again if you use auto-restore. The steps are detailed in https://fsprojects.github.io/Paket/installation.html#Moving-from-paket-exe-and-the-bootstrapper. To keep paket.exe for now, remove the version line from paket.dependencies and run .paket/paket.bootstrapper.exe --self: you get the bootstrapper of Paket 11, which stays on the latest 11.x.
This release also recognizes .NET 11 and fixes the OS-specific frameworks of .NET 9 to 11 (net9.0-android, net10.0-ios...), so the next paket update may rewrite some framework restrictions in paket.lock.
- BREAKING: Paket only ships as a .NET tool:
dotnet tool install paket.paket.exeandpaket.bootstrapper.exeare no longer built, and Paket no longer runs on Mono or the .NET Framework. See https://fsprojects.github.io/Paket/installation.html#Moving-from-paket-exe-and-the-bootstrapper - BREAKING: The release and
tools/paket.exeof the Paket package carry apaket.exestub instead, so that bootstrappers older than 11.0 explain how to move on: it prints the steps and exits with code 1. To stay onpaket.exe, move to the bootstrapper of Paket 11, which stays on the latest 11.x: remove theversionline from paket.dependencies, then runpaket.bootstrapper.exe --self. - BREAKING:
Paket.Restore.targetsandpaket.targetsno longer run the bootstrapper or runpaket.exethrough mono. They find Paket installed with--tool-path(in.paketor the root), as a local tool, or on thePATHlike a global tool. TheMonoPathandPaketBootStrapper*properties are gone; thePaketBootstrappingtarget is kept, empty, for the projects that depend on it. - BREAKING: Paket.Core targets netstandard2.0 only.
Dependencies.DownloadLatestBootstrapperand thedownloadBootstrapperparameter ofDependencies.Initare removed, along with theReleasesmodule,Utils.isMonoRuntime,Utils.isMono,Utils.monoPath,Utils.fixArchive,ProcessHelper.monoArguments,ProcessHelper.appSettings,FrameworkDetection.resolveEnvironmentFramework(replaced bydefaultScriptFramework),Queries.resolveEnvironmentFrameworkForScriptGenerationand theBootstrapperFileName,PaketFileNameandGithubReleaseDownloadUrlconstants.ProcessHelper.tryFindPathandfindPathtake the;-separated paths instead of an app setting name. ThePAKET_PUSH_HTTPCLIENTvariable is gone:paket pushalways uses HttpClient. - The release carries the
paket.targetsandpaket.bootstrapper.exeof the latest Paket 11 release, for Paket 11.0.0 and earlier, which download them from the latest release onauto-restore on,convert-from-nugetandinit, and for the--selfof the bootstrappers older than 11.0 paket auto-restore onwritespaket.targetsfrom Paket itself instead of downloading it from the latest GitHub release, so it works offline and matches the running Paket#r "paket:"in F# scripts finds the Paket .NET tool: installed with--tool-path, as a local tool of the manifest, as a global tool, or restored in the NuGet packages folder- Recognize the .NET 11 monikers:
net11.0,net11.0-windows...,net11.0-androidand the other OS-specific ones, andnetcoreapp11.0- #4439 - The conditions written in project files now list the OS-specific frameworks of .NET 9 to 11 (
net9.0-android,net10.0-ios,net11.0-macos...), which were left out in favour of their .NET 8 counterparts - The OS-specific frameworks of .NET 9 to 11 fall back to the previous .NET version for the same OS, as the Windows ones do: a
net11.0-androidproject can use thenet10.0-androidassets and dependencies of a package