Visual Studio 2012 - 找不到适合指定区域性的任何资源.在本地化的 C#.Net 桌面应用中

本文关键字:资源 任何 本地化 Net 应用 桌面 区域性 2012 Studio 找不到 Visual | 更新日期: 2023-09-27 17:55:57

我知道SO上有很多类似的问题,但我的问题并不完全相同,建议的解决方案对我不起作用。

因此,我创建了名为"MyApp 1.0"的 C#.NET 桌面应用程序,但后来将默认命名空间更改为 MyApp 。现在,我希望我的应用程序本地化为多种语言,因此我添加了新的资源文件以保留每种语言的 UI 字符串,如 MyAppUIText.en.resxMyAppUIText.gu.resx 等。我还创建了一个带有public static方法的类,用于访问应用程序中任何位置的这些资源的字符串,其代码如下。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Resources;
namespace MyApp
{
    namespace Utility
    {
        class UIText
        {
            private static ResourceManager rm = new ResourceManager("MyApp.MyAppUIText", typeof(FormMyAppMain).Assembly);
            public static string GetString(string key)
            {
                return rm.GetString(key, System.Globalization.CultureInfo.CurrentUICulture);
            }
        }
    }
}

当我运行我的应用程序时,我收到以下运行时错误

找不到适合指定区域性或非特定区域性的任何资源。确保"MyApp.MyAppUIText.resources"在编译时正确嵌入或链接到程序集"MyApp 1.0"中,或者所需的所有附属程序集都是可加载的并已完全签名。

但是,字符串在 UI 中正确加载,但是,表单设计器在标题 To prevent possible data loss before loading the designer, the following errors must be resolved: 中显示相同的错误。

我在这里做错了什么?

附言我是 C# 的新手,但我精通 Java,并且以前使用过它的properties文件。

Visual Studio 2012 - 找不到适合指定区域性的任何资源.在本地化的 C#.Net 桌面应用中

您已经删除或重命名了 MyApp.MyAppUIText.resx 文件。确保表单的语言设置为(默认),更改表单上的一些文本,更改表单的 Text 属性即可。VS 将创建一个新的 MyApp.MyAppUIText.resx 文件,生成解决方案并运行它。