代码之家  ›  专栏  ›  技术社区  ›  Sharon

在VS2008中添加到.resx文件的新字符串导致编译错误,该字符串不存在

  •  1
  • Sharon  · 技术社区  · 17 年前

    我最近将我的项目从VS2005升级到了VS2008。我使用一个.resx文件来存储字符串,它在VS2005中工作得很好。

    现在,有了VS2008,我在strings.resx文件中添加了一个新的字符串,并在代码中使用了它(c)。但我有一个编译错误,我的新字符串不存在于字符串中。 我让我的同事在他的机器上检查,他也遇到了同样的问题。 我发现vs2008将新字符串添加到.resx文件中,而不是添加到.designer.cs文件中。

    这是一个已知的问题吗?有什么办法可以解决吗?(除了手动将代码添加到.designer.cs之外)

    事先谢谢。

    2 回复  |  直到 17 年前
        1
  •  1
  •   Sharon    17 年前

    结果发现,出现问题的原因是我的.resx和.designer.cs文件在我从starteam签出后是只读的。

    在VS2005中,有人问我是否想 二者都 文件可写,当我回答“是”时.designer.cs文件也被修改,因此我可以从代码访问新成员。但是在VS2008中,它不会询问我是否要使.designer.cs文件可写,因此它保持只读,并且VS无法修改它,因此我无法访问新成员。

    总结: 在更改.resx文件之前,应始终使.resx文件和.designer.cs文件都可写,以使其与vs2008正确工作。

        2
  •  0
  •   Graham Clark    17 年前

    我刚刚尝试用.resx文件在vs2005中创建一个项目,然后将其转换为vs2008,没有问题。不过,我想我以前见过:在VS2008的解决方案资源管理器中,是否分别显示.resx和.designer文件?例如,.resx文件旁边没有一个“+”图标,该图标将展开以显示.designer文件。

    如果是这样的话,我相信有某种方法可以让VS2008再次将它们视为连接的文件。可能在解决方案资源管理器中同时突出显示,右键单击并查看选项是什么?