2016-03-19 19 views
1

Ich habe versucht, zwei C#. DLL mit IronPython zu importieren. Einer heißt m1.sdk.dll, der andere heißt m1.sdk.something.dll. Aber ich habe Fehler bekommen. Die Fehlermeldung besagt, dass sie in m1.sdk.something.dll keinen Typ finden konnte.Importieren Sie C# dll die punktierten Namen Dateien in IronPython-Probleme

Aber sie werden durch clr.AddReferenceToFileAndPath() und Import von IronPython geladen. Ich sehe sie getragen durch clr.References

Gibt es eine Möglichkeit, diese DLLs zu laden, so trotz des Namens punktiert IronPython sehen, wie das gleiche Modul?

import clr 

clr.AddReferenceToFileAndPath("c:\\path_to_file_\\m1.sdk.dll") 
clr.AddReferenceToFileAndPath("c:\\path_to_file_\\m1.sdk.something.dll") 

import m1.sdk 
import m1.sdk.something  # The error occurs here 

* Traceback (jüngste Aufforderung zuletzt):

Datei "" Linie 1 in

Import: Kein Modul mit dem Namen etwas *

enter image description here

+0

Bitte fügen Sie Ihren Code sowie genaue Ausnahmen/Stacks hinzu. –

+0

Ich denke, die Python verstehen, dass sie das gleiche Modul sind, aber nicht, es ist ein Modul in der anderen Laufzeit anhängen? –

+0

Haben Sie verifiziert, dass sowohl 'm1.sdk.dll' als auch' m1.sdk.something.dll' tatsächlich Objekte in den Namespaces 'm1.sdk' und' m1.sdk.something' enthalten? Sie importieren Namespaces, keine Assemblys. Es ist nicht erforderlich, dass eine Assembly Namespaces definieren muss, die dem Namen der Assemblydatei entsprechen. –

Antwort

0

Das Problem Sie stehen wahrscheinlich nicht mit dem Namen oder der Ähnlichkeit der beiden referenzierten Assemblys in Verbindung. No module named something wird auftreten, wenn keine öffentlichen/sichtbaren Typen mit dem Namespace m1.sdk.something gefunden werden.

+0

Danke Simon, ich werde die Datei überprüfen, die ich hier habe. –

+1

Sie hatten Recht Simon. Fehlender Typ –