2010-05-07 35 views
16

En VS2010, Silverlight 4, .NET 4, tengo un servicio WCF y una aplicación Silverlight, y Silverlight está accediendo a la clase no con Add Service Reference pero al compartir el contrato. Naturalmente, esto significa que tengo el contrato en una biblioteca de clases de Silverlight, y el servicio tiene una referencia de proyecto a esa biblioteca.VS2010: Advertencia sobre agregar proyecto de referencia al proyecto Silverlight del proyecto .NET

Curiosamente, esto se traduce en un icono/\ en el de referencia, y una advertencia:

El proyecto 'SilverlightClassLibrary1' no puede hacer referencia. El proyecto al que se hace referencia está dirigido a una familia de marcos diferente (Silverlight)

Sin embargo, la referencia funciona bien (puedo usar la interfaz en mi aplicación Silverlight) y funciona bien.

¿Esto es un error? Supongo que sí, ya que la advertencia está mintiendo y también desaparece si agrega una referencia de ensamblado en lugar de una referencia de proyecto. Presenté un bug y también hay más información here.

+0

Tenga en cuenta que solo es una * advertencia *. He visto algo similar, de hecho, es por eso que no expandí las "referencias" en la imagen 'SerializerGenerator', aquí http://marcgravell.blogspot.com/2010/04/walkthrough-protobuf-net-on -phone-7.html (el proyecto 'MyDto' es, como el suyo, Silverlight). Buena pregunta, sin embargo. Un buen lugar es la diferencia entre la referencia del proyecto/dll. Voy a dar una oportunidad por lo que estoy haciendo ;-p –

+0

Interesante. ¿Se queja si, en lugar de agregar una referencia a DLL, incluye los Contratos en una DLL de Silverlight al vincular los archivos? – Doobi

+0

No, no se queja, ya que literalmente está copiando el código en otro ensamblado. – nlawalker

Respuesta

15

Microsoft respondió al bug que publiqué. La advertencia pretende existir y pretende ser una advertencia y no un error, aunque yo diría que el texto es malo. El motivo es que al hacer referencia a un proyecto de Silverlight se producirán fallas en el tiempo de ejecución si Silverlight no está instalado correctamente en la máquina. Actualmente no hay forma de suprimir la advertencia.

+2

Estoy un poco confundido, ¿significa esto que Silverlight debe instalarse en el servidor que aloja mi servicio wcf? Gracias por proporcionar la información útil – tomfumb

+1

Hm, la URL ya no funciona. ¿Recuerdas, por casualidad, su nombre, así que puedo intentar encontrarlo de nuevo? Intenté buscar ["El proyecto al que se hace referencia está dirigido a una familia de marcos diferente (Silverlight)"] (https://connect.microsoft.com/SearchResultsLive.aspx?SearchQuery=different%2bframework%2bfamily%2b (Silverlight)) en Microsoft Connect, pero nada apareció. –

3

Si desea que la advertencia desaparezca, puede agregar el dll directamente usando "Agregar referencia" -> "Buscar" en lugar de agregar el proyecto mediante "Agregar referencia" -> "Proyectos".

Este fue un problema muy molesto para nosotros también y esta fue la única solución que encontramos que funcionó.

+0

Esta no es una buena solución ya que no se ocupa de las versiones Release vs. Debug. Una compilación de espacio de trabajo limpio en el tipo incorrecto fallará ya que la DLL no existirá a menos que compruebe estáticamente las DLL en su control de origen o establezca los directorios de salida de Debug/Release en la misma carpeta para esa dependencia de proyecto. Incluso en ese caso, especialmente para las compilaciones multiproceso, a la solución le faltará la dependencia del proyecto de compilación para calcular las órdenes de compilación correctas de los proyectos. – Shiv

Cuestiones relacionadas