Simplify declared dependencies by removing transitive dependencies.
1: 2: 3: 4: 5: 6: 7: 8: 9:
If you add the
--verbose flag Paket will run in verbose mode and show detailed information.
--log-file [path] you can trace the logged information into a file.
A note on
paket simplify will also affect
paket.references files, unless
strict mode is used.
paket simplify is a heuristic approach to dependency
simplification. It often works very well, but there are rare cases where
simplify can result in changes of the package resolution.
Sometimes, you may still want to have control over some of the
transitive dependencies. In this case you can use the
--interactive flag, which will ask you to confirm before deleting a dependency
from a file.
You can use the setting
simplify: never to prevent a package from being removed as part of the simplify.
Any package with settings will also never be removed.
When you install
Castle.Windsor package in NuGet to a project, it will
generate a following
packages.config file in the project location:
1: 2: 3: 4: 5:
After converting to Paket with
paket convert-from-nuget, you should get a
1: 2: 3: 4:
packages.config should be converted to following
As you have already probably guessed, the
Castle.Windsor package happens to
have a dependency on the
Castle.Core package. Paket will by default (without
strict mode) add references to all
required dependencies of a package that you define for a specific project in
paket.references file. In other words, you still get
the same result if you remove
Castle.Core from your
This is exactly what happens after executing
paket simplify command. After
paket.dependencies will contain:
1: 2: 3:
paket.references file contains:
Unless you are relying heavily on types from
Castle.Core, you would not care
about controlling the required version of
Castle.Core package. Paket will do
The simplify command will help you maintain your direct dependencies.