Announcement

Collapse
No announcement yet.

von VS2003 nach VS2005

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • von VS2003 nach VS2005

    Hallo,

    ich muss ein altes vb.net Projekt von VS2003 nach VS2005 konvertieren, bzw. alle Fehler und Warnung, die nach dieser Konvertierung entstehen bereinigen.
    Die Fehler hab ich alle ruck-zuck behaben können, nun kommen die Warnungen.
    Dabei hab ich n ganzen haufen, die so aussehen:

    warning BC42036: In Ausdrücken für Select- oder Case-Anweisungen werden Operanden vom Typ "Object" verwendet. Dies kann Laufzeitfehler verursachen.
    Kann mir jemand grob sagen wie ich die beheben kann?

    Danke

  • #2
    Der Ausdruck hinter Select Case oder einem deiner Case Zweige ist vom Typ her nur Object und nichts konkreteres. Passiert z.B. wenn im Select Case ein Methodenaufruf benutzt der einfach nur Object zurückliefert obwohl man ja selber meint da kommt immer nur ein Integer

    Da nicht jede Klasse auch gezwungenermassen einen Vergleichsoperator hat der gebraucht wird um den passenden Case Zweig auszuwählen meckert der Compiler da ja zur Laufzeit hier irgendein Typ stehen könnte.

    Um die Warnung loszuwerden solltest du alle benutzten Ausdrücke (ob nun hinter select case oder case) auf ihren richtigen Typ casten.

    Comment


    • #3
      ok, das konnte ich erfolgreich ändern.

      Jetzt ist es so, das wenn ich das "aufgewertete" Programm starte, es an sich auch läuft. Allerdings bekomme ich keine Daten von der DB mehr und auch die Darstellung ist grob verschoben.

      Im Ausgabefenster von VS2005 (Ausgabe anzeigen von Debuggen) sehe ich, das mein Programm 1001 Exceptions feuert. Aber sehe ich auch wirklich NUR in dem Fenster. Eine wirkliche Meldung bekomme ich nicht.

      Hier ein paar Beispiele:
      Eine Ausnahme (erste Chance) des Typs "System.IndexOutOfRangeException" ist in System.Data.dll aufgetreten.
      Eine Ausnahme (erste Chance) des Typs "System.ArgumentException" ist in Microsoft.VisualBasic.dll aufgetreten.
      System.Data.OleDb.OleDbException: Die verzögerte Bereitstellung konnte nicht beendet werden.
      Eine Ausnahme (erste Chance) des Typs "System.Runtime.InteropServices.COMException" ist in MyProgramm.exe aufgetreten.
      Eine Ausnahme (erste Chance) des Typs "System.Data.OleDb.OleDbException" ist in System.Data.dll aufgetreten.
      Hat jemand einen Tip, wie ich dessen Herr werden kann?

      Comment


      • #4
        Hi Andreas !

        Das liegt vielleicht am Framework.
        VS 2003 benutzt 1.0.
        VS 2005 benutzt 2.0.

        Überprüfe mal die Pfade unter Projekteigenschaften bei den Verweisen.

        Gruss Sascha

        Comment


        • #5
          die sind alle Framework 2.0 Pfade. Ich denke das soll ja auch so sein, sonst hätt ichs ja net hochhieven brauchen, oder?

          Comment


          • #6
            Hi !
            Ich hatte auch son Problem.
            von V2003 nach V2005.
            Ich dachte das wäre abwärtskompatible.
            Ist es aber nicht.
            Beim Konvertierung hatte ich kein Fehler.
            Aber als ich auf eine Compact SQL DB zugreifen wollte bekam ich Fehler.
            Als ich mal nachgeguckt hatte, was für Pfade bei einem "Neuen" Projekt
            stehen und bei einem Konvertierten, habe ich komischerweise Unterschiede gesehen.

            Ich habe das dann so gemacht.
            Konvertiertes Projekt auf.
            Neues Projekt auf.
            Und habe alle Komponeten und Proceduren einfach rüber kopiert.
            Dann lief das.

            Gruss Sascha

            Comment


            • #7
              ja, bei nem kleinen Projekt würde ich es glatt auch so machen, aber meines hier ist ein wenig zu umfangreich für so eine Aktion

              Comment

              Working...
              X