GAC-Verwaltung



  • Hi,

    ich hab mal ne Frage zur Verwaltung der globalen Assemblies.
    Ich denke es ist nicht sehr unwahrscheinlich, dass zwei verschiedene
    Hersteller zwei gleiche (vom Namen her, also Namespace, Class) Assemblies
    in den GAC registrieren wollen.
    Was pasiert denn dann?
    Ich denke mal das das geht, aber woher weiss eine Anwendung dann, welche Sie
    nutzen muss?

    Gruss
    Jockel

    P.S.: Ich hatte hier mal eine Frage gestellt, die für mich unbeantwortet blieb.
    Wenn mir da noch jemand helfen könnte, wäre super!



  • Zwei Assemblies mit einem gleichen strong name werden als identisch gewertet. Im GAC kannst Du zwei komplett gleiche Assemblies installieren (die haben ja dann unterschiedliche Versionsnummern), dann entscheidest Du in der config Datei darüber, welche Assembly sie nutzt.



  • Noodles schrieb:

    dann entscheidest Du in der config Datei darüber, welche Assembly sie nutzt.

    Nee, so meinte ich das nicht. Ich kann gar nix entscheiden:

    Hersteller A liefert A.exe und D.dll, wobei D.dll so toll ist, dass Sie
    in den GAC soll.
    Hersteller B liefert B.exe und D.dll, wobei D.dll so toll ist, dass Sie
    in den GAC soll.

    Wie gesagt, in D.dll gibt es bei beiden den gleichen Namespace und Klasse(n).



  • Siehe Noodles.
    2 oder mehr Assemblys (Auch exakt mit dem gleichem Namen,Namespace,Klassen) können im GAC installiert werden. Die Configdatei ist da nicht sooo wichtig.

    In deinem Fall:
    D.dll vom Hersteller A ist im GAC
    D.dll vom Hersteller B ist parallel zu D.dll(von A) im GAC.
    Anwendung A.exe bezieht sich per Referenz auf D.dll(von Hersteller A!!!)
    Anwendung B.exe bezieht sich per Referenz auf D.dll(von Hersteller B!!!)

    .Net passt auf, dass sich die Assemblys nicht in die Quere kommen. Das ist ja auch der Sinn der Sache. Man wollte eine weitere dll-Hell unter Windows ausschließen.


Anmelden zum Antworten