C# 命名空间中不存在类型资源错误

C# 命名空间中不存在类型资源错误,c#,compiler-errors,namespaces,resources,C#,Compiler Errors,Namespaces,Resources,还有一个问题。我几乎完成了我的项目,但我觉得我必须改变项目的名称空间。 但是,我没有使用重构-->重命名,而是选择了我的名称空间,编辑-->查找并替换,并将整个解决方案替换为不同的名称空间(因此,解决方案中存在名称空间或文本“name1”的任何地方,现在都改为“name2”) 但是现在我发现了大约16个错误,它们都说了同样的话:“类型或名称空间“resources”在名称空间name1中不存在” 例如,在这行代码中(主要在designer.cs中),资源是红色的吗 有关于如何解决这个问题的提示吗

还有一个问题。我几乎完成了我的项目,但我觉得我必须改变项目的名称空间。 但是,我没有使用重构-->重命名,而是选择了我的名称空间,编辑-->查找并替换,并将整个解决方案替换为不同的名称空间(因此,解决方案中存在名称空间或文本“name1”的任何地方,现在都改为“name2”)

但是现在我发现了大约16个错误,它们都说了同样的话:“类型或名称空间“resources”在名称空间name1中不存在”

例如,在这行代码中(主要在designer.cs中),资源是红色的吗


有关于如何解决这个问题的提示吗

您需要在资源文件上运行代码生成,以获得正确的名称空间

遵循以下步骤:

  • 打开项目属性(右键单击>属性)
    • 单击应用程序部分
    • 输入首选的默认命名空间
    • 关闭并保存您的属性
  • 在解决方案资源管理器中导航到resources.resx文件(在“属性”下)
    • 右键单击Resources.resx文件
    • 选择“运行自定义工具”(或alt+L)

这将再次运行资源文件的代码生成。生成的代码使您对资源字符串中的值具有强类型访问权限。

运行自定义工具对我不起作用。 但我发现,如果我添加了一个资源,问题就会自行解决

遵循以下步骤:

  • 打开项目属性(右键单击>属性)
  • 单击参考资料部分
  • 在添加资源下拉列表中,选择添加现有文件
  • 选择任何资源文件。(我选择了一个现有的图像文件)
    • 此时我的错误消失了。
  • 选择刚刚添加的资源
  • 单击删除资源(以清理)
  • 关闭并保存您的属性

我知道响应很晚(非常晚),但问题就在这里。

您很可能试图添加另一个与现有资源同名的资源文件。 要解决此问题,只需删除Resources.resx文件中的相应行,例如,您将看到两行具有相同的“数据名”:


..\Resources\button.png;System.Drawing.Bitmap,System.Drawing,版本=4.0.0.0,区域性=中性,PublicKeyToken=b03f5f7f11d50a3a

因为我的问题没有一个答案有效,所以我决定用自己的答案发布

以下是我所做的:

  • 在完全相同的命名空间(Y)中创建具有相同名称(X)的类
  • 命名空间“Y”已包含“X”的定义。出现错误
  • 删除类X

删除类后,名为X的资源在命名空间中仍然可见。

在我的示例中,
resource.Designer.cs
文件不知何故被从项目中排除。。。单击“显示隐藏文件”(显示所有文件),用鼠标右键将其包含在项目中,并将其修复。Phew..

项目属性中的默认命名空间是否也相应更改?修复转到资源文件(在“属性”下)后,右键单击并选择“运行自定义工具”Hanks guy,非常有用,使用VS2013完成了以下操作:)。我发现我不仅要更新项目的应用程序默认名称空间的名称空间,还要更新.resx文件属性的名称空间:自定义工具名称空间。假设这两个位置与代码开发分开,因此全局查找和替换不会找到它们。@shipr感谢您的报告。我在VS2010中没有自定义工具集,但我将检查VS2013,并在今晚编辑我的答案。
     this.centerPanel.BackgroundImage = global::login_DragDrop.Properties.Resources.oeftest;
  <data name="button" type="System.Resources.ResXFileRef, System.Windows.Forms">
    <value>..\Resources\button.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
  </data>