Проблемы со ссылками в .NET 4.0 project на .NET 2.0 dll / project - PullRequest
1 голос
/ 03 августа 2010

Я только начинаю использовать Visual Studio 2010 и .NET 4.0.Я создал новый проект WPF - DLL, созданную для .NET 2.0.Когда я собираю проект, я получаю кучу предупреждений, подобных этому:

The referenced assembly
"MicroFour StrataFrame Business...processorArchitecture=MSIL"
could not be resolved because it has a dependency on
"System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
which is not in the currently targeted framework ".NETFramework,Version=v4.0,Profile=Client".
Please remove references to assemblies not in the targeted framework
or consider retargeting your project.

Когда я ссылаюсь на созданный мной проект, нацеленный на 3.5, он не может найти ни одно из пространств имен (во время компиляции),хотя они отображаются в обозревателе объектов и intellisense правильно отображает их.

Есть ли что-то, чего мне не хватает, что нужно сделать, чтобы сослаться на более старую сборку .NET?

Ответы [ 2 ]

5 голосов
/ 03 августа 2010

Очень мало смысла в настройке профиля клиента для .NET 4.0.Загрузка - 41 МБ, полная версия - 48 МБ, только на 15% больше.К сожалению, в VS2010 это значение по умолчанию, просто измените его с помощью Project + Properties, вкладки Application, комбо Target Framework.

Профиль клиента не имеет смысл, если вы настроите целевой 3.5полная установка составляет ~ 350 МБ.Огромная разница объясняется необходимыми условиями: для .NET 4.0 требуется как минимум XP SP3 или Vista SP1.Но 3.5 устанавливается на любую версию Windows> 2000. Таким образом, установщик 3.5 содержит множество необходимых обновлений для неуправляемых компонентов Windows, используемых .NET.Веб-установщик значительно уменьшает этот удар.

4 голосов
/ 03 августа 2010

Ваша сборка 2.0 имеет ссылку на System.Web. Ссылка автоматически перенаправляется в вашу целевую среду, 4.0. Поэтому он пытается использовать System.Web, version 4.0.0.0. Проблема с 4.0 (фактически это началось с 3.5), теперь есть понятие профиля клиента. Профиль клиента имеет меньший набор ссылочных сборок, все, что связано с веб / сервером, было удалено. Это сделано для того, чтобы .NET Framework была меньше / проще для конечных пользователей.

В VS 2010 и .NET 4 клиентский профиль сильно загружается, MS действительно хочет, чтобы мы его использовали. Таким образом, ваш проект .NET 4 нацелен на профиль клиента по умолчанию. Ваша сборка, на которую ссылаются, хочет System.Web, поэтому в этом случае вам нужно перейти на полный профиль.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...