2011-11-14 7 views
11

Así que estoy trabajando en un proyecto que está construido en la versión Visual Studio 2005 en el marco 2.0. Ahora moví el proyecto para la nueva versión de Visual Studio 2010 SP1 en la versión y empezar a darse cuenta de que están lanzando esta errores y advertencias con las dependencias, por ejemplo¿Por qué System.Data.OracleClient no está disponible en .NET 4.0 Client Profile?

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". 

Tráeme la consecuencia de que la aplicación doesn Lea la referencia que agregué, pero cambiando el marco. .Net framework 4.0 el problema fue resuelto. Probándolos, los cambio a .net framework 4.0 client profile y me di cuenta de que los errores de compilación y las advertencias aparecen nuevamente.

Ahora mi pregunta es por qué el establecimiento de .net 4.0 funciona y no con el client profile ?? Necesito una buena explicación porque no soy un experto en esta parte.

+0

Duplicado http://stackoverflow.com/questions/2759228/difference-between-net4-client-profile-and-full-framework-download – ChrisBint

Respuesta

11

El perfil de cliente solo incluye un subconjunto de .NET Framework completo, un subconjunto que debería ser suficiente para crear aplicaciones de escritorio, a la vez que facilita la redistribución de .NET con su aplicación.

Como se menciona en a blog post introducing the Client Profile, la característica Oracle Client no está incluida en el perfil del cliente. Esto es probable porque Oracle Client is deprecated as of .NET 4 (la misma versión que introduce el perfil del cliente), y debe eliminarlo por completo. (También es discutible que no sea apropiado para la inclusión en el perfil del cliente.)

Si necesita conectarse a Oracle desde su aplicación, debe apuntar al marco .NET completo o, preferiblemente, usar una biblioteca de controladores de terceros - presumiblemente uno desarrollado por Oracle, no por Microsoft - que se mantendrá actualizado. (El InfoQ article about the deprecation enumera varias alternativas.)

9

Vaya a la página de propiedades del proyecto y cambie el marco de destino a .NET Framework 4 ¡entonces debería funcionar! El perfil del cliente es para aplicaciones "pequeñas" y no instala todos los ensamblajes.

+2

Esto funcionó para mí :) ¡Gracias! – user219628

2

El .NET Client Profile es un subconjunto de la instalación completa de .NET que contiene solo aspectos del marco de trabajo del "cliente". La funcionalidad del servidor, como ASP.NET, no está presente. El objetivo de esto es reducir el tamaño y los requisitos de .NET Framework.

O de MSDN:

.NET Framework 4 Client Profile es un subconjunto de .NET Framework 4 que está optimizado para aplicaciones de cliente. Proporciona funcionalidad para la mayoría de las aplicaciones cliente, incluidas Windows Presentation Foundation (WPF), Windows Forms, Windows Communication Foundation (WCF) y las características de ClickOnce. Esto permite una implementación más rápida y un paquete de instalación más pequeño para aplicaciones que se dirigen a .NET Framework 4 Client Profile.

Ahora, la razón por la que no puede usar el Perfil del cliente es porque .NET Oracle Provider requiere conjuntos más allá de lo que proporciona el Perfil del cliente, por lo tanto su aplicación no puede usar el perfil del cliente.

Cuestiones relacionadas