Autor Beitrag
enton
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mo 15.10.07 11:55 
Hallo
Ich hab neu mit Visual C# angefangen und habe ein Problem:
Ich möchte eine Klassenbibliothek kompilieren, um die Dll dann in einer anderen Klasse benutzen zu können.
Da die Klassenbibliothek jedoch nicht ausführbar ist, kann ich sie nicht direkt kompilieren.
Visual C# bringt mir dann ne meldung, das ich in einer ausführbaren Klasse ein Verweiß auf die Klassenbibliothek geben soll
und sie so dann kompiliert werden würde. Das funktioniert aber nicht. Es wird keine Dll erzeugt. Ich sitze da jetzt schon über 6 Stunden dran, hab mich durch sämtliche Hilfen und Foren "gekämpft" habe aber nichts dazu gefunden.
Wäre nett wenn mir jemand helfen könnte.
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Mo 15.10.07 12:16 
user profile iconenton hat folgendes geschrieben:
Hallo
Da die Klassenbibliothek jedoch nicht ausführbar ist, kann ich sie nicht direkt kompilieren.

Das hat nichts miteinander zu tun. Unter NET sind alles Assemblies, die wahlweise als EXE (Anwendung) oder als DLL (Bibliothek) kompiliert werden. Dies wird eingestellt als "Ausgabe" der Projekt-Eigenschaften.

Der entscheidende Unterschied liegt darin, dass eine Anwendung genau eine Main-Methode enthält und eine Bibliothek nicht.

user profile iconenton hat folgendes geschrieben:
Visual C# bringt mir dann ne meldung, das ich in einer ausführbaren Klasse ein Verweiß auf die Klassenbibliothek geben soll
und sie so dann kompiliert werden würde.

Was ist eine "ausführbare" Klasse? "Verweise" sind "Referenzen". Vermutlich fehlt in einer Deiner Klassen ein Verweis auf eine NET-DLL. Im Ausgabefenster beim Kompilieren ist die Fehlermeldung genauer als im Fehler-Fenster.

Fehlersuche: Die Klasse, die nicht verarbeitet werden kann, notieren, in die SDK-Doku gehen und den Abschnitt "Informationen zur XXX-Klasse" aufrufen: am Anfang stehen der erforderliche Namespace (kann unter using eingetragen werden) und die dazugehörige DLL.

Abhilfe: Projekt-Explorer öffnen, auf Referenzen des betreffenden Projekts gehen, Rechtsklick, Referenzen hinzufügen, die betreffende DLL auswählen und einfügen.

user profile iconenton hat folgendes geschrieben:
Das funktioniert aber nicht. Es wird keine Dll erzeugt. Ich sitze da jetzt schon über 6 Stunden dran, hab mich durch sämtliche Hilfen und Foren "gekämpft" habe aber nichts dazu gefunden.

"Das funktioniert aber nicht." ist keine ausreichende Fehlermeldung. Wenn wir Dir helfen sollen, benötigen wir genauere Informationen. Aber das kann sich durch die anderen Hinweise erledigt haben.

Gruß Jürgen
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mo 15.10.07 14:31 
user profile iconJüTho hat folgendes geschrieben:
user profile iconenton hat folgendes geschrieben:
Visual C# bringt mir dann ne meldung, das ich in einer ausführbaren Klasse ein Verweiß auf die Klassenbibliothek geben soll
und sie so dann kompiliert werden würde.

Was ist eine "ausführbare" Klasse? "Verweise" sind "Referenzen". Vermutlich fehlt in einer Deiner Klassen ein Verweis auf eine NET-DLL.
Nein, diese Meldung bekommt man, wenn man versucht, eine Klassenbibliothek zu debuggen (also zu "starten"), ohne sie in einer Anwendung zu verwenden. Das geht natürlich nicht, man braucht eine Anwendung, welche die Methoden der Bibliothek aufruft.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Mo 15.10.07 15:07 
user profile iconChristian S. hat folgendes geschrieben:
Nein, diese Meldung bekommt man, wenn man versucht, eine Klassenbibliothek zu debuggen (also zu "starten"), ohne sie in einer Anwendung zu verwenden. Das geht natürlich nicht, man braucht eine Anwendung, welche die Methoden der Bibliothek aufruft.

Ja, das könnte gemeint sein. enton hat ausschließlich von "kompilieren" gesprochen und nichts von "debuggen" oder "starten"; deshalb bin ich nicht auf eine solche Idee gekommen. Jürgen
enton Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mo 15.10.07 22:24 
Christian S. hat recht. Ich wollte die Klassenbibliothek mit per Debugger kompilieren.(Schande über mich).
Mal noch ne ganz blöde Frage:
Wie kann ich in C# ne Klassenbibliothek kompilieren?
Ich finde da keinen Button oder so dafür.
Ich hab bisher immer nur Java benutzt. Da konnte man die Klassen direkt einbinden, ohne sie zu kompilieren. Bzw. das wurde beim Debuggen der Klasse mit der Main Methode automatisch gemacht. Daher hatte ich das Problem nie.
Bei Visual C# funktioniert das scheinbar leider nicht. Ich hab in der Konsolenanwendung , die auf die Methoden der Klassenbibliothek zugreifen soll, ein Verweiß auf die (noch nicht kompilierte) Klassenbiblothek eingestellt und dann die Konsolenanwendung debuggt. Dadurch wurde aber aber keine Dll der Klassenbibliothek erzeugt. Dann hab ich versucht die Klassenbibliothek direkt zu debuggen. Was natürlich nicht funktioniert hat.
Danke schon mal für eure Hilfe

enton
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mo 15.10.07 22:36 
Hallo!

Wenn Du eine Bibliothek und eine Anwendung, welche diese Bibliothek nutzt in der selben Solution hast, wird die Bibliothek automatisch erstellt, wenn die Anwendung erstellt wird (sofern nicht eine aktuelle Version der Bibliothek vorliegt).

Möchtest Du die Bibliothek separat erstellen, nimmst Du den "Build"-Befehl. Den gibt's entweder im Hauptmenü oder im Kontextmenü der Bibliothek im Solution Explorer.

Grüße
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".