(vb.net) läuft nicht unter .net 2.0

deusfalsus

Erfahrenes Mitglied
Folgende Anwendung läuft bei mir problemlos (Visual Studio 2008 Express), aber auf dem Client-PC, der nur .NET 2.0 installiert hat, kommt nur eine Felhlermeldung ohne inhaltliche Aussage, die sich als Bericht an Micosoft verschicken will.

Visual Basic:
        If IO.File.Exists("C:\testlog.txt") Then
            If New IO.FileInfo("C:\testlog.txt").Length > 100000 Then
                Dim zeilen As New List(Of String)
                Dim datei As New IO.StreamReader("C:\testlog.txt",System.Text.Encoding.Default)


                While Not datei.EndOfStream
                    zeilen.Add(datei.ReadLine())

                End While

                datei.Close()
                datei.Dispose()

                Dim datei2 As New IO.StreamWriter("C:\testlog-neu.txt", False)

                For i = zeilen.Count - 100 To zeilen.Count

                    datei2.WriteLine(zeilen.Item(i - 1))
                Next

                datei2.Flush()
                datei2.Close()
                datei2.Dispose()
            End If
        Else : MsgBox("Datei nicht vorhanden")
        End If

Ich habe natürlich in den Projekteigenschaften eingestellt, dass das Zielframework Version 2.0 ist.
 
Hi,

hast du die Möglichkeit, die Anwendung mal auf dem Client-Rechner zu debuggen? Ist das der ganze Code oder nur ein Ausschnitt? Welche Betriebssysteme sind auf den beiden Rechnern?

Grüße, D.
 
Eine kompilierte .exe kann ich auf dem Client natürlich nicht debuggen.
Der Code ist der ganze. Auf beiden PCs läuft WinXP.
 
Hi,

aber falls du die Möglichkeit hast, auf dem Client-Rechner das Projekt zu debuggen, könnte das vielleicht hilfreich sein. Wenn nicht, kannst du ja in die Assembly ein Pseudo-Debugging einbauen: gib einfach nach jeder Code-Zeile eine eindeutige Zeilennummer plus evtl. Variableninhalte auf der Konsole aus. So kannst du zumindest sehen, bis zu welcher Zeile das Programm ausgeführt wird, bevor es abstürzt.

Oder versuch einfach mal ein simples Hello-World-Programm auf dem Client-Rechner ausführen zu lassen. Wenn das schon nicht klappt, würde ich mal behaupten, dass die .net-Installation auf dem PC irgendwie fehlerhaft ist.

Grüße, D.
 
habe folgendes in den Code eingefügt und dadurch keinen "sinnlosProgrammabruch" mehr, sondern eine aufschlussreiche Fehlerausgabe. (Es lag am fehlenden Schreibschutz des Clients auf den Ordner)
Visual Basic:
On Error GoTo fehler

....


fehler:
        System.Console.WriteLine(Err.Description)
        System.Console.WriteLine("Beliebige Taste zum beenden drücken!")
        System.Console.ReadKey()
 
Hi,

ich glaube, es wäre angebrachter, zur Behandlung von Laufzeit-Exceptions Try-Catch-Konstrukte zu benutzen. Dieses "On Error Goto..."-Zeug ist ein leidiges Überbleibsel aus vorangegangenen Versionen von Visual Basic.

Visual Basic:
Try
    '...
Catch ex As Exception
    Console.WriteLine(ex.Message)
    Console.WriteLine("Beliebige Taste zum beenden drücken!")
    Console.ReadKey()
End Try

Grüße, D.
 

Neue Beiträge

Zurück