Вопрос

У меня есть библиотека классов WPF .net 4.0, ссылаясь на библиотеку класса Silverlight 4.

Библиотека SL компилирует нормально, но когда я составляю библиотеку классов WPF, я получаю:

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

Я считаю, что проблема должна быть похожа на упомянутую здесь:http://markti.spaces.live.com/blog/cns!d92cf278f0f91957 !273.entry

Но моя библиотека WPF не содержит никаких XAML, которые ссылаются на пользовательский элемент управления из моей библиотеки SL. На самом деле, в моей библиотеке SL вообще нет XAML. Однако он имеет несколько общих зависимостей, таких как EventCommander (связывание событий элементов пользовательского интерфейса с командами) и некоторых помощников DataTemplate.

Есть ли способ, которым я могу сузить проблему здесь? И кто -нибудь нашел способ эффективного ссылки на элементы пользовательского интерфейса в проекте SL4 от .net 4.0?

Спасибо.

Это было полезно?

Решение

это

Кто -нибудь знает способ ссылаться на сборку SL4 с System.Windows ссылки из полной сборки .NET (не просто связывая файлы и не создавая два разных проекта для поддержания)?

в данный момент невозможно. Ссылка на сборки SL в проектах .NET будет работать только в том случае, если проект SL не будет ссылаться на какие -либо сборки, кроме как mscorlib, system, system.core, system.componentmodel.composition а также Microsoft.visualBasicАнкет Добавление проекта WPF и связывание ваших файлов SL в этот проект - единственный способ повторного использования кода SL, если он использует EG System.windows.

Ура, Алекс

Другие советы

Возможно, я опоздал, но на это еще не было ответа.

Существует плагин для VisualStudio 2010, который позволяет создавать сборки, на которые можно ссылаться в .NET, Silverlight, Windows Phone и XNA на Xbox. Это называется PortableLibrary.

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

Нашел это! У меня было несколько пространств имен XMLNS, определенных в моей библиотеке классов SL4, как:

using System.Windows.Markup;

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

и это помешало сборке WPF ссылаться на него, произведя вышеупомянутую ошибку. Только что переместил объявления пространства имен в проект WPF, чтобы исправить ...

Редактировать

Хорошо, так что это исправило проблему ... но кто -нибудь знает способ ссылаться на сборку SL4 с System.Windows ссылки из полной сборки .NET (не просто связывая файлы и не создавая два разных проекта для обслуживания)?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top