Entwickler-Ecke

Sonstiges (.NET) - Assembly verfügbar machen


jasocul - Mi 01.02.06 12:43
Titel: Assembly verfügbar machen
Komme mir bei der Frage schon fast dämlich vor.
Ich arbeite mich gerade in C# (IDE=SharpDevelop) ein. Habe dazu eine kleine Assembly (im Sinne einer Bibliothek) geschrieben (POP3-Zugriff).
Nun möchte ich die in einem anderen Programm benutzen. Also habe ich das mit using eingebunden. Da ich aber nicht mitgeteilt habe, wo die DLL steht, findet das Programm das auch nicht.
Wie teile ich denn mit, wo die steht? Bzw. wie mache ich die allgemein verfügbar?


Robert_G - Mi 01.02.06 13:48

Die using clause gibt dir nur eine Abkürzung auf die Typennamen, die du benutzen willst.
Du kannst also das schreiben:

C#-Quelltext
1:
2:
class Miep : DeinNamespace.DeinTyp
{}

oder das:

C#-Quelltext
1:
2:
3:
using DeinNamespace;
class Miep : DeinTyp
{}

Ein Namespace-name hat eigentlich rein gar nix mit dem Assembly-namen zu tun (auch wie sie meistens gleich/ähnlich sind).
Um dem Compiler zu sagen wo er nach dem Typen DeinNamespace.DeinTyp suchen soll, musst du eine Referenz auf die Assembly deinem Projekt hinzufügen.


jasocul - Mi 01.02.06 13:59

Da waren sie wieder meine Probleme :wink: (Hatte mich evtl. ein wenig unklar ausgedrückt)
Dass das using als "Abkürzung" dient, war mir klar. Die vollständig qualifizierte Variante hatte ich auch schon getestet. Mit dem selben Erfolg.
Assembly und Namespace sind unterschiedlich gewählt, da der namespace noch erweitert werden soll.
user profile iconRobert_G hat folgendes geschrieben:
Um dem Compiler zu sagen wo er nach dem Typen DeinNamespace.DeinTyp suchen soll, musst du eine Referenz auf die Assembly deinem Projekt hinzufügen.

Und genau darauf zielte meine Frage ab:
Wie/wo erstelle ich die Referenz? Gibt es eine Möglichkeit das so abzulegen, dass genauso verwendet werden kann, wie das Standard-Framework?
Oder ist das ganze ein Problem vom SharpDevelop?
(Ist bestimmt ein Anfänger-Problem)

Das Problem ist vorerst behoben. Ich habe das Assembly ins Projekt-Verzeichnis kopiert. Es bleibt aber die grundsätzliche Frage, wie man überhaupt ein Assembly allgemein verfügbar macht.
Falls jemand eine Kurzanleitung hat, wäre das schön. Ansonsten muss ich mich mal durch die Doku zu .NET durchwühlen. Sind ja nur ein paar Seiten. :?


Robert_G - Mi 01.02.06 23:02

Hehe, in .Net ist alles ein wenig strukturierter und disziplinierter als früher in Delphi. ;)

Ein Rechtsklick auf das Projekt lässt dich Referenzen hinzufügen. Erst damit sagst du ja welche Assembly du in welcher Version benutzen willst.
Außerdem kennt der Compiler natürlich keinen Typen, der nicht in einer refenzierten Assembly steht.
Ohne mscorelib hast du zum Bleistift weder Int32 noch String. :mrgreen:


jasocul - Do 02.02.06 09:02

Gegen eine gute Strukturierung habe ich nichts. Mit gefällt .NET in Grunde auch ganz gut.

Hattest du gesehen, dass ich SharpDevelop und nicht die BDS verwende? Ein Rechtsklick aufs Projekt zeigt mir keine Möglichkeit, um Referenzen hinzuzufügen. Könnte aber auch an meiner dunkelen Brille liegen. 8)


UGrohne - Do 02.02.06 23:17

user profile iconjasocul hat folgendes geschrieben:
Hattest du gesehen, dass ich SharpDevelop und nicht die BDS verwende? Ein Rechtsklick aufs Projekt zeigt mir keine Möglichkeit, um Referenzen hinzuzufügen. Könnte aber auch an meiner dunkelen Brille liegen. 8)

