更改资源文件后出现歧义错误

时间:2016-06-16 01:21:13

标签: c# asp.net asp.net-mvc

我有一个ASP.NET应用程序,它有两种语言版本:默认为英语,第二选项为葡萄牙语。

一切都很好,看看第一张图片:

explorer before changing resource file

然后,当我尝试添加或删除字符串资源时,Visual Studio在编译时开始给出歧义错误,如下所示:

  

命名空间'VolunteerGames.Web.Translations'已包含一个   “翻译”的定义

  

之间的歧义   'VolunteerGames.Web.Translations.Translation.ResourceManager'和   'VolunteerGames.Web.Translations.Translation.ResourceManager'

我注意到在更改设计器(Translation.resx)中的资源后,创建了一个名为 Translation1.Designer.cs 的新文件。它创建了另一个名为 Translation 的类。如果我删除这个新文件,我可以编译,但是当我尝试在我的控制器上使用时,找不到我刚刚创建的新字符串。

enter image description here

我无法理解发生了什么。我已经在这个项目中工作了几个月,这一切都很好。

2 个答案:

答案 0 :(得分:10)

因为Visual Studio开始创建文件 Translation1.Designer.cs ,并且该新文件与 Translation.Designer.cs 冲突,并且当我尝试删除它时我得到了错误,然后我删除了 Translation.Designer.cs ,所以现在一切正常。

enter image description here

答案 1 :(得分:0)

对于遇到same problem的后来者

该项目似乎是在ResX Schema旧版本(v1.3)中创建的,但是在ResX Schema v2.0中重新打开(并保存),因为Schemea是自动创建的,所以VS会这样做,因为架构标准不同不适应。我们可以在一个目录中拥有两个完全相同名称的文件,它附加一个带有其原始名称的数字