[Gelöst] - .net DLL lässt sich nicht einbinden

28. Mai 2013 14:20

Ich habe eine .net DLL, welches in den AddIns-Verzeichnissen vom Service und vom RTC liegt.

Ich möchte die nun in einer Codeunit ansprechen. Die DLL finde ich auch in der .NET Type List.
Wenn ich sie aber auswähle erscheint folgender Fehler:

Der Typ '' konnte nicht geladen werden.

Kann mir hier ev. jemand einen Tipp geben? Besten Dank im Voraus.
Zuletzt geändert von rotsch am 17. Juni 2013 13:54, insgesamt 1-mal geändert.

Re: .net DLL lässt sich nicht einbinden

2. Juni 2013 12:19

Hallo Roger,
da scheint's an der "Dll" zu klemmen. Ist das eine selbst geschriebene?
Wenn ja, mal den Code überprüfen.

MFG
Micha

Re: .net DLL lässt sich nicht einbinden

3. Juni 2013 07:34

Ist die dll signiert?

Volker

Re: .net DLL lässt sich nicht einbinden

3. Juni 2013 07:56

Fido hat geschrieben:Wenn ja, mal den Code überprüfen. MFG Micha


Hallo Micha,
ja, die DLL ist selber geschrieben, allerdings nicht von mir. Ich habe nun mal selber eine erstellt anhand eines Beispiels aus dem Forum hier. Das ist eine ganz einfache, 'platte' 'Hello-World'-DLL. Die funktioniert. Es muss also irgendwas an der DLL sein, das klemmt. Weiss nur noch nicht was.

Re: .net DLL lässt sich nicht einbinden

3. Juni 2013 07:57

vsnase hat geschrieben:Ist die dll signiert? Volker


Hallo Volker,
Da kenne ich mich zu wenig aus. Wie würde ich das bemerken, bzw. woran erkennt man das?

Re: .net DLL lässt sich nicht einbinden

3. Juni 2013 08:25

Kompilierst Du die Dll selbst?

Dann in VS: Projektmappenexplorer => Eigenschaften vom Projet => Signierung => Assembly signieren =>Schlüsseldatei => Neu

Anschließend neu kompilieren.

Volker

Re: .net DLL lässt sich nicht einbinden

3. Juni 2013 08:34

vsnase hat geschrieben:Kompilierst Du die Dll selbst?


Nein, das macht jemand anders. Werde das mal so weiter geben. Verstehe ich das richtig, solche DLL's müssen immer signiert werden?

Re: .net DLL lässt sich nicht einbinden

3. Juni 2013 09:01

Ja, muss signiert sein.

http://msdn.microsoft.com/en-us/library/dd983804.aspx

Re: .net DLL lässt sich nicht einbinden

3. Juni 2013 09:24

Hab vergessen, es gibt ja noch eine weite Möglichkeit, die gerade hier wichtig sein kann:

Man kann eine .NET Assembly auch nachträglich signieren:

http://stackoverflow.com/questions/1379954/how-i-do-a-sign-an-assembly-that-has-already-been-built-into-a-dll-specifically

ABER...

damit das in NAV funktioniert, mussen auch alle Assembies auf die in der Assembly verwiesen wird eine Signierung haben, sonst funzt es mit NAV wieder nicht.

Volker

Re: .net DLL lässt sich nicht einbinden

3. Juni 2013 09:42

vsnase hat geschrieben:Hab vergessen, es gibt ja noch eine weite Möglichkeit, die gerade hier wichtig sein kann:

Man kann eine .NET Assembly auch nachträglich signieren:


Und wahrscheinlich mit der Einschränkung, dass man rechtlich gesehen die .NET Assembly disassemblieren darf. :wink:

mfg,
winfy

Re: .net DLL lässt sich nicht einbinden

3. Juni 2013 09:55

winfy hat geschrieben:Und wahrscheinlich mit der Einschränkung, dass man rechtlich gesehen die .NET Assembly disassemblieren darf.


Guter Einwand, aber ist es nichtzulässig ein Programm zu analysieren um dies in eigene Anwendungen zu integrieren bzw. dafür Erweiterungen zu entwickeln? Und ist es nicht zulässig ein Programm zu berichtigen, damit es bestimmungsgemäß funktioniert?

Allerdings habe ich auf die Schnelle jetzt kein passendes Urteil gefunden.

Volker

Re: .net DLL lässt sich nicht einbinden

3. Juni 2013 10:53

vsnase hat geschrieben:
winfy hat geschrieben:Und wahrscheinlich mit der Einschränkung, dass man rechtlich gesehen die .NET Assembly disassemblieren darf.


Guter Einwand, aber ist es nichtzulässig ein Programm zu analysieren um dies in eigene Anwendungen zu integrieren bzw. dafür Erweiterungen zu entwickeln? Und ist es nicht zulässig ein Programm zu berichtigen, damit es bestimmungsgemäß funktioniert?



"Ich habe ein Bug in Windows gefunden und darf nun Windows disassemblen."
-> I don't think so.

Die Befehle regasm/gacutil sind bekannt bzw. wurden genutzt?

Re: .net DLL lässt sich nicht einbinden

3. Juni 2013 11:05

JanGD hat geschrieben:Die Befehle regasm/gacutil sind bekannt bzw. wurden genutzt?


Ja, wurden genutzt, aber ohne Erfolg. Bei der von mir erwähnten neuen, einfachen DLL hat dann aber ein normales kopieren in die Add-In-Verzeichnisse genützt, die Test-DLL konnte verwendet werden

Re: .net DLL lässt sich nicht einbinden

3. Juni 2013 11:07

Wegen dem GAC müssen die dll ja signiert sein. Ohne Signierung darf man keine Assembly dort hinzufügen.

Und ja, ich glaube man darf da dissasemblen um an Infos zu kommen. Oder wie sind sonst bestimmte Hacks möglich/zulässig? Ich denke da z. B. an Treiberentwicklung oder auch Firmen, die nicht mehr existieren, deren Pragramme aber weiterhin eingesetzt werden (dürfen). Das die Zone ziemlich grau ist ist mir klar, daher hätte ich auch gerne mal ein Urteil dazu gelesen. Sieht nach einer Doktorarbeit für einen Juristen aus.

Re: .net DLL lässt sich nicht einbinden

3. Juni 2013 11:31

Hallo Roger,
stell doch mal das Projekt als DONLOAD bei.
Wenn's heut Abend weiter regnet, schau ich mir das mal an.

MFG
Micha

Re: .net DLL lässt sich nicht einbinden

17. Juni 2013 13:54

Fido hat geschrieben:Hallo Roger, stell doch mal das Projekt als DONLOAD bei.


Hallo Micha, hab das leider erst jetzt gesehen. Danke für dein Angebot. Wir konnten das mittlerweile lösen. Der Fehler trat immer dann auf, wenn die DLL, welche vom Entwickler per EMail kam, ins Verzeichnis kopiert wurde. Man musste dann jeweils noch in den Eigenschaften auf 'Zulassen' klicken