当引用存在时,无法找到类型或命名空间

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

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

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

然后,每当我尝试从该.dll创建对象时,我都会收到错误。

我没有得到正在发生的事情..为什么它在我构建之前工作,但是当我构建它时决定它不知道我在哪里推荐.dll?

此外,我已经去了我想要添加的类库,并确保它构建没有错误。

最常见的原因是您的.DLL以完整的.NET Framework为目标,但WPF应用程序以客户端配置文件为目标。

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

关于这个问题你可以尝试一些想法:

  • 检查较低版本是否未调用更高版本的程序集(例如,.NET 3.5项目未调用.NET 4.0程序集)。

  • 清洁 – >构建(或重建)

  • 手动删除调用者和调用项目的bin / obj文件夹。 这迫使一切都要建立 – “艰难”的方式。 这可能听起来多余,但对我有用了几次。

  • 重启VS – 有时,没有解释。

  • 重新启动 – 当没有其他工作时,请暂停并再试一次。

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

然后,您可以重建此项目。

如果你没有DLL就得到它 – 只需要一个代码文件检查它是否设置为编译。 在Visual Studio 2013中,我不断添加代码文件,并将构建操作(在代码文件的“属性”的“高级”部分下找到“内容”而不是“编译”。更改此设置。

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

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

我不知道为什么有时需要它。