簡體   English   中英

預加載程序集:引用,未引用,在需要之前不加載

[英]Preload assemblies: referenced, unreferenced, not loaded until they are needed

我想在顯示主窗體之前創建一個啟動屏幕,顯示單個裝配的加載。

我正在做的預加載:

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

我有兩個問題:

問題1:

某些程序集在預加載后加載,即使它們未包含在引用中:

'x.vshost.exe'(Managed(v4.0.30319)):已加載'C:\\ windows \\ Microsoft.Net \\ assembly \\ GAC_MSIL \\ PresentationFramework-SystemData \\ v4.0_4.0.0.0__b77a5c561934e089 \\ PresentationFramework-SystemData.dll',跳過加載符號。 模塊已經過優化,調試器選項“Just My Code”已啟用。

'x.vshost.exe'(Managed(v4.0.30319)):已加載'C:\\ windows \\ Microsoft.Net \\ assembly \\ GAC_MSIL \\ PresentationFramework.Aero \\ v4.0_4.0.0.0__31bf3856ad364e35 \\ PresentationFramework.Aero.dll',跳過加載符號。 模塊已經過優化,調試器選項“Just My Code”已啟用。

我可以通過將程序集連接到引用來解決這個問題,但我不想這樣做,因為編譯器不強迫我。

問題2:

我正在使用telerik RadPadeView。 在secound頁面上,我有一個ElementHost控件,它包含來自Telerik的WPF Gantt(主應用程序是WinForm)。 在顯示主窗口后,我點擊第二個選項卡查看甘特圖。 在這一點上,加載了額外的組合。

'x.exe'(Managed(v4.0.30319)):已加載'C:\\ windows \\ Microsoft.Net \\ assembly \\ GAC_MSIL \\ PresentationFramework-SystemXmlLinq \\ v4.0_4.0.0.0__b77a5c561934e089 \\ PresentationFramework-SystemXmlLinq.dll',已跳過loading符號。 模塊已經過優化,調試器選項“Just My Code”已啟用。

'x.exe'(Managed(v4.0.30319)):已加載'C:\\ windows \\ Microsoft.Net \\ assembly \\ GAC_MSIL \\ PresentationFramework-SystemXml \\ v4.0_4.0.0.0__b77a5c561934e089 \\ PresentationFramework-SystemXml.dll',已跳過loading符號。 模塊已經過優化,調試器選項“Just My Code”已啟用。

問題是,如何預加載所有程序集:

  1. 引用
  2. 未引用(問題1)
  3. 在需要之前不加載(問題2)
Assembly.Load

您是否需要從已引用類型或文件路徑加載程序集。 請參閱MSDN

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM