2010-03-14 15 views

Antwort

7

Auch wenn es für .NET 3.5 kompiliert wird, sollte die Assembly in .NET 4 ausgeführt werden können. Hier ist eine nette picture.

+0

Nun, es tut nur so, wenn Projekt Ziel Framework auf .NET 4.0 festgelegt ist. Ohne dies erhalte ich einen Fehler mit der Nachricht: Die referenzierte Assembly "Ninject" konnte nicht aufgelöst werden, da sie eine Abhängigkeit von "System.Web, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a" hat, die nicht im Ziel ist Framework ".NETFramework, Version = v4.0, Profil = Client". Entfernen Sie Verweise auf Assemblys, die nicht im ausgerichteten Framework enthalten sind, oder ziehen Sie eine Neuausrichtung Ihres Projekts in Betracht. – mgamer

+1

Es scheint, dass Sie eine Version von Ninject verwenden, die gegen .NET 4 in einem Projekt für .NET 3.5 kompiliert wird. Das ist nicht möglich. Laden Sie eine Version von Ninject herunter, die gegen .NET 3.5 kompiliert wird. –

+0

Das System.Web Problem ist, dass er das Clientprofil verwendet, das die DLL nicht verfügbar hat. Ninject kompiliert standardmäßig gegen System.Web.dll. Sie können es mit einer Option NO_WEB kompilieren, wenn Sie möchten. –

13

Ich hatte ähnliches Problem ... versuchen Sie das volle .NET 4 Framework, nicht das Client-Profil.

Aus meiner Sicht ist System.Web in .NET 4, aber nicht das .NET 4-Client-Profil. Für Ihre Assemblys, in denen Sie das vollständige Ninject nutzen, das mit 3.5 SP1 kompiliert wurde, müssen Sie sicherstellen, dass sie nicht auf das .NET 4-Client-Profil, sondern auf das vollständige .NET 4-Profil für die Abhängigkeit von System.Web abzielen zufrieden sein.

+0

Ja. So funktioniert es. +1 – rem