2011-01-06 14 views
12

Silverlight 4とWPF 4ソリューションの両方を含むソリューションがあります。 1つはアプリのウェブ版で、もう1つはデスクトップ版です。WPFとSilverlightの間でコードを共有する最も良い方法

どちらのプロジェクトも、ドメインクラスとインターフェイスが似ていて、ストレージとその他のものの両方にクラウドにアクセスします。

私はクラスライブラリを作成したので、共通のインターフェイスとクラスプロジェクトを作成したかったのですが、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が見つかりません"

私は2つのプロジェクト間でコードを共有したいのですが、どうすればこれをきれいに達成できますか?任意の助け

おかげで、あなたは

+1

SilverlightとWPFのコードを共有するMSDN - http://msdn.microsoft.com/en-us/library/ff921109(v=pandp.40).aspx –

+0

私はこれを今行っていますが、まだSLとWPFの間でAzureアクセスコードを共有することができますか? – Mark

+2

注目の検索人! [Portable Class Libraries](http://msdn.microsoft.com/en-us/library/gg597391.aspx)を参照してください。これは現在.NET 4.0でサポートされています。 – Will

答えて

7

は二つの平行なプロジェクトWPF用とSilverligthのために作成して与えることができます。いずれかのプロジェクトでは、ファイルではなくリンクとしてファイルを追加します。

は、私は、Silverlight 4、WPF、およびWindows Phoneの一つのコードベースでMicrosoft Silverlight Analytics Frameworkため、このsucessfullyを行っている7

+0

したがって、2つのCommon.Interfaceプロジェクト(Common.Interface.SLとCommon.Interface.WPF)を作成し、これらのファイルのうちの1つ(実際のファイルの代わりにリンク)を作成しますか?これは何を達成するのですか? – Mark

+0

「プロジェクト」 - >「既存のアイテムを追加」で、「追加」ボタンの横にあるドロップダウン矢印を確認します。 Linked C#ファイルを使用したSliverlightプロジェクトとWPFプロジェクト間のコード共有の例については、MvvmLight Toolkitをダウンロードしてください。http://mvvmlight.codeplex.com/ –

+0

これはほとんどの人がやっているのです。どのプロジェクトにファイルがあり、どのプロジェクトに「リンクされたアイテム」があるかは関係ありません。次に、1つのプラットフォームのみでなければならないコードがあれば、それは1つのプロジェクトにしか入れることができません。また、クラスがちょっと違う場合は、#ifdef SILVERLIGHTのようにするか、メソッド/等同じクラスの別の部分で各プラットフォームのプロジェクトで異なって定義されています。 –

0

何XAML共有シルバーとコードとWPF

0

について "Portable" プロジェクトを作成します。 。 WPFとSilverlightの両方から参照できる

関連する問題