2011-02-01 25 views
7

Tengo un problema con mi biblioteca de clases en Visual Studio C# Express 2010. El proyecto está configurado con un marco de destino de .NET 4.0 (no Cliente Perfil).C# .NET DLL no se compilará debido a conflictos System.Web

En mi biblioteca de clase, he agregado una referencia a System.Web para que la codificación de URL funcione para mi biblioteca oAuth.

Cuando la construcción de la DLL y la aplicación de pruebas asociado, me sale el siguiente error:

Error 1 The type or namespace name 'TwitterAPI' could not be found (are you missing a using directive or an assembly reference?) C:\Users\sammarks\Documents\Programming\Twitter.NET\Tester\Program.cs 5 7 Tester 

Y, me sale el mensaje de advertencia siguiente:

Warning 2 The referenced assembly "C:\Users\sammarks\Documents\Programming\Twitter.NET\TwitterAPI\bin\Release\TwitterAPI.dll" 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. Tester 

No estoy seguro de por qué hace esto, pero es por eso que vine aquí. Intenté redirigir la biblioteca de clases a 3.5, pero eso no hizo más que echarlo a perder.

También intenté volver a agregar System.Web a las referencias, pero tampoco sirvió de nada.

¿Alguna sugerencia?

Respuesta

9

objetivo la plena .NET Framework 4.0 para el acceso a System.Web (no el perfil de cliente):

enter image description here

+0

No importa, no se dio cuenta de que se refería a .NET Framework 4 en sí, en lugar de al Cliente. – sammarks

+0

http://social.msdn.microsoft.com/Forums/en/csharpgeneral/thread/7301dec4-4b96-444d-88bb-630125d080e4 – JohnB

+1

¡Ajá! Mi programa de prueba estaba dirigido al perfil del cliente. Todos trabajando ahora. ¡Gracias! – sammarks

0

Puede sonar tonto, pero ¿ha intentado reiniciar Visual Studio?

A veces se echa de menos una referencia o dos.

+0

Nope. Lo reinicié y no funcionó. Iba a estar tan conmocionado si eso realmente funcionara, aunque jajaja. – sammarks

+0

¿Tiene esta respuesta algo que ver con su nombre de usuario? –

+0

Me pasó que tenía una clase pública con miembros públicos y no pude acceder a ellos porque decía que estaba protegida o era privada. Un reinicio arreglado eso. –

1

Parece que su biblioteca de clases tiene una referencia al perfil del cliente, mientras que el ejecutable de prueba hace referencia al perfil que no es del cliente. Estoy Gleaning esto desde la advertencia:

...currently targeted framework ".NETFramework,Version=v4.0,Profile=Client ... 
+0

¿Significa esto que necesito cambiar el marco de trabajo dirigido a .NET 4.0 Client Profile? – sammarks

+0

No importa, probablemente signifique lo contrario de lo que acabo de decir. – sammarks

+0

No, no debe ser el perfil del cliente; compruebe que ambos ensamblados tengan como objetivo la misma versión, ya que esa advertencia se ve sospechosamente como si una de ellas estuviera orientada al perfil del cliente. Además, asegúrese de guardar después de cambiar las propiedades (solo hacer una compilación o depurar no guarda los cambios en las propiedades del ensamblado IIRC). –

Cuestiones relacionadas