3

MSDN ではAppDomain.GetAssemblies()、Silverlight 4 でサポートされていると言われています。

私のプロジェクトでは、Silverlight のバージョン 4 をターゲットにすると (3 回確認しました)、以下のスクリーンショットに示すように、GetAssemblies()上のメソッドにアクセスできません。AppDomain

Silverlight 4 の AppDomain クラスで GetAssemblies() メソッドが見つかりません

とにかく試してみると、コンパイルされません。次のコードを使用して、これを回避できます。

dynamic domain = AppDomain.CurrentDomain;
var assemblies = domain.GetAssemblies();

コンパイルして正常に動作しているように見えますが、私のテストでは、Silverlight クライアント 5.X および Silverlight 4.0.60351 以降でのみ動作します。以下のバージョンのクライアントでは動作しません。問題のプロジェクトは、Silverlight アプリケーションのエントリ ポイントです。

このトピックに関するグーグルは、主にそれがサポートされていると言っています...

だから私の質問は:

  • a)本当にサポートされていますか? もしそうなら、クライアントが4.X バージョンのいずれかを使用している限り、常に機能するようにするにはどうすればよいですか?
  • b)AppDomain.CurrentDomain.GetAssemblies()上記の回避策なしで IDE で使用するにはどうすればよいですか? 私が逃したものはありますか?

役に立つ場合に備えて、デスクトップに次のものがインストールされています。

  • Silverlight クライアント 5.1.10411
  • Silverlight SDK 3、4、および 5
  • Silverlight 4 ツールキット 2010 年 4 月
  • VS2010 用の Silverlight 4 ツール

この退屈な作業で丸一日を失うことを避けるために、(まだ)何かをアンインストール/再インストールしようとはしませんでした...

--

編集: SL4 の mscorlib.dll のクラスにGetAssemblies()メソッドが存在しないようです。AppDomainしたがって、MSDN のドキュメントは正しくなく、ランタイム SL4 クライアントは何らかの理由である時点でパッチが適用されていると思います (SL5 でコンパイルされたアプリケーションとの互換性?)...

4

1 に答える 1

2

また、これら ( MSDN ページの私のコメントを参照) の動作や MSDN の間違ったドキュメントにつまずき、Siverlight 4 でメソッド呼び出し GetAssemblies を取得するさまざまな方法を試しました。私にとっての解決策は、Silverlight 5 をインストールし、Silverlight プロジェクトをSilverlight 5 で動作します。

私の提案は、Silverlight ランタイムに対するパッチまたは Silverlight の更新によって、後で GetAssemblies メソッドが追加されたということです。

于 2012-05-14T12:03:49.330 に答える