2011-01-06 5 views
12

Silverlight 4 및 WPF 4 솔루션을 모두 포함하는 솔루션이 있습니다. 하나는 앱의 웹 버전이고 다른 하나는 데스크톱 버전입니다.WPF와 Silverlight간에 코드를 공유하는 가장 좋은 방법은

두 프로젝트 모두 도메인 클래스와 인터페이스가 유사하며 저장소 및 기타 항목에 대해 클라우드에 액세스합니다.

공용 인터페이스 및 클래스 프로젝트를 만들고 싶었으므로 클래스 라이브러리를 만들었지 만 알고 있지는 않지만 Silverlight는 클래스 라이브러리에 대한 참조를 추가 할 수 없습니다. 그래서 실버 라이트 클래스 라이브러리 등의 공동 프로젝트를 만들어,하지만 난 WPF 프로젝트에서 것을 참조 할 때 경고 얻을 :

Warning The project 'Interface.Common.Silverlight' cannot be referenced. The referenced project is targeted to a different framework family (Silverlight)

내가 그 라이브러리에서 어떤 클래스를 사용할 때 나는 심지어 클래스 로딩 런타임 오류를 얻을 수를 "런타임에 System.Windows를 찾을 수 없기 때문에"

두 프로젝트간에 코드를 공유하고 싶다면 어떻게 이런 방식으로 깨끗하게 달성 할 수 있습니까? 어떤 도움

덕분에 당신은

+1

Silverlight와 WPF 간의 코드 공유 : http://msdn.microsoft.com/en-us/library/ff921109(v=pandp.40).aspx –

+0

감사합니다. , 지금이 일을하고 있지만 여전히 많은 질문이 있습니다 ... SL과 WPF 사이에 Azure 액세스 코드를 공유 할 수 있습니까? – Mark

+2

주의 사항 검색 자! .NET 4.0에서 지원되는 [Portable Class Libraries] (http://msdn.microsoft.com/en-us/library/gg597391.aspx)를 확인하십시오! – Will

답변

7

는 두 개의 병렬 프로젝트 WPF에 대한 하나 Silverligth 하나를 만들 줄 수 있습니다. 프로젝트 중 하나의 경우 파일을 파일 대신 링크로 추가하십시오.

나는 실버 라이트 4, WPF 및 Windows Phone에 대해 하나의 코드베이스로 Microsoft Silverlight Analytics Framework이 성공적으로했을 7.

+0

그래서 두 개의 Common.Interface 프로젝트 (Common.Interface.SL 및 Common.Interface.WPF)와 이들 중 하나의 파일 (어느 것이?)을 실제 파일 대신 링크로 만듭니다. 이것은 무엇을 성취합니까? – Mark

+0

프로젝트 -> 기존 항목 추가에서 추가 버튼 옆의 드롭 다운 화살표를 확인하십시오. 링크 된 C# 파일을 사용하여 Sliverlight와 WPF 프로젝트 간의 코드 공유 예제를 보려면 MvvmLight Toolkit을 다운로드하십시오. http://mvvmlight.codeplex.com/ –

+0

그래, 대부분의 사람들이 보는 것입니다. 어떤 프로젝트에 파일이 있고 "링크 된 항목"이있는 것은 중요하지 않습니다. 그런 다음 하나의 플랫폼 만 있어야하는 코드가있는 경우 하나의 프로젝트에만있을 수 있으며 클래스가 약간 다르면 #ifdef SILVERLIGHT와 같은 작업을 수행하거나 메서드/속성/기타 동일한 클래스의 다른 부분에서 각 플랫폼의 프로젝트에서 다르게 정의됩니다. –

0

무엇 XAML 공유 실버와 코드와 WPF

0

에 대한 "Portable"프로젝트를 만듭니다 . WPF와 Silverlight에서 모두 참조 할 수 있습니다.

관련 문제