名称空间“资源”已包含“SiteResources”的定义

时间:2014-07-31 08:45:55

标签: c# asp.net .net

好的,我的resx文件存在问题,原因是我有这个错误

名称空间“资源”已包含“SiteResources”

的定义

所有文件都在App_GlobalResources中,但我一直收到此错误

任何指针

7 个答案:

答案 0 :(得分:5)

即使您在Visual Studio中隐藏它们,它也有可能尝试读取类似名称的文件,

如果在GlobalResources范围内您有多个文件,请尝试重命名此扩展程序

自:

SiteResources-fr-FR.resx

要:

SiteResources-fr-Fr.old.resx
(可能仍会阅读)

尝试更改后者的扩展名,使其完整不是resx文件,如:

SiteResources-fr-Fr.old

现在100%不是resx文件,应该阻止asp.net混淆你想要使用的文件。

希望这能解决你的问题。

答案 1 :(得分:2)

当我在App_GlobalResources文件夹中添加新的自定义文化但忘记注册它时遇到了这个问题。所以我不得不删除文件,在global.asax中添加以下功能,浏览我网站的随机页面以便代码运行,最后将文件复制回其文件夹。

public static void CreateCulture(string name, string cultureInfo, string regionInfo)
{
    try {
        CultureAndRegionInfoBuilder.Unregister(name);
    } catch { }
    var cib = new CultureAndRegionInfoBuilder(name, CultureAndRegionModifiers.None);
    cib.LoadDataFromCultureInfo(new CultureInfo(cultureInfo));  // Populate the new CultureAndRegionInfoBuilder object with culture information.
    cib.LoadDataFromRegionInfo(new RegionInfo(regionInfo));   // Populate the new CultureAndRegionInfoBuilder object with region information.
    cib.Register();
}

Application_Start

CreateCulture("en-gb-custom", "en-gb", "gb")

奖励:不要忘记在以下文件夹中为用户IIS_IUSRS添加完整权限,否则自定义语言将无法注册:

  • 文件夹C:\Windows\Globalization
  • 注册表:HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Nls\CustomLocale

答案 2 :(得分:1)

这可能是一个边缘案例,但我们不时在我们的开发环境中遇到这种情况。我们必须在Windows中设置自定义文化以支持en-HK。 Windows 8.1现在支持这种文化,就像Windows 2012 R2一样,但旧机器需要创建文化。任何没有此文化设置的计算机都会报告此错误。解决方案是在机器上创建文化(我们为此目的创建了一个控制台应用程序),一切都重新开始。

我在How to fix "namespace x already contains a definition for x" error? Happened after converting to VS2010

上也报告了这个答案

答案 3 :(得分:1)

我遇到了一些问题。您应该编写与en-US完全相同的资源文件或您可以从https://msdn.microsoft.com/en-us/library/ee825488(v=cs.20).aspx查看的任何国家/地区。 我的意思是你不能像这个en-Us或US-en那样改变字符串类型,因为它是特殊的strign。我希望每个人都能看到你的帮助 在...

答案 4 :(得分:0)

确保只有一个GlobalResources.resx文件。

尝试将GlobalResources.Portal-0.resx重命名为GlobalResources.Portal-0.old,因此它现在不是resx文件。

答案 5 :(得分:0)

我需要拥有不同语言的资源。其中一个名字不正确。查看此页面以获取正确的文化名称:https://msdn.microsoft.com/en-us/library/ee825488(v=cs.20).aspx

示例名称:

  • / - 默认资源
  • SiteResources.resx - 南非荷兰语资源 - 南非

答案 6 :(得分:0)

请确保您使用的区域性名称是有效的区域性名称。

例如:sys.pt-eb

pt-eb是无效的区域性名称,因此在构建应用程序时会抛出错误。

可以从

检查支持的文化

IE浏览器->工具-> Internet选项->语言->添加语言