【问题标题】:The type or namespace name doesn't exist in the namespace etc命名空间等中不存在类型或命名空间名称
【发布时间】:2013-01-21 14:09:18
【问题描述】:

Visual Studio 2012。

我有两个项目 A 和 B。A 是控制台应用程序。 A 的默认命名空间是“PayT”。B 是类库类型,sAssembly 名称是“RetentionPolicyManager”,B 的默认命名空间是“RetentionPolicyManager”。

现在在项目 A 中,我添加了 B 的引用,即 RetentionPolicyManager.dll。

在A的一类中,有一行:

using PayT.RetentionPolicyManager;

但是我在重建解决方案时总是遇到错误:

命名空间“PayT”中不存在类型或命名空间名称“RetentionPolicyManager”(您是否缺少程序集引用?)

如果我不构建解决方案,它似乎可以并且没有错误。

【问题讨论】:

  • 你试过using RetentionPolicyManager吗?
  • 还是错了,实际上如果我输入 PayT.,intelsense 会显示 'RetentionPolicyManager'。
  • "如果我不构建解决方案,似乎还可以,没有错误。"这就是编译错误的问题......

标签: c# .net visual-studio reference


【解决方案1】:

几个月前我遇到了同样的问题。问题是两个项目没有针对同一个平台,即控制台应用程序针对.Net framework 4.0 Client Profile,而库针对full .Net framework 4.0

已通过针对两个项目的完整 .Net 4.0 框架进行修复。

【讨论】:

  • 我在一个项目中使用了 .net 4.0,在另一个项目中使用了 .net 4.5。现在我对它们都应用了相同的 .net 4.0。现在找不到库项目的引用错误(在B\bin\Debug中找不到元数据文件,但它在那里)。
  • 哪个是4.5,哪个是4.0?您可以尝试为两者指定 4.5 吗?
  • 这不应该是VS可以在编译时发现的错误,不会抛出看似无关的错误吗?
  • 我希望我能 +10 这个。虽然它没有解决我的问题,但它引导我找到了源头。我会浪费几天的时间来确定目标平台可能会引发这种情况。
【解决方案2】:

那是因为RetentionPolicyManager 不存在于PayT 中,它是一个单独的dll 中自己的命名空间,你只需要:

 using RetentionPolicyManager

【讨论】:

    【解决方案3】:

    根据你的描述,应该是:

    using RetentionPolicyManager;

    【讨论】:

      【解决方案4】:

      A 中使用:

      using RetentionPolicyManager;
      

      【讨论】:

        【解决方案5】:

        B 的命名空间是RetentionPolicyManagerPayT 是Assembly A 的命名空间。从using 语句中删除PayT

        using RetentionPolicyManager;
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-06-19
          • 2012-05-28
          • 1970-01-01
          • 1970-01-01
          • 2018-05-09
          • 2022-01-11
          • 2021-10-15
          相关资源
          最近更新 更多