Dann klick einfach mit rechts auf References :mrgreen:


Robert_G - Fr 03.02.06 00:31

user profile iconjasocul hat folgendes geschrieben:
Hattest du gesehen, dass ich SharpDevelop und nicht die BDS verwende?
Sorry, aber auf BDS wäre ich im Zusammenhang mit .Net so schnell nicht gekommen. ;)

@Uwe, och menno.... Dabei habe ich mir die Antwort mit fast unmenschlicher Zurückhaltung verkniffen. Immer dürfen die anderen fies sein. :cry:


jasocul - Fr 03.02.06 08:47

Ihr zwei Witzbolde :wink:
Für wie beknackt haltet ihr mich eigentlich? :mecker: (Bitte nicht drauf antworten. Bin empfindlich :oops: )
Ihr solltet mich besser kennen. Ich finde weder den Menüpunkt Referenzen noch References. Und ich meine wirklich alles druchgesehen zu haben. Nicht nur das Projekt-Menü. Aber da SD noch neu for mich ist und ihr das kennt, muss ich wohl irgendwas übersehen haben. Oder liegts an meiner SD-Version 1.1?


Christian S. - Fr 03.02.06 10:54

So alte Leute haben ja manchmal Probleme mit den Augen, daher habe ich Dir mal einen Screenshot gemacht und einen roten Kasten um die Referenzen gemacht, den man sogar ohne Brille sehen kann! :mrgreen:


jasocul - Fr 03.02.06 12:19

Aua. :autsch:
Aber wenn ich sehe, wieviel Downloads es schon gab... :mrgreen:


UGrohne - Fr 03.02.06 19:23

Ich krieg mich nicht mehr, kann mich mal bitte jemand vom Boden aufheben und mir ein Mittel gegen Magenschmerzen geben? :lol: :tongue: :mrgreen:


Robert_G - Fr 03.02.06 21:22

user profile iconUGrohne hat folgendes geschrieben:
Ich krieg mich nicht mehr, kann mich mal bitte jemand vom Boden aufheben und mir ein Mittel gegen Magenschmerzen geben? :lol: :tongue: :mrgreen:
Nee lass mal. Mein Gewissen verbietet es mir 5t Kerosin zu verbraten um jemandem eine Pille zu geben... :angel:


kiar - Fr 03.02.06 21:27

user profile iconRobert_G hat folgendes geschrieben:
user profile iconUGrohne hat folgendes geschrieben:
Ich krieg mich nicht mehr, kann mich mal bitte jemand vom Boden aufheben und mir ein Mittel gegen Magenschmerzen geben? :lol: :tongue: :mrgreen:
Nee lass mal. Mein Gewissen verbietet es mir 5t Kerosin zu verbraten um jemandem eine Pille zu geben... :angel:


moin Robert,

ich glaube mit 5 Tonnen kommst du nicht dahin, da nützt denn auch die Pille in deinem Gepäck nicht's mehr.


jasocul - Sa 04.02.06 11:01

Ja, ja. Wer den Schaden hat, spottet jeder Beschreibung.
Schade, dass du erst Ende des Monats wieder kommst, Uwe. Ansonsten wurde ich dir auf den Delphi-Tage was dazu sagen. :wink:

Habe mir jetzt übrigens SD2Beta installiert. Ist zwar ein bisschen Buggy, aber es hat sich doch eine Menge zum Positiven entwickelt. Dort hätte ich das mit den Referenzen auch früher erkannt, da auch die regulären .NET-Referenzen drin stehen. Bei 1.1 stehen nur die zusätzlichen drin.

Und jetzt hört auf mich zu verspotten. :cry:


UGrohne - Sa 04.02.06 19:27

user profile iconjasocul hat folgendes geschrieben:
Und jetzt hört auf mich zu verspotten. :cry:

Hehe, wie sagen wir hier so schön: "Just kidding ;-)"

Ich habs übrigens mal mit Google Earth gemessen: Ich bin hier genau 9335,5km von meinem Haus entfernt *g*