(0) exportieren Drucken
Alle erweitern

Aktualisieren von Visual C#-Anwendungen auf Visual Studio 2005

Visual Studio 2005

Wenn Sie ein mit einer früheren Version von Visual Studio erstelltes Projekt bzw. eine Projektmappendatei öffnen, unterstützt Sie der Aktualisierungs-Assistent beim Konvertieren des Projekts in Visual Studio 2005. Der Aktualisierungs-Assistent übernimmt dabei zahlreiche Aufgaben, z. B. das Erstellen neuer Eigenschaften und Attribute, das Löschen veralteter Eigenschaften und Attribute usw. Da die Fehlerüberprüfungen jedoch strikter definiert wurden, erhalten Sie möglicherweise neue Fehler- oder Warnmeldungen, die in der früheren Version des Compilers nicht erzeugt wurden. Als letzten Schritt beim Aktualisieren einer vorhandenen Anwendung müssen Sie daher die erforderlichen Codeänderungen vornehmen, um alle neuen Fehler zu beheben.

Häufig erzeugt der Code in der aktuellen Version des C#-Compilers eine andere Meldung als in früheren Versionen. Normalerweise liegt das daran, dass eine allgemeine Meldung durch eine präziser definierte Meldung ersetzt worden ist. Da keine Änderung im Code erforderlich ist, werden diese Unterschiede hier nicht dokumentiert.

Im Folgenden werden die neuen Meldungen aufgeführt, die der Aktualisierungs-Assistent aufgrund der strikteren Fehlerüberprüfung generiert.

Neue Fehler- und Warnmeldungen

CS0121: Mehrdeutiger Aufruf

Aufgrund einer impliziten Konvertierung konnte der Compiler ein Formular einer überladenen Methode nicht aufrufen. Sie haben folgende Möglichkeiten, diesen Fehler zu vermeiden:

  • Geben Sie die Methodenparameter so an, dass keine implizite Konvertierung erforderlich ist.

  • Entfernen Sie alle Überladungen für die Methode.

  • Führen Sie vor dem Methodenaufruf eine Umwandlung in den geeigneten Typ durch.

CS0122: Der Zugriff auf die Methode ist aufgrund der Sicherheitsebene nicht möglich.

Diesen Fehler erhalten Sie möglicherweise, wenn Sie auf einen Typ in einer mit C++ kompilierten Assembly verweisen, der mit der Compileroption /d1PrivateNativeTypes kompiliert wurde.

Dieser Fehler tritt auf, da in der aktuellen Version eine C++-Assembly eine Signatur erstellt, die einen Typ verwendet, der nicht als öffentlich gekennzeichnet ist.

Sie können dieses Problem umgehen, indem Sie die /test:AllowBadRetTypeAccess-Compileroption verwenden. Diese Option wird entfernt, sobald dieses Feature korrigiert worden ist.

CS0429: Unerreichbarer Ausdruckscode wurde entdeckt.

Dieser Fehler tritt immer dann auf, wenn ein Teil eines Ausdrucks im Code nicht erreichbar ist. Die Bedingung false && myTest() entspricht z. B. diesem Kriterium, da die myTest()-Methode nie ausgewertet wird, weil die linke Seite des &&-Vorgangs immer false ist. Beheben Sie den Fehler, indem Sie den Logiktest wiederholen, um den unerreichbaren Code zu entfernen.

CS0441: Eine Klasse kann nicht gleichzeitig statisch und versiegelt sein.

Alle statischen Klassen sind auch versiegelte Klassen. Die C#-Programmiersprachenspezifikation lässt das Angeben beider Modifizierer für eine Klasse nicht zu, und der Compiler meldet das als einen Fehler.

Um diesen Fehler zu beheben, entfernen Sie sealed aus der Klasse.

CS1699: Warnung vor der Verwendung von Attributen zur Assemblysignierung

Die Assemblyattribute zum Angeben der Signatur wurden aus dem Code in die Compileroptionen verschoben. Durch das Verwenden des AssemblyKeyFile-Attributs oder des AssemblyKeyName-Attributs in Code wird nun diese Warnung erzeugt.

Sie sollten anstelle dieser Attribute die folgenden Compileroptionen verwenden:

Nicht zu den Befehlszeilenoptionen zu wechseln, kann die Compilerdiagnose bei der Verwendung von friend-Assemblys beeinträchtigen.

Wenn Sie /warnaserror (Warnungen als Fehler behandeln) (C#-Compileroptionen) verwenden, können Sie diesen wieder in eine Warnung konvertieren, indem Sie auf der Compiler-Befehlszeile /warnaserror-:1699 hinzufügen. Sie können die Warnung ggf. abstellen, indem Sie /nowarn:1699 verwenden.

Die inkrementelle Kompilierung wurde entfernt.

Die /incremental-Compileroption wurde entfernt. Das Feature Bearbeiten und Fortfahren ersetzt diese Funktionalität.

Siehe auch

Weitere Ressourcen

C#-Compileroptionen

Anzeigen:
© 2014 Microsoft