Announcement

Collapse
No announcement yet.

Ausnahmefehler ? - Aber welcher nur ?

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

  • Ausnahmefehler ? - Aber welcher nur ?

    Hallo

    Ich habe folgendes Problem, ich compiliere eine Anwendung mit Delphi 8 auf einen Computer.
    Nun kopiere ich dieses Programm auf einen anderen Computer, auf dem auch ein Delphi 8 installiert ist (sprich .NET Framework ist installiert). Wenn ich dieses Programm starte, bekomme ich immer einen Ausnahmefehler.

    Die Anwendung hat einen Ausnahmefehler verursacht, der nicht verarbeitet werden konnte.
    Process-ID=0x8b8 (2232), Thread-ID=0xb70 (2928)

    Nun der Clou. Wenn ich diese selbe Anwendung nun auf diesen PC compiliere, funktioniert sie auf einmal.

    Einen eigenen Exceptionhandler habe ich bereits in die dpr eingebaut. Der hilft nix. Der Fehler scheint schon aufzutreten, bevor er beim dpr innerhalb des begin end blocks kommt. Dies habe ich auch mit einen Messagebox.Show bereits ausgetestet.

    Was ist mein Problem ?
    Wie kann ich solch ein Problem selber auf die Spur kommen ?

  • #2
    Hallo,

    das .NET Framework SDK stellt im Unterverzeichnis <i>FrameworkSDK\Tool Developers Guide\Samples\adepends</i> das Tool <b>Assembly Manifest Dependencies</b> zur Verfügung, das alle vom Programm benötigten Assemblies übersichtlich auflistet. Alle dort aufgeführten Assemblies müssen auch auf dem anderen Rechner verfügbar sein, um die Anwendung erfolgreich ausführen zu können.

    Alternativ listet der <b>Assembly Binding Log Viewer</b> (FUSLOGVW.EXE) die "Post-Mortem"-Fehlermeldungen auf, die von der CLR beim fehlerhaften Startversuch mitprotokolliert wurden.

    Handelt es sich um eine VCL.NET-Anwendung oder eine Windows Forms-Anwendung (FCL)

    Comment


    • #3
      Hallo,

      das .NET Framework SDK stellt im Unterverzeichnis <i>FrameworkSDK\Tool Developers Guide\Samples\adepends</i> das Tool <b>Assembly Manifest Dependencies</b> zur Verfügung, das alle vom Programm benötigten Assemblies übersichtlich auflistet. Alle dort aufgeführten Assemblies müssen auch auf dem anderen Rechner verfügbar sein, um die Anwendung erfolgreich ausführen zu können.

      Alternativ listet der <b>Assembly Binding Log Viewer</b> (FUSLOGVW.EXE; siehe angehängte Abbildung) die "Post-Mortem"-Fehlermeldungen auf, die von der CLR beim fehlerhaften Startversuch mitprotokolliert wurden.

      Handelt es sich um eine VCL.NET-Anwendung oder eine Windows Forms-Anwendung (FCL)

      Comment


      • #4
        Es handelt sich um eine reine Winforms - Anwendung.

        Übrigens gibt es einen einfachen Schalter der mir verbietet vcl zu benutzen oder kann man es irgendwie ganz leicht prüfen ob doch irgendwo aus versehen vcl mitreingerutscht ist ?

        Aber wie gesagt Delphi 8 war auf beiden Rechnern installiert

        Comment


        • #5
          Hallo,

          bei einer Windows Forms-Anwendung sollte das Problem nicht auftreten (bei einer VCL.NET-Anwendung ist die <i>TypeInitializationException</i> schon häufiger anzutreffen).

          Bei meinem Beispiel <i>Delphi8Neu.exe</i> von der DVD zum Delphi 8-Sonderheft tritt das Problem nicht auf. Diese EXE kann ich auch auf einem "fremden" Rechner (bei dem ebenfalls Delphi 8.02) installiert ist, aufrufen (obwohl die EXE von der DVD mit Delphi 8.0 kompiliert wurde).

          Bindet die störrische Anwendung die Delphi 8-RTL (<i>Borland.Delphi.dll</i>) über <b>Units verknüpfen</b> statisch ein? Wenn ja, verschwindet das Problem, wenn die Runtime nicht eingebunden wird, sondern erst dynamisch zur Laufzeit aktiviert wird

          Comment


          • #6
            Hallo Andreas,

            Ich glaube ich habe das Problem entdeckt.

            Im Projektmanager habe ich unter References VCL-Units entdeckt. Die habe ich jetzt erst mal entfernt. Denn ich nutze sie auch nicht. Ich gehe davon aus, dass dies mein Problem war. Naja man muss sich halt erst mal durch die neue Materie finden.

            Gruß wellecente

            Comment

            Working...
            X