Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   C# Abhängigkeiten finden (https://www.delphipraxis.net/79261-abhaengigkeiten-finden.html)

Luckie 19. Okt 2006 10:03


Abhängigkeiten finden
 
Ich benutze eine aus java Code erstellte .NET Assembly. Wenn ich die Anwendung ausführe, bekomm eich folgende Exception:
Zitat:

Die Datei oder Assembly hib3test2, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null oder eine Abhängigkeit davon wurde nicht gefunden. Das System kann die angegebene Datei nicht finden.
So nützt mir diese Meldung recht wenig. Kann ich irgendwie rausbekommen, welche Abhängigkeit er nicht findet? Die fragliche Assembly liegt im Anwendungsverzeichnis, sollte er also finden und es sollte an einer Abhängigkeit liegen.

Khabarakh 19. Okt 2006 10:37

Re: Abhängigkeiten finden
 
Das ist per Reflection.Assembly möglich, allerdings ersparen dir viele Tools das Selbstschreiben. Ein schon im SDK enthaltenes wäre IL-Dasm, was aber nicht einmal halb so schön ist wie Lutz Roeders Reflector ;) .

Luckie 19. Okt 2006 10:58

Re: Abhängigkeiten finden
 
Code:
- hib3test2
   Depends On
      IKVM.GNU.Classpath
      IKVM.Runtime
      mscorlib
      mscorlib
Bis auf die mscorlib liegen auch alle dateien im Anwendungsverzeichnis. :gruebel:

Jürgen Thomas 19. Okt 2006 11:08

Re: Abhängigkeiten finden
 
Das NET-Tool FusionLogView - zu finden unter (InstallPfad)\v2.0\Bin\FUSLOGVW.exe - zeigt im Detail, welche Assembly mit welcher Version (einschl. PublicKeyToken) wo gesucht wird und bei welcher Assembly es scheitert.

Danach hilft Roeder's Reflector, um die richtigen Versionen festzustellen.

Gruß Jürgen

Luckie 19. Okt 2006 11:12

Re: Abhängigkeiten finden
 
Hm, wie benutze ich das Programm FUSLOGVW? Wenn ich das laufen habe und starte meine Anwendung und führe den Code aus, der die Exception verursacht (Die abgefangen wird.) passiert da irgendwie nichts.

Jürgen Thomas 19. Okt 2006 11:16

Re: Abhängigkeiten finden
 
Zitat:

Zitat von Luckie
Hm, wie benutze ich das Programm FUSLOGVW? Wenn ich das laufen habe und starte meine Anwendung und führe den Code aus, der die Exception verursacht (Die abgefangen wird.) passiert da irgendwie nichts.

Ich weiß, das verhält sich etwas seltsam (deshalb meide ich es, aber manchmal muss es sein). Du musst zuerst FUSLOGVW starten, dann Deine Anwendung starten, zwischendurch FUSLOGVW aktualisieren; danach erhältst Du mit Doppelklick auf eine passende Zeile - die auf Deine Anwendung hinweist - das Zugriffsprotokoll.

Gruß Jürgen

PS. nur aus der Erinnerung heraus beschrieben

Luckie 19. Okt 2006 11:21

Re: Abhängigkeiten finden
 
So habe ich es gemacht. Aber ich sehe da trotzdem nichts. Egal, ob ich das programm aus dem VS starte oder direkt die Exe aus dem Debug-Ordner. :gruebel:

Jürgen Thomas 19. Okt 2006 11:31

Re: Abhängigkeiten finden
 
Zitat:

Zitat von Luckie
So habe ich es gemacht. Aber ich sehe da trotzdem nichts. Egal, ob ich das programm aus dem VS starte oder direkt die Exe aus dem Debug-Ordner. :gruebel:

Also ich habe es jetzt schnell mal gestartet:
  • FUSLOGVW gestartet
  • eigenes Programm gestartet
  • Zeile im großen Fenster markiert, nämlich mit Programmnamen in der ersten Spalte und aktuelle Zeit in der dritten Spalte
  • Button 'Protokoll anzeigen'
Alles wird angezeigt wie gewünscht. Jürgen

Luckie 19. Okt 2006 11:36

Re: Abhängigkeiten finden
 
Ich starte auch zu erst FUSLOGVW. dann meine Anwendung. Dann klicke ich in FUSLOGVW auf "Refresh". Der Listview ist immer noch leer. Dann klicke ich auf den Button in meiner Anwendung, der den Fehler auslöst. FUSLOGVW ist immer noch leer. Auch ein Klicken auf "Refresh" ändert nichts daran.

Ich habe hie rübrigens nur Version v1.1

Jürgen Thomas 19. Okt 2006 12:12

Re: Abhängigkeiten finden
 
Ich habe jetzt bei mir eine Exe für NET 1.1 gesucht und gestartet. Gleicher Verlauf, gleiches Ergebnis:
  • FUSLOGVW von 1.1 gestartet
  • eigenes Programm gestartet
  • Refresh - danach kamen bei mir alle Anzeigen
  • Zeile im großen Fenster markiert, nämlich mit Programmnamen in der ersten Spalte und aktuelle Zeit in der dritten Spalte
  • Button 'Protokoll anzeigen' bzw. 'View Log'
Alles wird angezeigt wie gewünscht. Jürgen

Die Anzeige benutzt übrigens den Internet Explorer.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:32 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz