【问题标题】:type resources does not exist in namespace error命名空间错误中不存在类型资源
【发布时间】:2014-07-05 14:08:07
【问题描述】:

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

但现在我收到大约 16 个错误,它们都在说同样的事情:“名称空间 name1 中不存在类型或名称空间“资源””。

     this.centerPanel.BackgroundImage = global::login_DragDrop.Properties.Resources.oeftest;

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

关于如何解决这个问题的任何提示?

【问题讨论】:

  • 您的项目属性中的默认命名空间是否也相应更改?修复后转到资源文件(在属性下),右键单击并选择运行自定义工具
  • 谢谢家伙,非常有帮助,成功了:)

标签: c# compiler-errors namespaces resources


【解决方案1】:

我还使用“查找和替换”重命名了我的项目命名空间并遇到了同样的问题。 @rene 建议的应用程序修复是一个修复(谢谢),但我发现“settings.settings”具有旧的命名空间名称。使用 VS2019 时,我没有看到任何方法可以找到错误的名称,因此我求助于“查找”来查找问题。

【讨论】:

    【解决方案2】:

    在我的情况下,Resource.Designer.cs 文件以某种方式从项目中排除...单击显示隐藏文件(显示所有文件),通过右键单击将其包含在项目中并已修复。呼……

    【讨论】:

      【解决方案3】:

      由于在我的情况下没有一个答案有效,我决定发布自己的答案。

      这是我所做的:

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

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

      【讨论】:

        【解决方案4】:

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

          <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>
        

        【讨论】:

          【解决方案5】:

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

          按照以下步骤操作:

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

          我知道迟到(非常)回复,但你去吧。

          【讨论】:

            【解决方案6】:

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

            按照以下步骤操作:

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

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

            【讨论】:

            • 使用VS2013。我发现我不仅要更新项目的应用程序默认命名空间的命名空间,还要更新 .resx 文件属性的命名空间:自定义工具命名空间。假定这两个地方与代码开发是分开的,因此它们不会被全局查找和替换找到。
            • @shipr 感谢您的报告。我没有在 VS2010 中设置自定义工具,但我会检查 VS2013 并在今晚编辑我的答案。
            猜你喜欢
            • 2014-10-02
            • 1970-01-01
            • 2013-05-24
            • 1970-01-01
            • 2019-06-27
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多