我正在使用VS2010中的C#4.0项目,并且需要使用一些旧的DLL,其中包含在VS2008上使用C#3.5创建的控件。当我第一次将DLL添加到引用时,我能够通过intellisense看到命名空间并创建其中一个控件的实例,但是当我去构建时,它会给我以下错误:
The type or namespace name 'BCA' could not be found (are you missing a using directive or an assembly reference?)
我做已经为该命名空间设置了一个using指令,现在用红色加下划线,显示VS无法找到它。现在,intellisense根本不会接受该命名空间。
我甚至尝试将控件添加到工具箱(有效)但是当我将它们拖到GUI时,它说它无法找到DLL引用,即使它显然知道它在哪里。
我甚至尝试将目标框架更改为3.5,但结果仍然相同。
有关为何会发生这种情况的任何想法?
编辑 - 我注意到在VS输出的csc.exe参数中,它没有我正在尝试使用的DLL的任何/引用条目。当我在VS2008中创建相同的基本项目时,存在这些条目。此外,我可以成功引用VS2010中的DLL项目中的DLL ...它似乎只是WinForms项目不起作用。
答案 0 :(得分:21)
事实证明,只要我将其改为常规配置文件,VS2010默认为.NET 4 客户端配置文件就可以了。浪费了一天......
答案 1 :(得分:2)
在我的项目中查看目标框架..是4.0客户端配置文件,e引用dll是4.0
答案 2 :(得分:0)
我尝试了Build-> Clean Solution,然后可以添加引用。
答案 3 :(得分:0)
我曾经有类似的问题,但配置文件不是问题,所以问题是我的类库使用具有依赖性的特殊NuGet包...所以我在目标项目中安装依赖包并添加了项目参考和工作!
但我不确定这个问题是否有更好的解决方案???对我来说VS应该足够聪明,随着参考文献携带这些dll。 (我已经确认“Copy Local”设置为True)