最近,我的崩溃经理通过电子邮件向我发送了我正在开发的游戏的崩溃问题。
System.ArgumentException: Exception from HRESULT: 0x80070057 (E_INVALIDARG)
at System.Globalization.CultureInfo.nativeSetThreadLocale(String localeName)
at System.Threading.Thread.set_CurrentCulture(CultureInfo value)
at Siphon_Spirit.Game1.Initialize()
at Microsoft.Xna.Framework.Game.RunGame(Boolean useBlockingRun)
at Siphon_Spirit.Program.Main(String[] args)
由于它是自动通过电子邮件发送的,我不知道用户的位置,但似乎没有为他们的机器设置 InvariantCulture 之类的。
在我的初始化方法中,我使用以下代码。我相信只有设置 CurrentCulture 和 CurrentUICulture 的两条线会引起问题。
protected override void Initialize()
{
this.IsMouseVisible = false;
SetFullScreen(true);
SaveController.LoadOptions();
screenManager = new Screens.ScreenManager();
screenManager.Initialize();
graphics.ApplyChanges();
Window.Title = "Siphon Spirit";
SaveController.Initialize();
rendertarget = new RenderTarget2D(GraphicsDevice, GlobalData.ScreenWidth, GlobalData.ScreenHeight);
debugger = new Debugger();
Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture;
Thread.CurrentThread.CurrentUICulture = System.Globalization.CultureInfo.InvariantCulture;
base.Initialize();
}
关于是什么导致它崩溃的任何想法?这似乎是一个孤立的案例,因为越来越多的人毫无问题地运行它。