Laden...

Programm läuft nicht auf andern Rechnern.

Erstellt von kl1mm vor 19 Jahren Letzter Beitrag vor 19 Jahren 6.826 Views
K
kl1mm Themenstarter:in
35 Beiträge seit 2005
vor 19 Jahren
Programm läuft nicht auf andern Rechnern.

Guten Abend,

ich habe ein kleines C#-programm mit #develop geschrieben, nix besonderes.
Auf meinem Rechern funktioniert das auch wunderbar.
Um es auf einem andern Rechner auch zum laufen zu bekommen muss man ja dort auch das .Net-Framwork installieren was ich auch getan habe. Allerdings kommt immer wenn ich das Programm auf dem andern Rechner strate eine Fehlermeldung die ich mir nicht erklären kann.
Bild von der Fehlermeldung im Anhang.
Muss man bei der Erstellung des Programms noch irgendwas beachten ? Z.B.: mit linken von irgendwelchen Libs ??? Order besonders Compielen und wenn ja wie, wo mache ich das in #develop.

Vielen Dank für eure bemühungen shon mal im vorraus.
mfg Kl1mm

Leben bedeutet lernen, leben bedeutet Veränderung... :]

N
118 Beiträge seit 2004
vor 19 Jahren

Welche assamblies verwendest du denn? Nur die standart assamblies oder auch andere?

versuch mal den prozess zu debugen.

cya

49.485 Beiträge seit 2005
vor 19 Jahren

Hallo kl1mm,

die Meldung besagt nur, dass eine Ausnahme aufgetreten ist. Wichtig ist aber zu wissen, welche Ausnahme aufgetreten ist. Wenn du das Programm als /target:exe übersetzt, wird dir in der Console des Programms der Text der Exception ausgegeben. Wenn du das Programm mit /debug übersetzt, siehst du in der Ausnahme sogar die Codezeile in der sie aufgetreten ist (auf deinen Code bezogen).

herbivore

K
kl1mm Themenstarter:in
35 Beiträge seit 2005
vor 19 Jahren

Hmm, erstmal großen Dank für die Tipps,
ich werde das mal ausprobieren mit /target:exe und /debug, mit ein bischen Glück finde ich den Fehler. Nur hab ich eigentlich "alle" möglichen Exeptions mit "try catch"-Blöcken abgefangen.

shaun wa ma mfg kl1mm

Leben bedeutet lernen, leben bedeutet Veränderung... :]

502 Beiträge seit 2004
vor 19 Jahren

Ich bin mir zwar nicht sicher, aber ist das nicht die "Standartmeldung" wenn Du versuchst eine .net Applikation zu starten obwohl kein Framework installiert ist?

Bart Simpson

Praxis ist wenn alles funktioniert und keiner weiss warum.
Theorie ist wenn man alles weiss, aber nichts funktioniert.

Bei uns wird Theorie und Praxis vereint: Nichts funktioniert und keiner weiss warum...

K
kl1mm Themenstarter:in
35 Beiträge seit 2005
vor 19 Jahren

Ja, die Meldung sieht genauso aus!
Wenn ich versuche auf meinem USB-Stick ein .Net-Framwork Programm zustarten bekomme ich den gleichen Fehler. Allerdings habe ich ja mit dem Windows-Update das Framework auf dem andern PC installiert.
Aus diesem Gurnd verstehe ich das ja auch nicht

so far mfg kl1mm

Leben bedeutet lernen, leben bedeutet Veränderung... :]

49.485 Beiträge seit 2005
vor 19 Jahren

Hallo Mr. Bart Simpson,

diese Meldung kommt nur, zumindest aber auch, wenn das Framework installiert ist, die Anwendung läuft, in der Anwendung eine Exception auftritt, die aber nicht gefangen wird.

herbivore

502 Beiträge seit 2004
vor 19 Jahren

Also wenn ich eine Exception nicht abfange, dann kommt ein ganz anderer Dialog

Bart Simpson

Praxis ist wenn alles funktioniert und keiner weiss warum.
Theorie ist wenn man alles weiss, aber nichts funktioniert.

