2011-11-14 16 views
11

Quindi sto lavorando a un progetto che è stato realizzato nella versione visual studio 2005 con il framework 2.0. Ora mi sono trasferito il progetto per la nuova versione del Visual Studio 2010 SP1 sotto la versione e inizio a rendersi conto che stanno gettando questo errori e gli avvisi con le dipendenze, per esempioPerché System.Data.OracleClient non è disponibile nel profilo client .NET 4.0?

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

Portatemi la conseguenza che l'applicazione doesn leggo il riferimento che ho aggiunto, ma cambiando il quadro. .Net framework 4.0 il problema è stato risolto. Provando li cambio a .net framework 4.0 client profile e mi sono reso conto che gli errori di generazione e gli avvisi appaiono di nuovo.

Ora la mia domanda è il motivo per cui l'impostazione .net 4.0 funziona e non con il client profile ?? Ho bisogno di una buona spiegazione perché non sono un esperto in questa parte.

+0

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

risposta

11

Il profilo client include solo un sottoinsieme dell'intero framework .NET, un sottoinsieme che dovrebbe essere sufficiente per rendere le applicazioni desktop, semplificando al contempo la ridistribuzione di .NET con l'applicazione.

Come indicato in a blog post introducing the Client Profile, la funzione Client Oracle non è inclusa nel profilo cliente. Ciò è probabilmente dovuto al fatto che lo Oracle Client is deprecated as of .NET 4 (la stessa versione che introduce il profilo client) e che dovresti eliminarlo completamente. (È anche discutibilmente non appropriato per l'inclusione nel profilo del cliente.)

Se è necessario connettersi a Oracle dall'applicazione, è necessario scegliere come target il framework .NET completo o utilizzare preferibilmente una libreria di driver di terze parti. - presumibilmente uno sviluppato da Oracle, non da Microsoft - che rimarrà aggiornato. (Lo InfoQ article about the deprecation elenca diverse alternative.)

9

Passare alla pagina delle proprietà del progetto e modificare il framework di destinazione su .NET Framework 4 quindi dovrebbe funzionare! Il profilo del client è per l'applicazione "piccola" e non installa tutti gli assembly.

+2

Questo ha funzionato per me :) Grazie! – user219628

2

Il profilo di client .NET è un sottoinsieme dell'installazione completa di .NET contenente solo peep "client" del framework. La funzionalità del server, come ASP.NET, non è presente. Lo scopo di questo è ridurre le dimensioni e i requisiti di .NET Framework.

O dalla MSDN:

.NET Framework 4 Client Profile è un sottoinsieme di .NET Framework 4 che è ottimizzato per le applicazioni client. Fornisce funzionalità per la maggior parte delle applicazioni client, tra cui Windows Presentation Foundation (WPF), Windows Form, Windows Communication Foundation (WCF) e funzionalità ClickOnce. Ciò consente un'implementazione più rapida e un pacchetto di installazione più piccolo per le applicazioni che hanno come target il profilo client di .NET Framework 4.

Ora, il motivo per cui non è possibile utilizzare il profilo client è perché il provider Oracle .NET richiede assembly oltre a quello fornito dal profilo client, pertanto l'applicazione non può utilizzare il profilo client.

Problemi correlati