Announcement

Collapse
No announcement yet.

PRISM UnitiyContainer - Fehler

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

  • PRISM UnitiyContainer - Fehler

    Hallo Zusammen, ich habe gerade das Tutorial für PRISM von Mike Taulty per YouTube angefangen.
    Part 1 war ohne Probleme.

    In Part 2, bekomme ich Probleme mit dem UnitiyContainer.

    Ich benutze: .NET4.0, VS2010
    Es ist eine Konsolenanwendung.

    Ich habe alles so programmiert, wie der Autor auch. Das einzige, das mir aufgefallen ist, war, dass die Microsoft.Practice.ObjectBuilder2.dll nicht gefunden wurde, im Internet war der Hinweis, dass diese in der Microsoft.Practices.Unity.dll vorhanden ist. Ich habe die Version v4.0.30319 (Microsoft.Practices.Unity.dll).

    Es wurde also nur der Verweis für die Unity hinzugefügt.
    Verweise Projetkt Prism2Tutorial1::
    ¤ CalculatorCommandParsing
    ¤ CalculatorLibrary
    ¤ InputOutputLibrary
    ¤ IntterfacesLibrary
    ¤ Microsoft.CSharp
    ¤ Microsoft.Practices.Unity
    ¤ System
    ¤ System.Core
    ¤ System.Data
    ¤ System.Data.DataSetExtensions
    ¤ System.Xml
    ¤ System.Xml.Linq

    Die Programmierung ist noch nicht bis zum Ende des Tutorials durchgeführt worden, da sich der Fehler zu Anfang gemeldet hat. Im Anhang ist die Beispiel-Programmierung.

    ==> Videolink YouTube Microsoft Prism Tutorial Part 2

    Der Fehler tritt hier auf:
    [highlight=csharp]
    using Microsoft.Practices.Unity;

    namespace Prism2Tutorial1
    {
    class Program
    {
    static void Main(string[] args)
    {
    try
    {
    UnityContainer container = new UnityContainer(); // <<=== Fehler tritt hier auf
    container.RegisterType<ICalculator, Calculator>();
    container.RegisterType<IInputService, ConsoleInputService>();
    container.RegisterType<IOutputService, ConsoleOutputService>();
    container.RegisterType<IInputParserService, InputParserService>();
    container.RegisterType<ICalculatorReplLoop, CalculatorReplLoop>();


    ICalculatorReplLoop loop = container.Resolve<ICalculatorReplLoop>();

    loop.Run();
    }
    catch (System.Exception ex)
    {

    IOutputService io = new MsgBoxOutputService();
    io.WriteMessage("ME" + ex.Message);
    }
    }
    }
    }

    [/highlight]

    Fehlermeldung::
    Der Typ "System.Reflection.IntrospectionExtensions" in der Assembly "mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" konnte nicht geladen werden.

    Vielen Dank für Eure Hilfe.

    Grüße Lerando
    Attached Files

  • #2
    Bist du dir sicher das 4er Framework zu benutzen? Also nicht 4.5 oder nur das 4er Client Framework?

    Laut Doku gibt es die IntrospectionExtensions erst ab Framework 4.5. Dein Verhalten ohne jetzt genau Unity zu kennen würde ich mir gerade damit erklären das du zwar die 4er Version von Unity benutzt und deshalb 4er Abhängigkeiten geladen hast aber dein Projekt auf das 4.5 Framework eingestellt ist und deshalb von andere Stelle 4.5er Dinge benötigt aber nur die 4er Version davon findet da die schon geladen waren.

    Edit: Gerade eine deiner Projektdateien angeschaut. Du programmierst gegen das 4er Client Framework. Vielleicht hilft es das mal auf das richtige 4er Framework umzustellen.
    Edit2: Das wird es vermutlich sein. Dein Tutorial Projekt kompiliert gegen das Client Framework der Rest gegen das vollwertige Framework

    Comment


    • #3
      Ich habe umgestellt, allerdings kommt jetzt der Debugging-Fehler::
      Der Typ- oder Namespacename "Practices" ist im Namespace "Microsoft" nicht vorhanden. (Fehlt ein Assemblyverweis?)

      Unter VS2010 geht leider kein .NET4.5, ich werde versuchen ältere Versionen für Unity und Prism zu bekommen.

      Comment


      • #4
        Lösung ist, die Unitiy Version 2.1 nehmen (habe auch vorsichtshalber gegen vollwertige 4 umgestellt)

        Dann funktioniert es auch.

        Vielen Dank für Deine Hilfe Ralf.

        Grüße Lerando

        Comment

        Working...
        X