2011-08-11 11 views
1

私はSilverlightプロジェクトに取り組んでおり、最近私のチームの誰かが私たちのアプリのメソッドにvar popups = VisualTreeHelper.GetOpenPopups()を追加しました。ソース管理からコードを取得したときに、GetOpenPopupsVisualTreeHelperに見つかりませんでしたというコンパイルエラーが発生しました。 VisualTreeHelperSystem.Windows.Media名前空間からのオブジェクトであり、このファイルのコードファイルと他のチームのコードファイルとの間に違いはありません。オブジェクトブラウザでは、System.Windows.Media名前空間のSystem.WindowsアセンブリではGetOpenPopupsメソッドがリストされていないことがわかりますが、これは他のチームのためのものです。何らかの形で、これらのアセンブリのバージョンが異なるように見えますが、参照バージョンがプロジェクト/ソリューションから間違っていることに関する警告はありません。Silverlightのシステムオブジェクトにメソッドがないのはなぜですか?

私はここで何が欠けていますか?私のためにGetOpenPopups()が欠けているのはなぜですか(他のチームではありません)。

答えて

1

私は、最新のバージョンのSilverlight SDKをダウンロードしてインストールしました(プロジェクト内でコードの変更はありません)。このメソッドはVisualTreeHelperに表示されています。 Aparently GetOpenPopupsは、最近追加されたメソッドです(Silverlight 4以降)。私は前もってSDKをインストールしていたと思っていました。私たちは約1年前にプロジェクトの開始以来、Silverlight 4に対して開発を行っていました。なぜ私のマシンで利用できなかったのか、まだ混乱しています。私のマシン上で利用可能なバージョンと、私たちのプロジェクトで参照されていたバージョンとのバージョンに関する警告やエラーはありませんでした。 .NETアセンブリのバージョン管理について理解し、展開時に問題がないことを確認するために、.NETアセンブリのバージョン管理についてお読みください。提案のおかげでありがとう。

2

Silverlight版のアセンブリを参照してもよろしいですか? standard .Net versionには、方法は含まれていませんが、SL oneはありません。

+0

はい、私はSilverlightバージョンを使用しています。これはSilverlightプロジェクトで参照され、Silverlight以外のアセンブリへの参照を追加することはできません。 –

+0

ええと...あなたはWinphone7アプリケーションを開発していますか? – dlev

0

Silverlightは、 VisualTreeHelperに非常に限定されたメンバーセットを持ち、 GetOpenPopupsはその1つではありません。問題は本当にあなたのチームの他の人が存在しない方法を見ているのはなぜですか?

コードファイルは別のプロジェクトのWPFプロジェクトにリンクされていますが、誰かがこのコードを#if SILVERLIGHTで保護するのを忘れていることが考えられます。 WPFプロジェクトで現在作業しているので、うまくいくように見えます。

ここでのレッスンは、オンラインのMSDNドキュメントを最初にチェックするか、答えを出す前に試してみることです。

+0

Hey Anthonyさん、あなたのブログ記事[The Coding Bloke - Visual Tree Enumeration](http://geekswithblogs.net/codingbloke/archive/2010/12/19/visual-tree-enumeration.aspx)を最近読んでブックマークしました。私は実際に、データグリッドのセルを使って作業していた今日の誰かに記事を紹介しました。あなたの提案をありがとうが、それはバージョンの問題だったことが判明した。 MSDNによると、GetOpenPopupsはSilverlight 4(1年以上使用していますが、何らかの理由で古いアセンブリがあったはずです)の時点で新しいものです。 WPFコードを共有していますが、これはその一部ではありません。 –

+0

@Adam:非常に興味深いですが、ドキュメントアクセスのために.chmファイルを使用する傾向があります。あなたは絶対に正しいです。GetOpenPopupsは存在し、ちょうど.chmファイルには書かれていません。私は更新された.chmファイルを探しに行くべきかもしれません。 – AnthonyWJones

関連する問題