我有一个ASP.NET应用程序,它有两种语言版本:默认为英语,第二选项为葡萄牙语。
一切都很好,看看第一张图片:
然后,当我尝试添加或删除字符串资源时,Visual Studio在编译时开始给出歧义错误,如下所示:
命名空间'VolunteerGames.Web.Translations'已包含一个 “翻译”的定义
和
之间的歧义 'VolunteerGames.Web.Translations.Translation.ResourceManager'和 'VolunteerGames.Web.Translations.Translation.ResourceManager'
我注意到在更改设计器(Translation.resx)中的资源后,创建了一个名为 Translation1.Designer.cs 的新文件。它创建了另一个名为 Translation 的类。如果我删除这个新文件,我可以编译,但是当我尝试在我的控制器上使用时,找不到我刚刚创建的新字符串。
我无法理解发生了什么。我已经在这个项目中工作了几个月,这一切都很好。
答案 0 :(得分:10)
因为Visual Studio开始创建文件 Translation1.Designer.cs ,并且该新文件与 Translation.Designer.cs 冲突,并且当我尝试删除它时我得到了错误,然后我删除了 Translation.Designer.cs ,所以现在一切正常。
答案 1 :(得分:0)
对于遇到same problem的后来者
该项目似乎是在ResX Schema旧版本(v1.3)中创建的,但是在ResX Schema v2.0中重新打开(并保存),因为Schemea是自动创建的,所以VS会这样做,因为架构标准不同不适应。我们可以在一个目录中拥有两个完全相同名称的文件,它附加一个带有其原始名称的数字