Exporter (0) Imprimer
Développer tout

Mise à niveau d'applications Visual C# vers Visual Studio 2005

Visual Studio 2005

Lorsque vous ouvrez un projet ou un fichier solution créé par une version antérieure de Visual Studio, l'Assistant Mise à niveau vous initie pas à pas au processus de conversion de votre projet en Visual Studio 2005. L'Assistant Mise à niveau effectue de nombreuses tâches à votre place : création de nouvelles propriétés et de nouveaux attributs, suppression de propriétés et attributs obsolètes, etc., mais comme la vérification des erreurs a été rendue plus rigoureuse, vous pouvez obtenir de nouvelles erreurs ou de nouveaux messages d'avertissement qui n'étaient pas générés par la version antérieure du compilateur. La dernière étape de mise à niveau d'une application existante consiste dès lors à effectuer les modifications requises dans le code pour résoudre toute nouvelle erreur.

Souvent, le code qui a produit un message dans les versions antérieures du compilateur C# produit maintenant un message différent dans la version actuelle. En principe, cela s'explique par le fait qu'un message général a été remplacé par un message plus spécifique. Dans la mesure où aucune modification dans le code n'est requise, nous ne documentons pas de telles différences.

Les messages suivants sont les nouveaux messages que l'Assistant Mise à niveau génère à cause d'une vérification d'erreurs plus stricte.

Nouvelles erreurs et nouveaux messages d'avertissement

CS0121 : Appel ambigu

En raison d'une conversion implicite, le compilateur n'a pas été en mesure d'appeler une forme d'une méthode surchargée. Vous pouvez résoudre cette erreur des manières suivantes :

  • Spécifiez les paramètres de méthode de telle manière que la conversion implicite ne soit pas effectuée.

  • Retirez toutes les surcharges de la méthode.

  • Effectuez un cast en type approprié avant d'appeler la méthode.

CS0122 : Méthode inaccessible en raison de son niveau de protection

Vous pouvez recevoir cette erreur lorsque vous référencez un type dans un assembly compilé par C++ qui a été compilé avec l'option du compilateur /d1PrivateNativeTypes.

Cette erreur se produit parce que dans la version actuelle, un assembly C++ génère une signature qui utilise un type qui n'est pas marqué comme étant public.

Vous pouvez contourner ce problème en utilisant l'option du compilateur /test:AllowBadRetTypeAccess. Cette option sera supprimée dès que cette fonctionnalité aura été réparée.

CS0429 : Impossible d'atteindre le code expression détecté

Cette erreur se produit lorsqu'une partie d'expression de votre code est inaccessible. Par exemple, la condition false && myTest() satisfait à ce critère parce que la méthode myTest() ne sera jamais évaluée étant donné que le côté gauche de l'opération && est toujours false. Pour résoudre ceci, réexécutez le test logique pour éliminer le code inaccessible.

CS0441 : Une classe ne peut pas être à la fois abstract et sealed.

Toutes les classes statiques sont également des classes sealed. La spécification de langage C# interdit la spécification de deux modificateurs sur une classe, et le compilateur signale maintenant cette situation comme une erreur.

Pour résoudre cette erreur, supprimez sealed de la classe.

CS1699 : Avertissement sur l'utilisation d'attributs pour la signature d'assemblys

Les attributs d'assembly qui spécifient la signature ont été déplacés du code vers les options du compilateur. L'utilisation des attributs AssemblyKeyFile ou AssemblyKeyName dans le code génère maintenant cet avertissement.

Vous devez utiliser les options du compilateur suivantes au lieu de ces attributs :

Ne pas basculer sur les options de ligne de commande peut gêner les diagnostics de compilation lors de l'utilisation d'assemblys friend.

Si vous utilisez /warnaserror (Considérer les avertissements comme des erreurs) (Options du compilateur C#), vous pouvez le convertir en un avertissement en ajoutant /warnaserror-:1699 à votre ligne de commande du compilateur. Si nécessaire, vous pouvez arrêter l'avertissement en utilisant /nowarn:1699.

Compilation incrémentielle supprimée

L'option /incremental du compilateur a été supprimée. La fonctionnalité Modifier & Continuer remplace cette fonctionnalité.

Voir aussi

Autres ressources

Options du compilateur C#

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft