Почему System.Data.OracleClient не доступен в профиле клиента .NET 4.0?

Итак, я работаю над проектом, который построен в версии visual studio 2005 под фреймворком 2.0. Теперь я переместил проект в новую версию visual studio 2010 sp1 под версию и начал понимать, что они выбрасывают эти ошибки и предупреждения с зависимостями, например

Warning 1 could not be resolved because it has a dependency on "System.Data.OracleClient, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" which is not in the currently targeted framework ".NETFramework,Version=v4.0,Profile=Client". 

Принесите мне следствие, что приложение не прочитало ссылку, которую я добавил, но изменив структуру. .Net framework 4.0 проблема решена. Тестирование Я меняю их на .net framework 4.0 client profile, и я понял, что ошибки сборки и предупреждения появляются снова.

Теперь мой вопрос, почему настройка .net 4.0 работает, а не с client profile?? Мне нужно хорошее объяснение, потому что я не эксперт в этой части.

Ответ 1

Профиль клиента включает только подмножество всей платформы .NET, подмножество, которое должно быть достаточным для создания настольных приложений, а также упростить перераспределение .NET с вашим приложением.

Как упоминалось в блоге, представляющем профиль клиента, функция Oracle Client не включена в профиль клиента. Вероятно, это связано с тем, что Oracle Client устарел от .NET 4 (тот же выпуск, который вводит профиль клиента), и вы должны поэтапно использовать его в целом. (В любом случае, это также не подходит для включения в профиль клиента.)

Если вам нужно подключиться к Oracle из вашего приложения, вы должны либо нацелиться на полную платформу .NET, либо, желательно, использовать стороннюю библиотеку драйверов - предположительно одну, разработанную Oracle, а не Microsoft - встретиться. (В статье InfoQ об устаревании перечислены несколько альтернатив.)

Ответ 2

Перейдите на страницу свойств проекта и измените целевую структуру на .NET Framework 4, тогда она должна работать! Профиль клиента предназначен для "малого" приложения и не устанавливает все сборки.

Ответ 3

Профиль .NET Client - это подмножество полной установки .NET, содержащего только "клиентские" peices из фреймворка. Функциональности сервера, например ASP.NET, нет. Целью этого является уменьшение размера и требований .NET Framework.

Или из MSDN:

Профиль клиента .NET Framework 4 - это подмножество .NET Framework 4, оптимизированное для клиентских приложений. Он обеспечивает функциональность большинства клиентских приложений, включая Windows Presentation Foundation (WPF), Windows Forms, Windows Communication Foundation (WCF) и функции ClickOnce. Это обеспечивает более быстрое развертывание и меньший пакет установки для приложений, ориентированных на профиль клиента .NET Framework 4.

Теперь причина, по которой вы не можете использовать профиль клиента, заключается в том, что поставщик .NET Oracle требует сборок помимо того, что предоставляет профиль клиента, поэтому ваше приложение не может использовать профиль клиента.