Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
"Die Assembly xyz, auf die verwiesen wird, hat keinen starken Namen"
WhiteGloves
myCSharp.de - Member



Dabei seit:
Beiträge: 110
Herkunft: Köln

Themenstarter:

"Die Assembly xyz, auf die verwiesen wird, hat keinen starken Namen"

beantworten | zitieren | melden

Guten Morgen zusammen,

Wie der Titel schon sagt, habe ich ein Problem mit starken Namen einer Assembly.

Aber erstmal kurz zu meiner Projektstruktur:

Ich habe eine WPF Anwendung (Client) welche einen Verweis auf eine von mir geschriebene Klassenbibliothek (Lib) enthält.

Ich möchte in meinem späteren Programmverzeichnis den Client gerne in ein anderes Verzeichnis als die Lib liegen haben, da die Lib von mehreren weiteren Anwendungen genutzt wird.

Also habe ich ihr einen starken Namen verpasst und sie in den GAC (Global Assembly Cache) kopiert.
Anschließend konnte ich den (kompilierten) Client starten, ohne dass die Lib im selben Verzeichnis liegen musste.

Nun habe ich in der Lib eine weitere Klassenbibliothek (ExtLib) hinzugefügt. Beim Kompilieren des ganzen Projektes, speziell bei der Lib, erhalte ich jetzt die Fehlermeldung
Fehler
Fehler beim Generieren der Assembly -- Die Assembly ExtLib, auf die verwiesen wird, hat keinen starken Namen.

Also habe ich der ExtLib auch einen starken Namen verpasst und Sie in den GAC kopiert. Aber die Fehlermeldung erscheint weiterhin.

Auf welche Datei muss ich innerhalb der Lib denn nun verweisen um die ExtLib hinzuzufügen?
Als Trick habe ich direkt auf die DLL innerhalb des GAC Verzeichnisses verwiesen - dies kann aber nicht der korrekte Weg sein.

Kann mir jemand sagen was ich falsch mache?

Vielen Dank

MfG
WhiteGloves
Hallo, ich heiße Hein Blöd und bin Softwareentwickler
private Nachricht | Beiträge des Benutzers
xxMUROxx
myCSharp.de - Member

Avatar #avatar-3236.jpg


Dabei seit:
Beiträge: 1626
Herkunft: Südtirol/Italien

beantworten | zitieren | melden

Hallo WhiteGloves,

habe ich auch immer alle paar Wochen wieder. Ein bereinigen aller Projekte bzw der Solution löste bisher immer das Problem.

Gruß
Michael
Mein Blog
Meine WPF-Druckbibliothek: auf Wordpress, myCSharp
private Nachricht | Beiträge des Benutzers
WhiteGloves
myCSharp.de - Member



Dabei seit:
Beiträge: 110
Herkunft: Köln

Themenstarter:

beantworten | zitieren | melden

Also bei mir hat das Bereinigen und Neuerstellen leider nichts gebracht.

Mal eine Verständnisfrage nebenbei:
Wenn ich eine Assembly mit einem starken Namen versehe und diese in den GAC hinzufüge, müsste die dann in Visual Studio bei den Verweisen auftauchen? Oder muss ich diese DLL dann immer noch via Dateipfad hinzufügen?!
Hallo, ich heiße Hein Blöd und bin Softwareentwickler
private Nachricht | Beiträge des Benutzers
Grumbler85
myCSharp.de - Member



Dabei seit:
Beiträge: 550
Herkunft: Rheingau Taunus

beantworten | zitieren | melden

Wenn es deine eigene Assembly ist, kannst du ihr einen Starken Namen verpassen, indem du sie beim Kompilieren auch gleich Signierst - das kannst in den Projekteinstellungen setzen.
Dazu brauchst du eine Signatur, die du dir mit sn.exe erstellen kannst.
Der Vorteil der Klugheit liegt darin, dass man sich dumm stellen kann - umgekehrt ist das schon schwieriger (K. Tucholsky)
Das Problem mit Internet-Zitaten ist, dass sie oftmals zu unrecht als authentisch angenommen werden. (K. Adenauer)
private Nachricht | Beiträge des Benutzers
xxMUROxx
myCSharp.de - Member

Avatar #avatar-3236.jpg


Dabei seit:
Beiträge: 1626
Herkunft: Südtirol/Italien

beantworten | zitieren | melden

Zitat
Wenn ich eine Assembly mit einem starken Namen versehe und diese in den GAC hinzufüge, müsste die dann in Visual Studio bei den Verweisen auftauchen?
Nein muss sie nicht und macht sie auch nicht
Zitat
Oder muss ich diese DLL dann immer noch via Dateipfad hinzufügen?!
Genau. Wie du siehst werden auch die .NET dll mit eindeutigen Pfad hinzugefügt. Beim Builden benötigt man diesen Pfad. Jedoch wird bei der Ausführung des Programms auf dem Client zuerst im GAC nach der DLL gesucht, falls das Flag "Copy local" auf false gesetzt wurde.
Mein Blog
Meine WPF-Druckbibliothek: auf Wordpress, myCSharp
private Nachricht | Beiträge des Benutzers