我有一个wpf应用程序,我正在尝试引用我创建的类库。 我添加了对.dll的引用 我已经将using语句添加到我的文件中,而intellisense实际上看到了新的命名空间。
然后在我的代码中,我能够在添加的.dll中创建新的类对象。 intellisense看到所有的方法都没有问题,没有错误。
当我尝试构建我的wpf应用程序时,突然间我得到的类型或命名空间在我添加的dll上找不到错误。
然后,当我尝试从.dll创建对象时,我会收到错误。
我没有得到正在发生的事情..为什么它在我构建之前有效,但是当我构建它时决定它不知道我在哪里引用.dll
此外,我已经去了我想要添加的类库,并确保它构建没有错误。
答案 0 :(得分:61)
最常见的原因是您的.DLL以完整的.NET Framework为目标,但WPF应用程序以客户端配置文件为目标。
例如,如果您的库以.NET 3.5为目标,请确保您的WPF应用程序以完整的.NET 3.5或4.0框架为目标,而不是客户端配置文件。
答案 1 :(得分:5)
您可以尝试一些关于此事的想法:
检查较低版本是否未调用更高版本的程序集(例如,.NET 3.5项目未调用.NET 4.0程序集)。
清洁 - >建立(或重建)
手动删除调用者和调用项目的bin / obj文件夹。这迫使一切都要建立 - “艰难”的方式。这可能听起来多余,但对我有用了几次。
重启VS - 有时,没有解释。
重新启动 - 当没有其他工作时,请休息一下,然后重试。
答案 2 :(得分:0)
您可以从其他项目复制任何.dll文件, 两个.dll文件。 例如:A.dll,A.pdb 并将这两个文件重命名为项目名称。
然后你可以重建这个项目。
答案 3 :(得分:0)
如果你在没有DLL的情况下得到它 - 只需要一个代码文件检查它是否设置为编译。在Visual Studio 2013中,我不断添加代码文件,它将构建操作(在代码文件的属性的高级部分下找到“内容”而不是“编译”。更改此内容。
答案 4 :(得分:0)
有时需要显式命名包含命名空间的程序集。
xmlns:myns="clr-namespace:MyNamespace;assembly=MyAssembly"
我不知道为什么有时需要它。