Bei uns wird Theorie und Praxis vereint: Nichts funktioniert und keiner weiss warum...

49.485 Beiträge seit 2005
vor 19 Jahren

Hallo Mr. Bart Simpson,

was kommt den, wenn du runter scrollst? Da müsste "InnerException" stehen. Ab da wird es interessant. Es reicht, wenn du den Text postet. Brauchst nicht immer ein Bild anzuhängen. Vielleicht siehst du ja aber auch selber die Ursache.

herbivore

502 Beiträge seit 2004
vor 19 Jahren

Das war nur eine kurze Demo.... (ich hab einfach throw new Exception('...') gemacht, um zu demonstrieren, dass da normalerweise keine Standart-Windows-Messagebox kommt (wie in der Ursprünglichen Frage zu sehen), sondern die CLR (sprich:das .net Framework) eine nichtabgefangene Exception in einem speziellen "Standartdialog" (nämlich dem aus dem Screenshot) anzeigt.
Was da als Text zu sehen ist, ist also ein (für die Frage) völlig uninteressanter Stacktrace meines kleinen Demoprogramms.

Korrigiert mich, wenn ich mich irre, aber wenn kl1mm nun die Meldung in der Messagebox kriegt, so deutet das für mich darauf hin, dass es eben nicht an einer Exception liegt, die irgendwo "in seinem Code" geschmissen wird, sondern es viel mehr um ein grundsätzliches Problem der CLR handelt - z.B. weil eben das Framework nicht da ist. (Eine .net App ist letzendlich ja immer noch eine normale Windows PE-Exe, die als allererstes mal versucht die Libraries des Frameworks zu laden und an diese die Kontrolle zu übergeben - Erst dann kommt Dein eigentlicher Code zur Ausführung und würde normalerweise auch im Falle einer Exception dann von der CLR sauber abgehandelt, nämlich durch anzeigen des Dialogs aus meinem ersten Posting... Wenn aber davor schon was schief geht, dann kommt eben das "darunter liegende Standartverhalten" zum Vorschein - Die Messagebox.)

Bart Simpson

Praxis ist wenn alles funktioniert und keiner weiss warum.
Theorie ist wenn man alles weiss, aber nichts funktioniert.

Bei uns wird Theorie und Praxis vereint: Nichts funktioniert und keiner weiss warum...

49.485 Beiträge seit 2005
vor 19 Jahren

Hallo Mr. Bart Simpson,

hups du bis ja gar nicht der Themenstarter. Jetzt hab ichs aber gescheckt. Dann ist mir auch klar, warum du ein Bild angehangen hast.

Wenn ich auch so ein Testprogramm starte, kriege bei .NET 1.1 und 2.0 unterschiedliche MessageBoxen. Bei 1.1 ist es genau die MessageBox wie oben. Also Framework installiert, Exception geworfen, nicht gefangen, bringt bei mir die MessageBox von ganz oben.

Also Korrektur erfolgt! 🙂

herbivore

502 Beiträge seit 2004
vor 19 Jahren

...strange! Ich arbeite schon seit Version 1.0 Beta 2 mit dem .net Framework - und das auf den unterschiedlichsten Systemen. Aber: Ich wüsste jetzt keinen Fall wo ich mit installiertem Framework (bis hin zur Beta2 vom 2.0er) bei einer nicht abgefangenen Exception die Messagebox von ganz oben gekriegt hätte - Das schliesst natürlich nicht aus, dass dies doch vorkommen kann (wenn ich's auch bis eben für unwahrscheinlich gehalten hätte).

Aber gerade bei'm 1.1.er (mit dem ich aktuell arbeite) habe ich immer den Dialog aus meinem Posting. Ich bin zwar nicht 100%ig sicher, aber ich würde ein Bierchen darauf wetten, dass es daran liegt dass das Framework nicht (oder auch "nicht sauber") installiert ist (Alle Doku's aus der MSDN sprechen meiner Meinung nach dafür)

Falls jemand doch ein (am besten reproduzierbares) Gegenbeispiel kennt, bin sehr daran interessiert - könnte für eventuelle Testszenarien recht wichtig sein...

@kl1mm:
Was mir grad noch eingefallen ist: Wenn ich mal davon ausgehe, dass ich mich irre und es doch ein sauber installiertes Framework sein kann, dass eine Exception so zum Ausdruck bringt, wie Du das kriegst könnte es am USB-Stick liegen...
Sowas wird doch als Wecheselplatte eingeklinkt und dann kann die .net Framework Security dem Teil normalerweise erst mal nicht vertrauen, oder?
Versuch doch einfach mal die App mitsamt den DLL's und was sonst so nötig ist auf die lokale Platte zu schieben und dann zu starten.

Bart Simpson

Praxis ist wenn alles funktioniert und keiner weiss warum.
Theorie ist wenn man alles weiss, aber nichts funktioniert.

Bei uns wird Theorie und Praxis vereint: Nichts funktioniert und keiner weiss warum...

1.549 Beiträge seit 2004
vor 19 Jahren

Daran Könnte es liegen.

aber mal eine ganz blöde Frage hast du Überhaubt die Richtige version auf dem anderen Rechner Installiert ?? oder vieleicht nur die 1.0 ?

Wir Arbeiten eigendlich nicht wir nehmen nur das geld

49.485 Beiträge seit 2005
vor 19 Jahren

Hallo Mr. Bart Simpson

ich arbeite schon seit Version 1.0 Beta 2 mit dem .NET Framework - und das auf den unterschiedlichsten Systemen 🙂 und bis auf die 2.0er beta kommt immer die oben beschrieben MessageBox. Ich habe aber auch kein VS oder änhliches installiert und Redist und SDK. Und reproduzierbar ist es bei mir auch. 🙂

Hallo S.H.-Teichhof,

wenn man die falsche Version installiert hat, dann sagt er das explizit.

herbivore

22 Beiträge seit 2004
vor 19 Jahren

Ich hatte mal ein Problem , bei dem ich das .net Proggi von einem 2k3-Server gestartet habe. Da hat die Code Access Security nicht gepasst. Also musste ich die Sicherheit in der Framwork Config herunterschrauben. Vielleicht liegt es ja daran??

Euer Cypher

C# Padawan

502 Beiträge seit 2004
vor 19 Jahren

Original von herbivore
Ich habe aber auch kein VS oder änhliches installiert und Redist und SDK. Und reproduzierbar ist es bei mir auch. 🙂
herbivore

Was genau hast Du denn drauf? Ich verwende auf meinem Rechner zum Entwickeln natürlich die SDK Version - aber auf den Rechnern auf denen meine "Machwerke" dann letzendlich zum Einsatz kommen ist normalerweise immer nur die Redist-Version (dotnetfx.exe heisst das Setup glaub ich, oder?).
Zusätzlich installiert ist eigentlich immer die aktuellste MDAC Version, derzeit MDAC_TYP_2_8_de.EXE.

Würd mich echt interessieren, wann genau das bei Dir auftritt - schliesslich bin ich der Idiot der als erstes gerufen wird, wenn in meiner Firma mal wieder was nicht läuft 😉

Bart Simpson

Praxis ist wenn alles funktioniert und keiner weiss warum.
Theorie ist wenn man alles weiss, aber nichts funktioniert.

Bei uns wird Theorie und Praxis vereint: Nichts funktioniert und keiner weiss warum...

49.485 Beiträge seit 2005
vor 19 Jahren

Hallo Mr. Bart Simpson,

ich kann es in der Tat nur für Entwicklungsrechner sagen. Also Redist und SDK. Alle Versionen bis einschließlich 1.1. Soweit ich das überblicke, egal ob mit oder ohne MDAC. Genau genug?

Dass es nur bei Entwicklungsrechnern auftritt kann insofern sein, als das bei OK das Programm abgebrochen wird und bei Abbrechen aber der Debugger gestartet wird (nette Logik, gell?). Vor diese Wahl will man den Endanwender vermutlich nicht stellen.

herbivore

502 Beiträge seit 2004
vor 19 Jahren

Aha! Jetzt macht das ganze auch Sinn! Du kannst auf einer Maschine immer nur einen Debugger als den Debugger eintragen. Wenn Du z.B. VS und Delphi auf einem Rechner hast, dann "streiten" sich die bei jedem Start darum, wer denn nun der Chef ist... Und so wie ich das sehe, ist die Messagebox wohl der Output des bei Dir / Euch installierten Debuggers. Deshalb kriegt man wohl auf den anderen Maschinen die .net Maldung, weil da kein Debugmanager drauf ist...

Lange Rede, kurzer Sinn: Unsere Debatte war umsonst 😉

Bart Simpson

Praxis ist wenn alles funktioniert und keiner weiss warum.
Theorie ist wenn man alles weiss, aber nichts funktioniert.

Bei uns wird Theorie und Praxis vereint: Nichts funktioniert und keiner weiss warum...

K
kl1mm Themenstarter:in
35 Beiträge seit 2005
vor 19 Jahren

Hi,
also ich bin echt am verzweifen, ich bekomme es einfach nicht hin, nun eine bitte würdet ihr euch das Prog (nicht gross) mal anschauen, und probieren ob ihr es bei euch zum laufen bekommt, bzw. auf einem nicht Entwicklungsrechner.

Ich hab das ganze mit #develop gecodet, und das ganze Projekt gezipt. Hab im Relaese Ordner auch eine der DBF Dateien reingelegt die später ausgewertet werden sollen.
Wäre euch wirklich dankbar für feedback, und ja ich bin nicht der beste und schönste Coder ;p

mfg kl1mm

Leben bedeutet lernen, leben bedeutet Veränderung... :]

