【问题标题】:Error "The type or namespace name could not be found" during a build process在构建过程中出现错误“找不到类型或命名空间名称”
【发布时间】:2014-03-04 19:27:00
【问题描述】:

我在 C# Windows 应用程序中使用,我在使用

TempProWin --> 适用于 Windows 应用程序项目
TempProApp --> 用于数据库和使用 CSLA 方法的类文件等功能。

在 TempProWin.frmLogin.cs 中:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using  TempProApp;

private void frmLogin_Load(object sender, EventArgs e)
{
 UserLoginList oUserLoginList = UserLoginList.GetUserLoginList();
 cmbUserName.DataSource = oUserLoginList;
 cmbUserName.DisplayMember = "Select User";
}

但是当我构建这个应用程序时,我得到了以下错误:

错误 5 找不到类型或命名空间名称“TempProApp”(您是否缺少 using 指令或程序集引用?)

我已经包含了 D:\TempPro\TempProApp\bin\Debug 路径中​​对 TempProApp.dll 的引用

【问题讨论】:

  • 您能检查一下您的 .NET 框架版本吗?它应该与您的程序集匹配
  • 为什么要引用 bin/debug 文件夹中的 dll?如果是第三方-dll,将其添加到解决方案中,添加对它的引用,并将其设置为Copy Local = true。
  • @NitinVarpe 建议的链接中列出了许多可能的原因。或者它只是 TempProApp 中的命名空间是其他东西,与项目名称不同?

标签: c# winforms 3-tier


【解决方案1】:

右键单击 TempProApp 并转到定义。

在最上面,您将看到 dll 名称及其版本。您可以验证您是否使用相同的dll版本。

【讨论】:

  • 出现错误“无法导航 'TempProApp'”
  • 你有没有把这个dll放在同一个应用的输出目录下?如果是,请将其保存在其他目录中,然后尝试。
【解决方案2】:

确保您已正确拼写要包含的命名空间。此外,引用的 .dll 必须已成功构建。

始终确保上述两个方面的一种方法是将您要引用的项目包含在您的工作项目中。这也将确保在您的工作项目的每个构建中,引用的 PROJECT 也会重新构建,因此所做的任何更改都会生效

On Solution Explorer->Right Click-> Add existing Project-> Select the Project you would initially Reference

On References->Add new Reference-> Select Projects Tab-> Select the Project you added

【讨论】:

    【解决方案3】:

    如果您有其他构建警告,则可能会导致spurious“找不到类型或命名空间名称”构建错误。

    我部分地编写了一个异步 HTTP 方法,它会生成有关缺少等待的警告。我计划构建系统的其余部分,然后修复它。

    但我开始遇到上述硬错误。我花了三个小时试图找出它的原因。我尝试了所有建议的修复,四重检查名称等,甚至删除并重新创建了产生投诉的项目。不用找了。我觉得奇怪的是,当我在有问题的类型引用上单击 Go To Definition 时,VS 2012 可以毫无问题地找到它。见鬼*

    作为最后的手段,我注释掉了产生警告的代码。这修复了虚假的错误消息,构建成功。

    因此,如果您已排除其他原因并且您有其他构建警告,请尝试修复这些问题。

    【讨论】:

      【解决方案4】:

      我在附加 Gamecenter 成就时遇到了同样的错误,然后我意识到我错过了一个类名。

      using UnityEngine.SocialPlatforms;
      using UnityEngine.SocialPlatforms.GameCenter;
      

      也许您也缺少 1 个类名。

      【讨论】:

        【解决方案5】:

        如果您使用的命名空间没有公开任何公共方法,也可能导致此错误。确认您使用的命名空间包含公共类中的公共方法。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2022-09-27
          • 2014-01-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-07-06
          • 2014-12-05
          相关资源
          最近更新 更多