Ablage von Klassenbibliotheken dll

16/03/2010 - 09:52 von Marcel Garaventa | Report spam
Hallo zusammen

Ich habe ein eigenartiges Problem, wo ich einfach nicht mehr weiter weiss.
Ich versuche es mal so Kurz wie möglich zu schildern.

Ich habe eine Klassenbibliothek gemacht mit dem Namen Rtc.Form. Darin ist
eine Structure mit den Namen UserOptionen. Sie enthàlt die Eigenschafen X und
Y für Location, Width und Height für Site, und WindowState. Damit will ich
gewisse Informationen jedes Fensters speichern kann. Dazu kane ich noch eine
Klasse gemacht mit dem Namen UserOptionenConverter welche von TypeConverter
abgeleitet ist.

Zum Testen dieser Klassenbibliothek habe ich ein zweites Wondows
Forms-Anwendung angehàngt und Rtc.Form zugewiesen. Hier habe ich mal keine
Probleme. Ich kann in den Einstellungen von Test einen Namen Form1
definieren, den Typ mit Rtc.Form.UserOptionen und sofort erscheint mit im
Wert "0; 0; 300; 300; Normal" wie gewünscht.

Nun fangen aber die Schwirigkeiten bei der Ablage an.
Kopiere ich die dll in C:\Program Files\Microsoft Visual Studio
9.0\Common7\IDE\PublicAssemblies\ dort wo ich die andern dll's habe,
erescheint im Wert "Rtc.Form.UserOptionen" statt wie gewünscht "0; 0; 300;
300; Normal". Selbstverstàndlich könnte ich diesen Wert manuell dort
eintragen das würde gehen, aber ich möchte eben, dass er diesen Standartwert
gelich einsetzt wird.

Lege ich die dll in C:\WINDOWS\Microsoft.Net\Framework\v2.0.50727\ ab, so
geht es. Ich erhalte den Wert "0; 0; 300; 300; Normal". Dafür erhalte ich
eine Fehlermeldung, sobald ich diese Klasse auch nur anspreche (Dim). Die
Fehlermeldung besagt, dass die Datei oder das Assembly Rtc.Form nicht
gefunden werden.

Weiss hier jemand Bescheid, wo ich meine dll ablegen muss, damit es
fünktioniert und ich den Wert "0; 0; 300; 300; Normal" erhalte.

Binn gespannt auf Eure Antworten. Danke
Marcel
 

Lesen sie die antworten

#1 Elmar Boye
16/03/2010 - 11:00 | Warnen spam
Hallo Marcel,

"Marcel Garaventa" schrieb ...
Ich habe ein eigenartiges Problem, wo ich einfach nicht mehr weiter weiss.
Ich versuche es mal so Kurz wie möglich zu schildern.



ich kürze mal weiter...

Nun fangen aber die Schwirigkeiten bei der Ablage an.



Als Grundlage sollte man verstanden haben
http://msdn.microsoft.com/de-de/lib...xezcf.aspx
"So sucht Common Language Runtime nach Assemblys"

Vereinfacht hast Du zwei Möglichkeiten:

Kopiere ich die dll in C:\Program Files\Microsoft Visual Studio
9.0\Common7\IDE\PublicAssemblies\ dort wo ich die andern dll's habe,
erescheint im Wert "Rtc.Form.UserOptionen" statt wie gewünscht "0; 0; 300;



Einmal Du kopierst Du Assembly jeweils lokal in das Projekt,
das diese Klasse nutzen soll. Verwende dazu
Verweis hinzufügen -> Durchsuchen und wàhle die Assembly im Dateisystem aus.
Dabei wird die Assembly als lokale Kopie eingebunden und jeweils ins
Ausgabe-Verzeichnis kopiert.

Lege ich die dll in C:\WINDOWS\Microsoft.Net\Framework\v2.0.50727\ ab, so
geht es.



Die zweite Möglichkeit wàre eine Installation der (signierten) Assembly im GAC -
was Du mit oben versuchst hast anzudeuten. Dies ginge für den Heimbedarf mit gacutil:
http://msdn.microsoft.com/de-de/lib...ss12c.aspx

und http://msdn.microsoft.com/de-de/lib...d4fx6.aspx
"Arbeiten mit Assemblys und dem globalen Assemblychache"

Spàter wenn sie als Teil einer Anwendung ausgeliefert wird:
http://msdn.microsoft.com/de-de/lib...awcsz.aspx
"Bereitstellen von Anwendungen und Komponenten"

Solange Deine Komponente nur von Deiner Anwendung genutzt wird,
ist die erste Möglichkeit i. a. die unproblematischere.

Gruß Elmar

Ähnliche fragen