EXE starte auf fremden PC nicht

  • VB.NET

Es gibt 25 Antworten in diesem Thema. Der letzte Beitrag () ist von dozentx.

    EXE starte auf fremden PC nicht

    Hallo, bin neu hier.
    Habe folgendes Problem. Habe ein kleines Programm geschrieben, aber es läuft auf einem anderen PC nicht.
    Meines erachtens habe ich alle Dateien mit genommen, aber es startet einfach nicht´.
    Habe ein älteres Programm auf dem anderen PC gestartet, das läuft. Nur das Neue nicht.
    Egal ob ich nur Debug oder Relase nehme, immer dasselbe, es startet nicht.
    Vielleicht hat jemand einen Tipp für mich.

    Windows 10, VB-Express 2017, NET 4.5.1 in dem Prgramm wird der OLEDB 12 Provider für die Verbindung zur Datenbank aufzubauen.

    Danke schon mal.

    Thema verschoben ~VaporiZed

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VaporiZed“ ()

    @dozentx Willkommen im Forum. :thumbup:
    Kann es sein, dass die Datenbank-Installation auf dem fremden PC fehlt?
    Welche Fehlermeldung kommt?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Vergleiche den Code, es gibt Programme wie diff auch für Windows beispielsweise.
    Dann untersuche die Unterschiede genau, das wäre eine Herangehensweise.

    Eine andere setzt voraus, dass deine Applikation auf WinForm basiert.
    Keinen Code ins Form_Load packen, sondern alles in Form_Shown. In Form_Load werden Fehler idR gar nicht angezeigt. Wenn dein Programm da chrasht, siehst du nix.
    Wobei du analog zu oben auch am ehesten hier fündig wirst, wenn Veränderungen dafür sorgen, dass dein Programm scheinbar gar nicht erst startet.
    Wenn hier also dein OLEDB Provider bereits verwendet wird.......

    Dksksm schrieb:

    Vergleiche den Code
    Was ganz genau soll er denn vergleichen :?:
    Die identischen Exen usw.?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @Dksksm Lies Dir den Post #1 noch mal gaaaanz genau durch.
    Da ist vom Programm mit diversen Dateien, wohl Datenbank und Co die Rede, nicht aber von Quellen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Der klassiker wäre, dass man feste Pfade (z.b. zur DB) einprogrammiert hat, die es auf dem anderen PC nicht gibt.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    @All: Vielleicht warten wir erest mal ab, bis sich @dozentx selbst wieder zu Wort meldet.
    Spekulatius backen wir erst wieder zu Weihnachten.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hallo, erstmal Danke für die schnellen Antworten, aber bis jetzt hat es leider nicht geholfen.
    Habe mal aus den Form_Load die Daten entfernt, aber es geht trotzdem nicht.
    Der ODBC Treiber für Access Datenbanken ist auf dem Fremdrechner vorhanden.
    Es kommt keine Fehlermeldung, der Cursor kreiselt, aber mehr nicht.

    VB.NET-Quellcode

    1. '
    2. Private Sub frmStart_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    3. '
    4. Me.Location = New System.Drawing.Point(0, 0)
    5. '
    6. ' Startposition = Manual
    7. '
    8. Me.Location = New System.Drawing.Point(0, 0)
    9. '
    10. End Sub
    11. '
    12. ' beim Laden vom frmStart den Block auslesen
    13. Protected Overrides Sub Onload(ByVal e As System.EventArgs)
    14. ' Ausgabe des aktuellen Druckers
    15. txtAktDrucker.Text = GetDefaultPrinter()
    16. '
    17. ' den aktuellen Block einlesen
    18. Call leseBlock()
    19. '
    20. ' die aktuellen Daten vom Block einlesen
    21. Call leseDaten()
    22. '
    23. End Sub

    So schaut der Anfang von meinem kleinen Programm aus.

    CodeTags gesetzt ~VaporiZed

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VaporiZed“ ()

    @dozentx Dein Code-Ausschnitt ist da nicht sehr hilfreich.
    Übrigens kannst Du Code als Code formatieren:
    Markiere den Code und drück den VB.NET-Cutten über dem Textfeld.
    ====
    Den Inhalt der Prozedur Onload(...) kannst Du nach frmStart_Load() verschieben,
    Das Setzen der Fensterposition soll was bezwecken? Es wird nicht funktionieren, da bei Dir die .StartPosition im Designer wohl nicht auf Manual steht.
    ICh denke mal, dass (mindestens) eine der Prozeduren leseBlock() und leseDaten() nicht zurückkommt.
    Füge mal jeweils danach eine MessageBox ein, die anzeigt, dass das Programm da ankommt.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hallo,
    habe jetzt mal die msgboxen eingearbeitet, auf meinem Rechner werden sie angezeigt, beim Fremdrechner nicht.
    Habe auch noch die Option -- Strict on -- eingearbeitet, die Fehlermeldungen abgearbeitet, aber leider auch kein Erfolg.
    Bei meinem Rechner ist das Programm im Taskmanager sichtbar, beim Fremdrechner nicht.

    Danke nochmal.
    @dozentx Was genau passiert bzw. soll passieren vor der 1. MessageBox?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Also, dass Programm soll Daten aus einer MDB einlesen, diese werden dann in einem DataGrid zur Verfügung gestellt.
    Der ODBC Treiber bzw. Provider ist vorhanden, die Pfade sind hinterlegt. Trotzdem sehe ich auf dem Fremdrechner nichts.
    Bei mir an dem rechner läuft alles zur Zufriedenheit ab.

    Danke.

    dozentx schrieb:

    aus einer MDB einlesen
    Ist die vorhanden?
    Hast Du Code im Konstruktor (Sub New())?
    Wie verhält sich das Programm, was tut es, was tut es nicht, nachdem es nichts getan hat?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Vermutlich tritt eine Exception im Form_Load oder OnLoad auf. Die werden vom Framework verschluckt (beziehungsweise war das ein Problem, das ich in der Vergangenheit hatte und das auch sicher schon 50 Mal hier im Forum am Ende die Ursache für so Verhalten war) und du kriegst keine Meldung. Beweg den Code mal testweise in nen Button auf der Form und führ ihn dann aus - wenn das das Problem war, kriegst du dann die Fehlermeldung, die du brauchst, um den Fehler zu finden (und dann nach dem Fixen den Code zurück ins Load machen)
    Hallo, habe jetzt mal die Buttons eingearbeitet, aber da bekomme ich keine Fehlermeldung.
    Mit den MSGBOXEN und den BUTTONS habe ich am Fremdrechner dasselbe Problem.
    Was ich sehe ist nichts. Der Cursor kreiselt, im Task-Manager steht auch nichts.

    Kann ja jemanden den Quelltext in der DropBox zur Verfügung stellen.

    Danke nochmals für eure Bemühungen.

    dozentx schrieb:

    Kann ja jemanden den Quelltext in der DropBox zur Verfügung stellen.
    Das bringt nix, wir müssen zunächst das Problem identifizieren.
    Was sind das für Rechner: 32 Bit / 64 Bit, welches Betriebssysten, welches Framework?
    Was ist das für ein Programm: x86, x64, AnyCPU, welches Framework?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Mein Rechner ist ein 64 Bit mit Windows 10, das Framework ist 4.6.1.
    VS-Express 2017 für Windows, Programm = AnyCPU bevorzugen Win 32 Bit.
    Option Strict On wurde eingestellt, List & Label Version 17 für die Druckausgabe.
    Die DLL von List & Label wurde auf dem anderen Rechner eingespielt.

    Der andere Rechner ist ein Win10 Rechner mit 32 Bit.

    Hoffe das diese Angaben ausreichen.

    mfg Uwe

    dozentx schrieb:

    Die DLL von List & Label wurde auf dem anderen Rechner eingespielt.
    Falls das eine Installation ist, genügt das nicht, da musst Du auf dem anderen Rechner dies ebenfalls installieren.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!