8

メイン フォームを表示する前に、個々のアセンブリの読み込みを示すスプラッシュ スクリーンを作成したいと考えています。

私はプリロードを行っています:

Assembly a = System.Reflection.Assembly.GetExecutingAssembly();
foreach (AssemblyName an in a.GetReferencedAssemblies())
{
    Assembly.Load(an);
}

2 つの問題があります。

問題 1:

一部のアセンブリは、参照に含まれていなくても、プリロード後にロードされます。

'x.vshost.exe' (マネージド (v4.0.30319)): ロード済みシンボルの読み込みをスキップしました。モジュールが最適化され、デバッガー オプションの [Just My Code] が有効になります。

'x.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\windows\Microsoft.Net\assembly\GAC_MSIL\PresentationFramework.Aero\v4.0_4.0.0.0__31bf3856ad364e35\PresentationFramework.Aero.dll',シンボルの読み込みをスキップしました。モジュールが最適化され、デバッガー オプションの [Just My Code] が有効になります。

アセンブリを参照に接続することでこの問題を回避できますが、コンパイラが強制しないため、そうしたくありません。

問題 2:

私はテレリック RadPadeView を使用しています。2番目のページには、TelerikのWPF Ganttを含むElementHostコントロールがあります(メインアプリケーションはWinFormです)。メイン ウィンドウを表示した後、2 番目のタブをクリックしてガントを表示します。そしてこの時点で、追加のアセンブリがロードされました。

'x.exe' (Managed (v4.0.30319)): Loaded 'C:\windows\Microsoft.Net\assembly\GAC_MSIL\PresentationFramework-SystemXmlLinq\v4.0_4.0.0.0__b77a5c561934e089\PresentationFramework-SystemXmlLinq.dll'、スキップされた読み込みシンボル。モジュールが最適化され、デバッガー オプションの [Just My Code] が有効になります。

'x.exe' (Managed (v4.0.30319)): Loaded 'C:\windows\Microsoft.Net\assembly\GAC_MSIL\PresentationFramework-SystemXml\v4.0_4.0.0.0__b77a5c561934e089\PresentationFramework-SystemXml.dll'、スキップされた読み込みシンボル。モジュールが最適化され、デバッガー オプションの [Just My Code] が有効になります。

問題は、すべてのアセンブリをプリロードする方法です。

  1. 参照された
  2. 未参照 (問題 1)
  3. 必要になるまで読み込まれない (問題 2)
4

1 に答える 1

1
Assembly.Load

すでに参照されているタイプまたはファイルパスからアセンブリをロードする必要があるのはこれだけです。MSDNを参照してください

于 2014-12-15T20:22:27.907 に答える