A powerful tool to analyze and report package dependencies across .NET Framework projects.
MIT License
PackageAnalyzer is a powerful .NET tool for dissecting solution dependencies, generating comprehensive package reports, and facilitating legacy-to-monolith migrations.
At Roamler, we faced a common yet daunting challenge: modernizing our legacy microservices into a unified monolith. The obstacle? A maze of package dependencies and version conflicts across our .NET Framework projects. PackageAnalyzer was born in my weekend spare time from this need – a tool to map our dependency landscape, highlight version discrepancies, and guide our migration journey. What started as an in-house solution is now open-source, aiming to help others navigate similar modernization quests.
PackageAnalyzer leverages the power of the NuGet API to fetch comprehensive package information directly from NuGet servers. Here's what you need to know:
Dependency Graph The tool generates a detailed dependency graph of your solution, including both direct and transitive dependencies
Caching Mechanism To optimize performance and reduce unnecessary API calls, PackageAnalyzer caches project information in an "AnalysisResult" directory located in the same folder as the executable.
Fresh Data
If you need to ensure you're working with the most up-to-date information, simply remove the cache by deleting the "AnalysisResult" directory before running the analysis.
This approach allows PackageAnalyzer to provide fast, accurate results while minimizing network usage and API requests.
Packages by Project
Project by Packages Report
Anomalies Report