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


浙公网安备 33010602011771号