Skip to main content
Moderne OnlyThis recipe is proprietary to Moderne and runs on the Moderne platform or CLI — it isn’t part of the open-source catalog. Available with a Moderne subscription.Contact Sales

Convert packages.config to <PackageReference>

Recipe IDOpenRewrite.CSharp.Recipes.ConvertPackagesConfigToPackageReference
ArtifactOpenRewrite.Recipes.CSharp.Core

Moves NuGet dependencies from packages.config into <PackageReference> items in the sibling project file, classifying top-level vs. transitive packages and reconstructing IncludeAssets/ExcludeAssets/PrivateAssets from the resolved dependency graph. Removes packaged <Reference>/<Import>/<Analyzer> wiring, the EnsureNuGetPackageBuildImports target and NuGetPackageImportStamp property, rewrites remaining packages/ folder paths to $(PkgXxx) properties, deletes packages.config, and flags package behaviors that PackageReference does not support (install.ps1, XDT config transforms, legacy content/ assets) for manual follow-up.

Single recipeOpenRewritecsharpdotnetpackages-configcsprojnugetModerne Proprietary License
Try in PlatformTry this recipe in the Moderne platform. Not a user yet? You’ll get a no-setup demo environment, with nothing to install or configure.

Options

1 parameters
1 optional
ParameterExampleTypeRequired
TrimTransitiveBooleanOptional
Drop packages.config entries that are transitive dependencies of other entries instead of keeping them as explicit top-level pins. The restored package versions may drift over time as ranges re-resolve. Defaults to false.

Usage

Run this recipe

In order to run C# recipes, you will need to use the Moderne CLI.

Once the CLI is installed, you can install this C# recipe package by running the following command:

Install the recipe package
mod config recipes nuget install OpenRewrite.Recipes.CSharp.Core

Then, you can run the recipe via:

Run the recipe
mod run . --recipe OpenRewrite.CSharp.Recipes.ConvertPackagesConfigToPackageReference