2010-03-14 3 views

ответ

7

Даже если он скомпилирован для .NET 3.5, сборка должна иметь возможность запускать в .NET 4. Вот хороший picture.

+0

Ну, это делается только тогда, когда целевая структура проекта установлена ​​в .NET 4.0. Без этого я получаю сообщение об ошибке: ссылочная сборка «Ninject» не может быть разрешена, поскольку она имеет зависимость от «System.Web, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a», которая не находится в текущей целевой framework ".NETFramework, Version = v4.0, Profile = Client". Удалите ссылки на сборки не в целевых рамках или не переустановите свой проект. – mgamer

+1

Кажется, что вы используете версию Ninject, которая скомпилирована против .NET 4 в проекте, ориентированном на .NET 3.5. Это невозможно. Загрузите версию Ninject, которая скомпилирована против .NET 3.5. –

+0

Проблема System.Web заключается в том, что он использует профиль клиента, который не имеет доступной dll. Ninject по умолчанию компилируется в System.Web.dll. Вы можете скомпилировать его с опцией NO_WEB, если хотите. –

13

У меня была аналогичная проблема ... попробуйте настроить полную .NET Framework, а не профиль клиента.

Из моего понимания System.Web находится в .NET 4, но не в .NET .NET Client Profile. Таким образом, для ваших сборок, в которых вы используете полный Ninject, скомпилированный с 3.5 sp1, вам нужно будет убедиться, что они не нацелены на профиль .NET 4 Client Profile, а полный профиль .NET 4 для зависимости от System.Web быть удовлетворены.

+0

Да. Таким образом, это работает. +1 – rem