Silverlight 4 Montage -Sharing -Problem
-
24-10-2019 - |
Frage
Ich habe eine WPF .NET 4.0 -Klassenbibliothek, in der eine Silverlight 4 -Klassenbibliothek verweist.
Die SL -Bibliothek kompiliert gut, aber wenn ich die WPF -Klassenbibliothek zusammenstelle, bekomme ich:
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
Ich denke, das Problem muss dem hier erwähnt sein:http://markti.spaces.live.com/blog/cns!d92cf278f0f91957!273.entry
Meine WPF -Bibliothek enthält jedoch kein XAML, das auf eine Benutzerkontrolle aus meiner SL -Bibliothek verweist. Tatsächlich enthält meine SL -Bibliothek überhaupt kein XAML. Es verfügt jedoch über mehrere gemeinsam genutzte Abhängigkeiten, wie z.
Gibt es eine Möglichkeit, das Problem hier eingrenzen zu können? Und hat jemand einen Weg gefunden, in einem SL4 -Projekt von .NET 4.0 effektiv auf UI -Elemente zu referenzieren?
Vielen Dank.
Lösung
Dies
Kennt jemand eine Möglichkeit, auf eine SL4 -Montage mit System zu verweisen.
ist momentan nicht möglich. Die Referenzierung von SL -Baugruppen in .NET -Projekten funktioniert nur, wenn das SL -Projekt keine anderen Baugruppen als verweist als mscorlib, system, system.core, system.componentmodel.comPosition und Microsoft.visualBasic. Das Hinzufügen eines WPF -Projekts und die Verknüpfung Ihrer SL -Dateien mit diesem Projekt ist die einzige Möglichkeit, Ihren SL -Code wiederzuverwenden, wenn es EG System.Windows verwendet.
Prost, Alex
Andere Tipps
Ich bin vielleicht zu spät, aber das wurde noch nicht beantwortet.
Es gibt ein Plugin für Visualstudio 2010, mit dem Sie Baugruppen erstellen können, auf die in .NET, Silverlight, Windows Phone und XNA auf Xbox verwiesen werden kann. Es heißt Portablelibrary.
Fand es! Ich hatte einige XMLNS -Namespaces in meiner SL4 -Klassenbibliothek wie folgt:
using System.Windows.Markup;
[assembly: XmlnsDefinition("http://MyProj/Presentation", "MyProj.Presentation")]
[assembly: XmlnsDefinition("http://MyProj/Presentation", "MyProj.Presentation.Controls")]
und das verhinderte die WPF -Baugruppe daran, sie zu verweisen und den oben genannten Fehler zu erzeugen. Ich habe gerade die Namespace -Deklarationen in das WPF -Projekt verschoben, um ...
Bearbeiten
OK, das hat das Problem behoben ... aber weiß jemand eine Möglichkeit, auf eine SL4 -Montage mit System zu verweisen.