๐ฅ DLL Pickle¶
A PowerShell module that helps you get un-stuck from dependency version conflicts that can occur when connecting to multiple Microsoft online services.

๐งโ๐ป Getting Started¶
Prerequisites¶
PowerShell 7.4 or later on Linux, macOS, or Windows.
Installation¶
Or, with Microsoft.PowerShell.PSResourceGet:
Using¶
Import DLL Pickle and run Import-DPLibrary before connecting to other service modules โ ideally as the first thing in your PowerShell profile, so it loads first in every session.
For diagnostic detail, add -ShowLoaderExceptions -Verbose.
Commands¶
Primary:
Import-DPLibraryโ preload DLLPickle-managed assemblies in dependency-aware order.Import-DPBaseProfileโ preload, then import the validated base-profile modules (Exchange Online, Teams, Graph, Az.Accounts) in a known-good order.Test-DPLibraryConflictโ report known-incompatible module pairs loaded in the current session, with the workaround.Get-DPConfig/Set-DPConfigโ view or change configuration (for example, show logo, skip libraries).
Inspection helpers:
Find-DLLInPSModulePathโ find DLLs across module paths, filtered by product metadata.Get-ModuleImportCandidateโ show which installed module version would import.Get-ModulesWithDependencyโ list installed modules that package a given dependency.Get-ModulesWithVersionSortedIdentityClientโ compare modules by packagedMicrosoft.Identity.Client.dllversion.
Full syntax and examples: docs index ยท command reference.
๐ฅ How It Works¶
Many PowerShell modules โ Az, Exchange Online, Microsoft Graph, Teams, and more โ bundle their own copy of the Microsoft Authentication Library (MSAL) and related DLLs. A single PowerShell session can only load one version of a given DLL, so when two modules ship different versions you hit “an assembly with the same name is already loaded” and authentication breaks.
DLL Pickle preloads a current, compatible set of these assemblies first, so the “first one wins” rule works in your favor and the modules you load afterward reuse what’s already there. A new DLL Pickle release is published automatically whenever a new MSAL version ships โ so keep it updated and load it first.
For the full explanation (and the real-world issues that motivated it), read the Deep Dive. The supported platform is PowerShell 7.4+ (Core, net8.0); compatibility, versioning, and dependency details live in DEPENDENCIES.md.
๐ Documentation Map¶
- User guide and overview: docs/index.md
- Deep technical explanation: docs/Deep-Dive.md
- Troubleshooting and issue reproduction: docs/Troubleshooting.md
- Full command reference: docs/DLLPickle.md
- Changelog and active work: CHANGELOG.md
- Architecture blueprint and planned enhancements: docs/Architecture.md
- Dependency, versioning, and supply-chain policy: DEPENDENCIES.md
- Contribution workflow: .github/CONTRIBUTING.md
- Security vulnerability reporting: SECURITY.md