Verwendung einer .NET Bibliothek mit der DOTNET-Klasse

pschilling

Erfahrenes Mitglied
Hallo Leute,

hat von euch schon mal jemand eine .NET Bibliothek in PHP verwendet?

Laut der Documentation sollte das ja eigentlich mit der DOTNET-Klasse funktionieren.

Bei mir meckert er ständig, das er die angegebene Datei nicht finden kann.

Ich habe die dll signiert und die Assembly-COM sichtbar gemacht.

In PHP versuche ich die folgendermaßen auf die dll zuzugreifen:

PHP:
    $full_assembly_string = 'PHPTest, Version=1.0.0.0, Culture=neutral, PublicKeyToken=a82aa0bd80b43631';
    $full_class_name = 'PHPTest.Test';
    $sps= new DOTNET($full_assembly_string, $full_class_name);

Dass ist die Fehlermeldung, die er ausspuckt:

Fatal error: Uncaught exception 'com_exception' with message 'Failed to instantiate .Net object [CreateInstance] [0x80070002] Das System kann die angegebene Datei nicht finden. ' in D:\xampp\htdocs\test.php:4 Stack trace: #0 D:\xampp\htdocs\test.php(4): dotnet->dotnet('PHPTest, Versio...', 'PHPTest.Test') #1 {main} thrown in D:\xampp\htdocs\test.php on line 4

Wo muss die dll platziert werden?
Ich habe schon folgendes versucht:
1. Die dll liegt im selben Verzeichnis wie die PHP-Datei
2. Die dll liegt im Windows\system32-Ordner
3. Ich habe die dll in den ext-Ordner von php gelegt und in der php.ini folgende Zeile hinzugefügt:
extension=PHPTest.dll

Ich wäre sehr dankbar wenn mir jemand auf die Sprünge helfen würde!

Schöne Grüße,
Peter
 
Jo, hat sich auch schon erledigt!

ich musste die dll noch mit dem gacutil dem Global Assembly Cache hinzufügen und den Apache anschließend neu starten..

Dann funzt das auch mt der C#-Dll :)
 
Ach ja, und falls jemand was ähnliches vorhat.

Wenn die .NET-dll selbst von anderen dll's abhängig ist müssen diese in das Apache Hauptverzeichnis gelegt werden.
Erst dann werden diese auch gefunden..
 

Neue Beiträge

Zurück