c# - 重命名命名空间后无效的 .resx 文件

标签 c# winforms visual-studio-2010 namespaces resx

考虑以下情况:

  • 在我的 Windows 窗体应用程序中,我有一个窗体。
  • 该表单有一个 .resx 文件。
  • 该表单使用了另一个程序集(“Other.dll”)中的一个类(“OtherClass”)。
  • “Other.dll”是在与主应用程序相同的 VisualStudio 2010 解决方案中构建的 (只是同一解决方案中的一个单独项目)。
  • 在主项目(Windows 窗体应用程序)中,我有正确的 添加了对“Other.dll”项目的引用。

一切正常(如预期)。

现在我需要将“Other.dll”中包含的类型的命名空间从“Old.Namespace”更改为“New.Namespace”:

  1. 在 VS2010 中,我调出“Other.dll”的属性窗口 项目
  2. 我将“默认命名空间”文本框中的命名空间从“Old.Namespace”更改为 “新命名空间”
  3. 我相应地更改相关 .cs 文件中的命名空间
  4. 我重建修改后的“Other.dll”项目。没有错误。修改后的“Other.dll”生成OK。

问题来了:

当我在此之后重建整个解决方案时,编译器停止并报告表单的 .resx 文件无效:


“无效的 Resx 文件。无法加载 .RESX 文件中使用的类型 Old.Namespace.OtherType,其他,版本 1.0.0.0,Culture=neutral,PublicKeyToken=null . 确保必要的引用已添加到您的项目中。第 1521 行,位置 5"


显然,.resx 文件仍然从某处引用具有 命名空间的类型。那个“某处”似乎来自 .resx 文件的二进制部分!

问题: 我怎样才能使 .resx 理解它现在必须引用新类型(具有更改的命名空间)?

请帮忙,我真的不知道如何继续...

最佳答案

我遇到了同样的问题,解决方案是从 resx 文件中删除数据部分

关于c# - 重命名命名空间后无效的 .resx 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13586941/

相关文章:

c# - 如何将新元素添加到作为 ConcurrentDictionary 值的哈希集中?

c# - 未调用 Windows 窗体文本框函数

c# - 为什么只有在VS2010中调试时cast总是返回零?

c# - 将 Visual Studio 2010 工作区与 Visual Studio 2013 工作区相结合

visual-studio-2010 - 事件构建之前和之后停止和重新启动Windows服务

c# - 如何在 Dapper 中插入 SQL 文字作为查询参数?

c# - 如何在 View 模型中设置总计属性的值

.net - 接收从网页拖动到 WPF 窗口的图像

c# - For 循环的返回值

java - 我什么时候应该使用新类而不是添加新字段(作为状态)?