Comment identifier, et résoudre les problèmes d'une migration vers PackageReference ratée ?

En temps normal, la migration des références vers PackageReference se passe en douceur. Il suffit de faire un click droit sur le dossier References, et de profiter du menu contextuel qui s'ouvre pour lancer la migration. Quelques secondes plus tard, le fichier package.config disparait.

Mais il arrive que les choses ne se passent pas bien. Ce peut être au moment de la migration, ou après la récupération du code d'un collègue.

Une migration peut être refusée, pour des raisons d'incompatibilité. Le motif est noté dans la fenêtre de sortie de Visual Studio. Il suffit de résoudre le problème indiqué.

Dans d'autres cas, la migration est allée au bout. Mais ce n'est pas pour autant que tout va bien. Cela se matérialise par des références apparaissant en double. Certaines ont l'icône nuget, d'autres non.

Projet avec des références en double

Cela est dû au fait que lors de la migration, l'assistant n'a pas supprimé les liens vers le dossier ..\packages. Pour corriger ce projet, il suffit donc d'éditer le fichier csproj, ou vbproj, et de supprimer les nœuds XML de type Reference dont le HnitPath pointe vers le dossier ..\packages.


<Reference Include="AutoFixture, Version=4.17.0.0, Culture=neutral, PublicKeyToken=b24654c590009d4f, processorArchitecture=MSIL">
  <HintPath>..\packages\AutoFixture.4.17.0\lib\net452\AutoFixture.dll</HintPath>
</Reference>

Voilà, vous savez maintenant corriger un projet dont la migration vers PackageReference n'a pas réussi du premier coup ;)

Jérémy Jeanson

Comments

You have to be logged in to comment this post.