InitializeComponent()根据系统语言找不到资源
该应用程序是在运行Windows 10的机器上开发的,系统语言设置为我们当地的语言,丹麦语。 现在我们正处于软件需要在其他国家的办公室使用的阶段。 然而,这些机器在启动时崩溃了,我发现如果我在自己的机器上更改系统语言,它也不适用于我。 为什么这是,我们无法弄清楚。
来自InitializeComponent的错误消息:
System.IO.IOException:'找不到资源'views / main / mainview.xaml'。'
堆栈跟踪:
在System.IO.Packaging.PackagePart.GetStream(FileMode模式,FileAccess访问)上System.IO.Packaging.PackagePart.GetStream()System.Windows上MSin.Internal.AppModel.ResourcePart.GetStreamCore(FileMode模式,FileAccess访问) D: Workspace Visual Studio MT中的InfoCenter.Views.Main.MainView.InitializeComponent()中的.Application.LoadComponent(Object component,Uri resourceLocator)信息中心WPF Info Center Views Main MainView.xaml:line 1在InfoCenter.Views.Main.MainView..ctor()中D: Workspace Visual Studio MT信息中心WPF Info Center Views Main MainView.xaml.cs:第21行InfoCenter.App.OnStartup(StartupEventArgs e)在D: Workspace Visual Studio MT信息中心WPF 信息中心 App.xaml.cs:在System.Windows.Application的第57行<。ctor> b__1_0(对象未使用)在System.Windows.Threading。 System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source,Delegate callback,Object args,Int32 numArgs,D)中的ExceptionWrapper.InternalRealCall(Delegate回调,Object args,Int32 numArgs) System.Windows.Threading.DispatcherOperation.InvokeImpl()System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state)at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext,ContextCallback callback,Object state,Boolean preserveSyncCtx)在System.Threading.ExecutionContext.Run(ExecutionContext executionContext,ContextCallback回调,对象状态)在MS.Internal.CulturePreservingExecutionContext.Run(CulturePreservingExecutionContext executionContext)上System.Threading.ExecutionContext.Run(ExecutionContext executionContext,ContextCallback回调,对象状态,Boolean preserveSyncCtx) ,ContextCallback回调,对象状态)在System.Windows.Threading.DispatcherOperation.Invoke()在System.Windows.Threading.Dispatcher.ProcessQueue()在System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd,Int32 msg,IntPtr wParam ,IntPtr lParam,布尔&处理)在MS.Win32.HwndWrapper.WndProc(IntPtr hwnd,I nt32 msg,IntPtr wParam,IntPtr lParam,布尔&处理)在System.Windows.Threading System.Windows.Threading.ExceptionWrapper.InternalRealCall(委托回调,对象args,Int32 numArgs)MS.Win32.HwndSubclass.DispatcherCallbackOperation(对象o)在MS.Win32上System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority优先级,TimeSpan超时,Delegate方法,Object args,Int32 numArgs)上的.ExceptionWrapper.TryCatchWhen(Object source,Delegate callback,Object args,Int32 numArgs,Delegate catchHandler) .HwndSubclass.SubclassWndProc(IntPtr hwnd,Int32 msg,IntPtr wParam,IntPtr lParam)位于System.Windows.Threading的System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame框架)上的MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG&msg)。 Dispatcher.PushFrame(DispatcherFrame框架)
在System.Windows.Application.RunDispatcher(对象忽略)在System.Windows.Application.RunInternal(窗口窗口)在System.Windows.Application.Run(窗口窗口)在System.Windows.Application.Run()在InfoCenter.App .Main()在D: Workspace Visual Studio MT信息中心WPF 信息中心 obj Debug App.g.cs:第51行
以下是一些代码:
App.xaml中
<!--ANCHOR: Updater-->
<updater:SingleInstanceApplication x:Class="InfoCenter.App"
x:Name="App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:updater="clr-namespace:InfoCenter.Updater">
<Application.Resources>
</Application.Resources>
</updater:SingleInstanceApplication>
App.xaml.cs:
protected override void OnStartup(StartupEventArgs e)
{
if (PreProcessor.Prod)
Dispatcher.UnhandledException += OnDispatcherUnhandledException;
base.OnStartup(e);
AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);
var app = new MainView { ShowInTaskbar = false, Topmost = true }
var context = new MainViewModel();
app.DataContext = context;
app.Show();
}
其他信息: - 我们使用ClickOnce进行部署。 - 该应用程序有一些后台任务将继续运行。 它看起来就像没有视图一样运行。 - 我们使用MVVM模式。
如果我错过了一些信息,请不要犹豫,问问!
这是关于Culure Info的一个问题,因为您在资源文件中添加了这一行
<UICulture>en-US</UICulture>
继这篇文章后,你应该能够解决你的问题,取消注释这一行
[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
在你的assembly.info.cs中
链接地址: http://www.djcxy.com/p/63609.html上一篇: InitializeComponent() Cannot locate resource based on system language