Announcement

Collapse
No announcement yet.

Problem mit Verweisen - unterschiedliche Assemblyversionen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Problem mit Verweisen - unterschiedliche Assemblyversionen

    Hallo zusammen,

    ich habe ein kleines Problem mit Assemblyverweisen.

    Meine Anwendungsstruktur ist wie hier abgebildet:

    http://www.bilderload.com/bild/10318/versionTF0UG.png

    Das Problem ist die tools.dll, die ich in zwei verschiedenen Versionen (in unterschiedlichen Verzeichnissen) vorliegen habe. Dies kann leider auch nicht geändert werden und muß so bleiben.

    Wenn ich aus der testapp.exe auf die worker.dll zugreife, benutzt diese interessanterweise die Version 1.0.0.0 der tools.dll.

    Ich bräuchte es aber so, daß die testapp.exe wie gezeichnet die V1.0.0.0 benutzt und die worker.dll die Version 2.0.0.0.

    Im MSDN habe ich dazu folgendes gefunden:

    ********
    Zur Laufzeit müssen sich Komponenten entweder im Ausgabepfad des Projekts oder im Globaler Assemblycache (GAC) befinden.
    Wenn das Projekt einen Verweis auf ein Objekt enthält, der sich nicht an einem dieser Orte befindet, müssen Sie den
    Verweis beim Erstellen des Projekts in den Ausgabepfad des Projekts kopieren. Die CopyLocal-Eigenschaft gibt an, ob
    diese Kopie erstellt werden muss. Wenn der Wert True lautet, wird der Verweis beim Erstellen des Projekts in das
    Projektverzeichnis kopiert. Wenn der Wert False ist, wird der Verweis nicht kopiert.

    bzw.

    Überprüfen, ob der Assemblyname bereits zuvor gebunden wurde. Ist dies der Fall, wird die zuvor geladene Assembly verwendet.
    ********

    Habt ihr da einen Tip für mich?

    Danke,
    Martin

  • #2
    Du kannst nicht so einfach 2 verschiedene Versionen der selben dll in einen Prozessraum laden. Wenn du das unbedingt brauchst (und ich hoffe du brauchst das nicht, das was du willst hört sich nach ganz schlechtem Design an) mußt du die Teile die die alte 1er Version brauchen und die Teile die die 2er Version brauchen in unterschiedliche AppDomains laden.

    Comment


    • #3
      Originally posted by Ralf Jansen View Post
      Du kannst nicht so einfach 2 verschiedene Versionen der selben dll in einen Prozessraum laden. Wenn du das unbedingt brauchst (und ich hoffe du brauchst das nicht, das was du willst hört sich nach ganz schlechtem Design an) mußt du die Teile die die alte 1er Version brauchen und die Teile die die 2er Version brauchen in unterschiedliche AppDomains laden.
      Das hab ich schon befürchtet.

      Das Problem bei mir ist dass jede neue Version der tools.dll für jede Anwendung (z.B. TestApp oder worker.dll) erst freigegeben werden muss (d.h. die neue Version muß verschiedene Testszenarien durchlaufen usw.).
      Da dieser Freigabeprozeß für bestimmte Anwendungen sehr aufwändig ist und mehrere Tage dauert, würde ich gerne für jede Anwendung eine eigene freigegebene Version der tools.dll angeben können.

      Wie geht das mit den Appdomains? Kann man das mit 2 Sätzen erklären oder soll ich mich durchs MSDN lesen?

      Danke + viele Grüße,
      Martin

      Comment


      • #4
        Wie geht das mit den Appdomains? Kann man das mit 2 Sätzen erklären oder soll ich mich durchs MSDN lesen?
        Sorry, habe da selbst keine Erfahrung. Lesen ist aber immer gut

        Würde dir aber weiterhin abraten. Auch wenn du dir so eventuell eine Abkürzung durch eurer Testprozedere erkaufst werdet ihr im Anschluß doch das Gesamtprodukt testen (Integrationstest), oder? Dann mehrere Versionen der selben Assembly, auch wenn es erst mal nur eine ist, zu haben hört sich nach einem QM Desaster an. Wehret den Anfängen.

        Comment


        • #5
          Originally posted by Ralf Jansen View Post
          Sorry, habe da selbst keine Erfahrung. Lesen ist aber immer gut

          Würde dir aber weiterhin abraten. Auch wenn du dir so eventuell eine Abkürzung durch eurer Testprozedere erkaufst werdet ihr im Anschluß doch das Gesamtprodukt testen (Integrationstest), oder? Dann mehrere Versionen der selben Assembly, auch wenn es erst mal nur eine ist, zu haben hört sich nach einem QM Desaster an. Wehret den Anfängen.
          Ich glaube du hast recht. Werd versuchen das auf der administrativen Ebene zu lösen!

          Danke nochmal und Gruß,
          Martin

          Comment

          Working...
          X