2011-03-16 23 views
1

標準の.Net 4 WinFormsプロジェクトのWindows 7電話ゲームのマップエディタを作成しています。.Net 4プロジェクトに特定のバージョンのSystem.XML(2.0.5.0)を追加するにはどうすればいいですか?

私は既にXmlSerialise/Deseariliseメソッドを作成しています。これらは、電話プロジェクト内のEntityCollectionクラスのLoadメソッドとSaveメソッドにあります。

Windows 7 Phoneは、System.Xml、System.Xml.LinqおよびSystem.Xml.Serializationの2.0.5.0バージョンを使用します。

これらのdllをlibsディレクトリにコピーして、.Net 4プロジェクトから参照しようとしました - System.Xml.Serialzationは2.0.5.0を参照していますが、これを参照するとSystem.Xml dllが必要です私のLibsディレクトリから、それは私の参照を.Net 4の1つだけ無視します。

とにかく2.0.5.0を参照するように強制できますか?

おかげで、

アンディ

+0

なぜあなたはそのようなことをしますか? –

答えて

1

は、たぶんここにオプションがある限り、コンパイラは

1

だけで文句はありませんように2つのプロジェクト(勝つフォームとWP7)の間のみ、ファイルを共有することですちょっと私は、特定のバイナリを参照する方法を知っていますが、DLLのGACにプロジェクトを移動させるのではなく、参照用の.csprojファイルにHintPathを提供することです。これは次のようになります。

<Reference Include="System.Xml"> 
<SpecificVersion>False</SpecificVersion> 
    <HintPath>..\relative\path\to\lib\folder\System.Xml.dll</HintPath> 
</Reference> 

System.Xmlのバージョンを完全修飾し、SpecificVersionをTrueに設定したい場合があります。 Visual StudioのReferencesフォルダにあるSystem.Xml参照のプロパティウィンドウのパス値を表示することによって、libフォルダ内の特定のDLLが参照されていることを確認できます。アセンブリのこれらの特定のバージョンを参照するように

1

は、各参照のためプロパティウィンドウに移動して、Silverlightのグローバルから別名を変更。

extern alias Silverlight; 
// Per-type: 
using XDocument = Silverlight::System.Xml.Linq; 
// Aliased namespace: 
using Silverlight::System.Xml.Linq; 

これはいつでもあなたが修飾されていないタイプXDocumentを使用することを意味します(または任意の他のタイプの別名:これらのアセンブリを参照するクラスファイルでは、次のようにあたり型のエイリアスまたはエイリアスusingステートメントを追加することができます同じ方法で)、それは一致するエイリアス(すなわちあなたのWP7特有のエイリアス)を持つアセンブリからのものを使用します。

コードを使用してインラインで行うこともできます。例えば。

var document = Silverlight::System.Xml.Linq.XDocument.Parse(text);

状況によっては、ステートメントを使用したエイリアスネームスペースがおそらく最善の策だと思います。

関連する問題