A powerful .NET global tool for finding and managing target frameworks in your .NET projects. Quickly scan directories for .csproj files and update target frameworks across multiple projects with an interactive CLI experience.
- 🔍 Recursive Search - Automatically finds all
.csprojfiles in a directory and its subdirectories - 📊 Clear Overview - Beautiful table display showing project names, target frameworks, and paths
- 🎯 Bulk Updates - Change target frameworks across all projects at once
- ⚡ Individual Updates - Update specific projects individually
- 🎨 Interactive CLI - User-friendly interface powered by Spectre.Console
dotnet tool install --global Versionifydotnet tool update --global Versionifydotnet tool uninstall --global VersionifySimply run the tool from your terminal:
versionifyYou'll be prompted to enter the directory path where you want to search for .csproj files.
-
Launch the tool
versionify
-
Enter directory path
📁 Enter directory path: C:\MyProjects\MySolution -
Review detected projects
The tool will display a table with all found projects:
┌───┬──────────────────────┬───────────────────┬────────────────────────────┐ │ # │ Project File │ Target Framework │ Path │ ├───┼──────────────────────┼───────────────────┼────────────────────────────┤ │ 1 │ MyApp.csproj │ net8.0 │ C:\MyProjects\MyApp │ │ 2 │ MyLibrary.csproj │ net6.0 │ C:\MyProjects\MyLibrary │ └───┴──────────────────────┴───────────────────┴────────────────────────────┘ -
Choose an action
Select one of the available options:
- Change all projects to the same framework - Updates all projects to use the same target framework
- Change specific projects individually - Selectively update individual projects
- Cancel - Exit without making changes
-
For bulk updates:
🎯 Enter new target framework: net9.0 -
For individual updates:
Select projects from the list and specify the target framework for each one.
versionify- Enter directory:
C:\Projects\MySolution - Select: "Change all projects to the same framework"
- Enter:
net9.0 - All projects will be updated to target .NET 9.0
versionify- Enter directory:
C:\Projects\MySolution - Select: "Change specific projects individually"
- Choose projects from the interactive list
- Specify target framework for each selected project
Versionify supports all .NET target framework monikers, including:
- .NET -
net5.0,net6.0,net7.0,net8.0,net9.0,net10.0, etc. - .NET Framework -
net48,net472,net471,net462, etc. - .NET Standard -
netstandard2.0,netstandard2.1 - Multi-targeting - You can specify multiple frameworks (e.g.,
net8.0;net9.0)
- .NET 8.0 SDK or later
-
Clone the repository:
git clone https://github.com/babaktaremi/Versionify.git
-
Navigate to the source directory:
cd Versionify\src
-
Build the project:
dotnet build
-
Pack as a tool:
dotnet pack
-
Install locally:
dotnet tool install --global --add-source ./bin/Debug Versionify
Versionify scans the specified directory for all .csproj files and parses their XML content to extract the <TargetFramework> or <TargetFrameworks> property. When you choose to update frameworks, it modifies the project files directly by updating the XML nodes.
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
Babak Taremi
- GitHub: @babaktaremi
If you encounter any issues or have questions, please file an issue on the GitHub repository.
Made with ❤️ using Spectre.Console