137 Beiträge seit 2005
vor 19 Jahren

Also ich kann Dein Programm starten, bekomme hier aber direkt beim Start eine Exception (System.Drawing.Printing.InvalidPrinterException: No printers installed.) weil ich keinen Drucker installiert habe. Installieren kann ich keinen - höchste Zeit für eine Neuinstallation 🙁 Getestet habe ich mit dem 1.1er SDK.

1.549 Beiträge seit 2004
vor 19 Jahren

Bei mir läuft es auch aber wenn ich dir einen tip geben darf deinen aktueler standart odrner D:-myfiles-\Projekte\TabDruck\bin\Release ist sehr schlecht gewählt wenn ich das Programm starte kommt ein fehler erst wenn ich das Verzeichniss auf das Verzeichniss einstelle in dem die Probedatei wirklich liegt startet das Programm fehlerlos.
mein tip zum beheben: las beim 1.Start garkeine datei öffen sonderen einen dialog zum auswählen des richtigen ordners

Wir Arbeiten eigendlich nicht wir nehmen nur das geld

K
kl1mm Themenstarter:in
35 Beiträge seit 2005
vor 19 Jahren

Jo, danke
den Fehler hab ich mal beseitigt, aber bei meinem andern Problem bin ich noch nicht weiter gekommen!

mfg kl1mm

Leben bedeutet lernen, leben bedeutet Veränderung... :]

49.485 Beiträge seit 2005
vor 19 Jahren

Hallo kl1mm,

mich wundert etwas, dass du noch nicht herausgefuden hast, welche Exception geworfen wird - ich meine die, die die UnhandledException auslöst. Siehe dazu meinen Beitrag ganz oben. Und solange du diese Möglichkeit noch nicht ausgeschöpft hast - zumindest sehe ich das nicht - irritiert mich das du das Programm hier zur Fehlersuche einstellt.

herbivore

1.549 Beiträge seit 2004
vor 19 Jahren

Frage hast du die "neue"Version schon auf dem anderen Rechner ausprobiert??
2.hat der andere rechener einen drucker instaliert ?
3. wie wäre es wen du mal den ganzen code in ein try catch steckst und dir dann anzeigen läst was für ein fehler überhaubt auftritt, wenn du auf dem rechner keinen debuger drauf hast

Wir Arbeiten eigendlich nicht wir nehmen nur das geld