WPF .Net Core 3.1遇到Satellite Assemblies无法正常加载的处理

1.原因

加载的时候没有调取

AssemblyLoadContext.Default

2.解决方案:

在程序启动的时候,手动调用

/// <summary>
/// Interaction logic for App.xaml
/// </summary>
public partial class App : Application
{
    protected override void OnStartup(StartupEventArgs e)
    {
        //SetCultureInfo();
        LoadSatelliteAssemblies();
        base.OnStartup(e);
    }

    /// <summary>
    /// 设置语言/本地化
    /// </summary>
    private void SetCultureInfo()
    {
        // Create a new object, representing the German culture. 
        CultureInfo culture = CultureInfo.CreateSpecificCulture("zh-CN");

        // The following line provides localization for the application's user interface. 
        Thread.CurrentThread.CurrentUICulture = culture;

        // The following line provides localization for data formats. 
        Thread.CurrentThread.CurrentCulture = culture;

        // Set this culture as the default culture for all threads in this application. 
        CultureInfo.DefaultThreadCurrentCulture = culture;
        CultureInfo.DefaultThreadCurrentUICulture = culture;

    }
    /// <summary>
    /// 加载程序集上下文,手动调用来查找卫星程序集
    /// </summary>
    private void LoadSatelliteAssemblies()
    {
        
        //加载程序集上下文,必须
        var loadContext = AssemblyLoadContext.Default;
        //var arr = loadContext.Assemblies;
    }
}

  

参考:

https://docs.microsoft.com/zh-cn/dotnet/core/dependency-loading/loading-resources

 

 

 

posted @ 2020-07-22 11:11  天命小猪  阅读(344)  评论(0编辑  收藏  举报