当引用存在时,找不到类型或名称空间

本文关键字:空间 类型 找不到 引用 存在 | 更新日期: 2023-09-27 18:01:39

我有一个wpf应用程序,我试图引用我创建的类库。我已经添加了对.dll的引用并且我已经在我的文件中添加了using语句,并且智能感知实际上看到了新的命名空间。

然后在我的代码中,我能够在我添加的。dll中创建新的类对象。智能感知看到所有的方法…没有问题,没有错误。

当我尝试构建我的wpf应用程序时,突然我得到的类型或命名空间不能在我添加的dll中找到错误。

然后我得到错误,每当我试图从。dll创建对象。

我不明白发生了什么事。为什么它在我构建之前工作,但当我构建它决定它不知道我引用的。dll在哪里?

我也去了那个类库,我试图添加,并确保它构建没有错误。

当引用存在时,找不到类型或名称空间

最常见的原因是您的。dll针对的是完整的。net框架,而WPF应用程序针对的是客户端配置文件。

例如,如果你的库目标是。net 3.5,确保你的WPF应用程序目标是完整的。net 3.5或4.0框架,而不是客户端配置文件。

关于这个问题的一些想法,您可以尝试:

  • 检查低版本没有调用高版本程序集(例如。net 3.5项目没有调用。net 4.0程序集)。

  • Clean -> Build(或Rebuild)

  • 手动删除项目的bin/obj目录。这就迫使所有东西都要以"硬"的方式来建造。这听起来可能有点多余,但我已经成功了几次。

  • 重启VS -有时,只是没有解释。

  • 重新启动-如果没有其他工作,给它一个休息,再试一次。

您可以从其他项目复制任何.dll文件,两个.dll文件。例如:A.dll A.pdb并将这两个文件重命名为您的项目名称。

如果你得到这个没有DLL -只是一个代码文件检查它被设置为编译。在Visual Studio 2013中,我不断添加代码文件,它将构建动作(在代码文件属性的高级部分下找到)设置为"内容"而不是"编译"。改变这种情况。

有时需要对包含命名空间的程序集进行显式命名。

xmlns:myns="clr-namespace:MyNamespace;assembly=MyAssembly"