2012-08-28 25 views
5

En mi solución creada con MonoDevelop (3.0.3.5) tengo 3 proyectos:MonoTouch con el Proyecto Biblioteca portátil no puede construir

  1. proyecto MonoTouch con IU,
  2. proyecto de la Biblioteca MonoTouch con código específico IOS,
  3. Proyecto de biblioteca portátil con modelo de dominio.

El proyecto Biblioteca portátil no se compilará y mostrará símbolos de advertencia en las referencias (Sistema, Sistema.Core, Sistema.Xml) en MonoDevelop. Cuando despliegue la referencia de ensamblado, se muestra el mensaje de error:

Assembly not available in .NETPortable 4.0 Profile1 Profile (in Mono 2.10.9)

El mismo problema informó en this forum thread.

¿Alguien tiene el mismo problema y es capaz de resolverlo?

actualización

solución de demostración con los errores de generación se puede encontrar en GitHub here (bgever/plp-build-error).

Descubrí que, aunque se muestran los mensajes de error, se puede compilar el código básico y funciona como se esperaba.

Sin embargo, las dos variantes de errores de generación que impiden la solución de demostración de la compilación son:

public T Get<T> (Expression<Func<T, bool>> predicate) where T : new() { 

Utilizando el tipo genérico System.Func<T1,T2,T3,T4,T5,T6,T7,T8,T9,TResult>' requires 10' argumento de tipo (s) (CS0305)

¿Parece que la sobrecarga genérica de 2 argumentos Func<T, TResult> no es compatible?

public void RunInTransaction (Action action) { 

Utilizando el tipo genérico System.Action<T>' requires 1' argumento de tipo (s) (CS0305)

Así que parece que la versión no genérica de Action no se puede encontrar?

+0

Si elimina todas las referencias en la biblioteca de clases portátil, ¿qué hace? No debería tener ninguna referencia allí, excepto potencialmente sus propios proyectos de biblioteca de clases portátiles. – jonathanpeppers

+0

@jonathanpeppers Gracias por su comentario. Eliminar las referencias no ayudó, supongo porque son los ensamblajes principales. Vea la pregunta actualizada con los nombres. –

+1

¿Se puede publicar un proyecto de ejemplo en algún lugar? No tiene que ser todo su proyecto, solo uno que demuestre lo que no se construirá para usted. – jonathanpeppers

Respuesta

1

Con los mensajes de error adicionales, he encontrado la siguiente pregunta SO: MonoDevelop: is it possible to switch PCL's compiler? Con la respuesta de @mhutch proporcionado, el compilador MonoTouch puedan ejercer y es entonces capaz de compilar el código.

Sin embargo, esto es solo una solución, por lo tanto, aún así sería genial ver la compatibilidad adecuada con la Biblioteca portátil de clases en Mono, MonoDevelop y MonoTouch.

Si necesita la compatibilidad adecuada con la Biblioteca de clases portátil también: vote for this feature on Xamarin's UserVoice.

0

También he tenido un problema similar con las referencias .Net dentro de un PLP, lo que en realidad hice fue eliminar las referencias existentes y volver a agregarlas manualmente desde donde.Net Framework está instalado, reinicie MonoDevelop y yo estaba listo y funcionando nuevamente.

+1

Gracias por su sugerencia. Al hacer esto, también está apuntando a la plataforma completa .NET o MonoTouch en lugar de a las plataformas de la Biblioteca portátil. Se compila, pero no es portátil. Sin embargo, necesitamos una compatibilidad total con la Biblioteca portátil. –

Cuestiones relacionadas