Pregunta

Tengo una biblioteca de clases WPF .NET 4.0 que hace referencia a una biblioteca de clases Silverlight 4.

La biblioteca SL se compila bien, pero cuando compilo la biblioteca de clases WPF, obtengo:

Error   2   Unknown build error, 'Cannot resolve dependency to assembly 'System.Windows, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e' because it has not been preloaded. When using the ReflectionOnly APIs, dependent assemblies must be pre-loaded or loaded on demand through the ReflectionOnlyAssemblyResolve event.'    MyProj.Presentation.Wpf

Supongo que el problema debe ser similar al mencionado aquí:http://markti.spaces.live.com/blog/cns!d92cf278f0f91957e73.entry

Pero mi biblioteca WPF no contiene ningún XAML que haga referencia a un control de usuario de mi biblioteca SL. De hecho, mi biblioteca SL no tiene ningún XAML en absoluto. Sin embargo, tiene varios Objetos de dependencia compartidos, como un EventCommander (eventos de elementos de interfaz de usuario vinculantes a los comandos) y algunos ayudantes de la plantilla de datos.

¿Hay alguna forma de reducir el problema aquí? ¿Y alguien ha encontrado una forma de hacer referencia efectiva a los elementos de la interfaz de usuario en un proyecto SL4 de .NET 4.0?

Gracias.

¿Fue útil?

Solución

este

¿Alguien sabe de una forma de hacer referencia a un ensamblaje SL4 con System.Windows References de un ensamblaje completo de .NET (sin simplemente vincular los archivos y crear dos proyectos diferentes para mantener)?

no es posible en este momento. Referencia a los ensamblajes de SL en proyectos .NET solo funcionará si el proyecto SL no hace referencia a ningún ensamblaje que no sea Mscorlib, System, System.Core, System.ComponentModel.composición y Microsoft.VisualBasic. Agregar un proyecto WPF y vincular sus archivos SL con ese proyecto es la única forma en que puede reutilizar su código SL si usa EG System.Windows.

Saludos, Alex

Otros consejos

Tal vez llego tarde, pero esto aún no ha sido respondido.

Hay un complemento para VisualStudio 2010, que le permite crear ensamblajes, que se pueden hacer referencia en .NET, Silverlight, Windows Phone y XNA en Xbox. Se llama portAblelibrary.

http://blogs.msdn.com/b/bclteam/archive/2011/01/19/announcing-portable-library-tools-ctp-justin-van-patten.aspx

¡Lo encontré! Tenía algunos espacios de nombres XMLNS definidos en mi biblioteca de clase SL4 como:

using System.Windows.Markup;

[assembly: XmlnsDefinition("http://MyProj/Presentation", "MyProj.Presentation")]
[assembly: XmlnsDefinition("http://MyProj/Presentation", "MyProj.Presentation.Controls")]

y eso evitó que el ensamblaje WPF lo hiciera referencia, produciendo el error mencionado anteriormente. Acabo de mover las declaraciones del espacio de nombres al proyecto WPF para arreglar ...

Editar

Ok, entonces esto solucionó el problema ... pero ¿alguien sabe de una forma de hacer referencia a un ensamblaje SL4 con System.Windows References de un ensamblaje completo de .NET (sin solo vincular los archivos y crear dos proyectos diferentes para mantener)?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top