gpt4 book ai didi

c# - 预加载程序集 : referenced, 未引用,直到需要时才加载

转载 作者:太空狗 更新时间:2023-10-29 20:41:53 26 4
gpt4 key购买 nike

我想在显示主窗体之前创建一个启动画面来显示单个程序集的加载。

我正在通过以下方式进行预加载:

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

我有两个问题:

问题 1:

一些程序集在预加载之后加载,即使它们不包含在引用中:

'x.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\windows\Microsoft.Net\assembly\GAC_MSIL\PresentationFramework-SystemData\v4.0_4.0.0.0__b77a5c561934e089\PresentationFramework-SystemData.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.

'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', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.

我可以通过将程序集连接到引用来解决这个问题,但我不想这样做,因为编译器不会强制我这样做。

问题 2:

我正在使用 telerik RadPadeView。在第二页上,我有 ElementHost 控件,其中包含来自 Telerik 的 WPF Gantt(主要应用程序是 WinForm)。显示主窗口后,我单击第二个选项卡以查看甘特图。在这一点上,加载了额外的程序集。

'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', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.

'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', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.

问题是,如何预加载所有程序集:

  1. 引用
  2. 未引用(问题 1)
  3. 直到需要时才加载(问题 2)

最佳答案

Assembly.Load

您需要从已经引用的类型或文件路径加载程序集。查看MSDN

关于c# - 预加载程序集 : referenced, 未引用,直到需要时才加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19023494/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com