web-dev-qa-db-fra.com

L'élément 'packages' de Visual Studio n'est pas déclaré avertissement

Ainsi, dans Visual Studio 2017, j'obtiens l'avertissement suivant dans le fichier packages.config généré automatiquement:

L'élément 'packages' n'est pas déclaré.

C'est le même problème qu'ici: L'élément 'packages' n'est pas déclaré

Et ici: l'élément nuget 'packages' n'est pas déclaré avertissement

Le consensus semble être que cet avertissement peut être ignoré en toute sécurité. De plus, certains commentaires suggèrent que les tentatives de résolution de ce problème peuvent entraîner d'autres problèmes et/ou être difficiles à maintenir.

Par exemple, un contributeur a déclaré:

Aucune des réponses ne résoudra définitivement votre problème. Si vous allez sur le chemin de l'ajout de XSD (dans le menu Xml, sélectionnez "Créer un schéma"), vous finirez par avoir des problèmes avec le gestionnaire de packages car il nettoiera votre fichier packages.config lorsque vous ajouterez un nouveau package.

Cependant, le plus récent contributeur a suggéré de simplement changer <packages> à <packages xmlns="urn:packages">. Faire cela fait disparaître l'erreur et je n'ai vu aucun problème évident (mon expérience ici est très limitée).

Cependant, je ne veux pas risquer de causer des problèmes Nuget sur un avertissement qui n'a pas besoin d'être traité. D'un autre côté, chaque projet créé dans VS, je suppose, aura cette erreur par défaut, donc un correctif facile, sûr et facilement maintenable serait bien d'avoir.

Donc ma question de fond est: qu'est-ce que le changement <packages> à <packages xmlns="urn:packages"> dans le fichier packages.config, et y a-t-il des risques ou des inconvénients à le faire?

12
Pennywise

qu'est-ce que changer exactement <packages> à <packages xmlns="urn:packages"> dans le fichier packages.config faire, et y a-t-il des risques ou des inconvénients à le faire?

En utilisant <packages xmlns="urn:packages"> dans le fichier packages.config ajoute le schéma au fichier. La déclaration xmlns (namespace) n'est rien de plus qu'une chaîne sous la forme d'un identificateur de ressource uniforme (URI) et cette déclaration n'est pas requise. NuGet utilise le <packages> node dans packages.config pour restaurer les dépendances du projet comme décrit dans la section Schema de la référence packages.config . C'est pourquoi Microsoft a utilisé <packages> au lieu de <packages xmlns="urn:packages">.

Le fichier packages.config est généré automatiquement et peut être utilisé par NuGet tel quel. Il n'est pas nécessaire de modifier le fichier et il n'y a aucun risque ou inconvénient associé à l'ignorance de l'avertissement.

16
Leo Liu-MSFT