Derniers tips / Mémos
Modélise nativement « exactement l'un de ces types », avec un switch exhaustif vérifié par le compilateur.
Fin des state machines générées par le compilateur : moins d'allocations et des stack traces enfin lisibles.
Recherche sémantique directement dans SQL Server 2025, sans base vectorielle séparée, en LINQ typé.
Framework UI cross-platform pour .NET : Windows, macOS, Linux, iOS, Android et WebAssembly.
Découvrez les nouvelles APIs asynchrones pour la compression ZIP et les améliorations de performance dans .NET 10
Central Package Management : gestion centralisée des packages NuGet
Déclarez les versions de packages une seule fois pour toute la solution.
Pourquoi CPM ?
- Uniformité Une seule source de vérité pour les versions assure la cohérence entre projets.
- Maintenance Mettre à jour une version dans un fichier répercute le changement partout.
- Audit Visibilité claire pour les revues de sécurité et la conformité.
Configuration initiale
Prérequis : .NET SDK récent (6+)
1. Créez une solution
dotnet new sln -n MySolutionAjoutez vos projets :
dotnet new classlib -o src/LibA
dotnet new console -o src/App
dotnet sln add src/**/*.csproj2. Activez CPM
Dans la racine de votre solution, créez un fichier Directory.Packages.props :
<?xml version="1.0" encoding="utf-8"?>
<Project>
<ItemGroup>
<!-- Centralized package versions -->
<PackageVersion Include="Newtonsoft.Json" Version="13.0.3" />
<PackageVersion Include="Serilog" Version="2.12.0" />
</ItemGroup>
</Project>3. Modifiez les projets pour qu'ils utilisent CPM
Dans chaque fichier .csproj :
<Project Sdk="Microsoft.NET.Sdk">
<ItemGroup>
<PackageReference Include="Newtonsoft.Json" />
<PackageReference Include="Serilog" />
</ItemGroup>
</Project>Important : Si un projet avait déjà une version définie, supprimez-la. Le SDK utilisera la valeur du fichier central.
4. Vérifiez
dotnet restoreVous devriez voir que les packages sont résolus à partir des versions de Directory.Packages.props. Ouvrez un .csproj ; il n'y aura plus de PackageReference avec un attribut Version.
Que fait CPM en arrière-plan ?
- Le SDK intercepte chaque référence de package.
- Il lit les versions dans le fichier central (ou fichiers parents).
- Sans version trouvée, la restauration échoue avec un message clair.
Bonnes pratiques
| Astuce | Pourquoi |
|---|---|
| Versionnez votre Directory.Packages.props | Publiez‑le avec un tag pour garantir une base commune. |
| Utilisez dotnet list package --outdated | Pour visualiser rapidement les dépendances obsolètes. |
| Bloquez les mises à jour automatiques (RestoreLockedMode="true") | Verrouillez la résolution pour éviter des mises à jour involontaires. |
Résumé rapide
- Créez Directory.Packages.props à la racine.
- Déclarez les packages et versions une seule fois.
- Retirez les versions dans chaque .csproj.
- Exécutez dotnet restore.