WP8应用程序在本地化后崩溃

时间:2014-09-19 17:12:34

标签: c# windows-phone-8 localization

最近,我决定尝试Multilingual App Toolkit,以便在我现有的WP8应用程序中添加本地化支持。

我按照说明操作,它为我选择的语言生成了AppResources文件,并准备进行测试。不幸的是,每次我将应用程序部署到我的设备(也尝试使用模拟器)时,它会立即崩溃,没有任何异常,消息或任何其他类型的信息。我试图清理项目,删除bin和obj文件夹,禁用我之前添加的语言和Multilingual App Toolkit,但没有运气。

我使用AppResources文件创建了一个新项目,它运行正常。但是,我不认为问题出在我的代码中,因为在崩溃之前它甚至没有到达App()文件中的App.xaml.cs方法。

有谁知道发生了什么事?

编辑:
Resources文件夹是否有大小限制?

编辑2:
我将调试器附加到Visual Studio进程,当我在手机上运行项目时,会抛出以下异常:

  

线程0x3d34已退出,代码为259(0x103)。

     

PresentationCore.dll中出现'System.NotSupportedException'类型的第一次机会异常

     

PresentationCore.dll中出现'System.NotSupportedException'类型的第一次机会异常

     

EnC:进入调试模式:项目'ProjectName'

     

JetBrains.Platform.ReSharper.VisualStudio.Core.dll

中出现'System.OutOfMemoryException'类型的第一次机会异常      

线程0x1900已退出,代码为259(0x103)。

     

Microsoft.Build.dll中出现“Microsoft.Build.Exceptions.InvalidProjectFileException”类型的第一次机会异常

     

mscorlib.dll中出现'Microsoft.Build.Exceptions.InvalidProjectFileException'类型的第一次机会异常

     

线程0x27d0已退出,代码为259(0x103)。


感谢

4 个答案:

答案 0 :(得分:2)

我要检查的前四件事是AppResources.resx访问修饰符是否公开

设计师没有造成错误。

该文件夹名为Resources。

在工具菜单中启用了多语言应用工具包。

我从未在资源文件夹中遇到过大小问题。我建议从一种语言开始,然后在功能完全正常后添加到列表中。

答案 1 :(得分:2)

我通过做我想避免的事情来解决这个问题;

我创建了一个全新的项目,将旧项目中的所有文件复制到新项目(本地化文件也是如此)。现在一切都很好。

我认为生成AppResources.Designer.cs文件的ResX Custom Tool有问题。

答案 2 :(得分:1)

这是一个非常罕见的问题。试试这个:创建一个只包含AppResources文件的新项目。尝试部署项目。如果新的应用程序崩溃,那么它与AppResources文件的问题;如果没有,那么你的问题就在你的代码中。

答案 3 :(得分:1)

您是否将本地化文件移至另一个项目或更改了名称?

如果是,请检查[您的资源文件中的English.Designer.cs

并且有代码寻找资源:

/// <summary>
        ///   Returns the cached ResourceManager instance used by this class.
        /// </summary>
        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
        public static global::System.Resources.ResourceManager ResourceManager {
            get {
                if (object.ReferenceEquals(resourceMan, null)) {
                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Localization.Resources.AppResources", typeof(AppResources).Assembly);
                    resourceMan = temp;
                }
                return resourceMan;
            }
        }

在我的代码中,字符串Localicazation.Resources.AppResources代表Project.Folder.ResourceFiles。