我在Visual Studio 2010中有一个包含6个项目的解决方案(1个Web应用程序,4个c#类库,1个c#控制台应用程序)。
控制台应用程序是我的测试工具,用它来测试外部Web服务,从我的其他库中的方法输出和一般实验。此测试控制台应用程序只有一个依赖于另一个项目依赖项,其中一个是C#库。
引用的C#库非常简单:
namespace GowallaAPI
{
public class Gowalla
{
private static readonly ILog log = LogManager.GetLogger(typeof(Gowalla));
public SpotsInRadius GetGowallaSpotsInRadius(decimal lat, decimal lon, int radius) {
//snip
}
//other methods removed for brevity//
}
}
我已在控制台应用程序中添加了一个项目引用:
我还右键点击了参考文献并选择了添加参考...
然后,我去了我的控制台应用程序并添加了
using Gowalla;
然后点击构建。我明白了:
类型或命名空间名称'Gowalla' 无法找到(你错过了吗? 使用指令或程序集 引用?)
我完全不知所措。我有:
在Gowalla玩一个构造函数而不是:
公共Gowalla() {} ......没有任何效果!
有人能看到明显的东西吗?我是完全愚蠢的吗?我已经在这几个小时了,我很想知道这是一个经典的“木树林”时刻......
帮助表示赞赏。
编辑1:这是从Reflector公开的Gowalla.dll:
答案:在@ gov有用的建议删除GowallaAPI库并尝试添加其他内容之后我做了并开始添加GowallaAPI库中的旧代码。一切顺利,直到我补充:
private static readonly ILog log = LogManager.GetLogger(typeof(Gowalla));
log4net由于一些完全奇怪的原因不断抛出构建。唉,在删除该行(对log4net的引用仍然存在)之后,该项目在此后构建并完美运行。感谢@gov让我走上了正确的道路! :d
答案 0 :(得分:8)
我遇到了与log4net完全相同的问题,并且在将托管项目的目标框架从“.NET Framework 4.0 Client Profile”更改为“.NET Framework 4.0”后解决了该问题
答案 1 :(得分:1)
我在评论中向他提出了各种各样的建议,看起来其中一个已经解决了。
答案 2 :(得分:1)
查看类库和测试工具的目标框架。当类库设置为.Net Framework 4并且测试工具是.Net Framework 4 Client Profile时,我遇到了这个错误。
答案 3 :(得分:0)
看看.csproj XML,看看引用是否有什么奇怪之处,其中之一:
<Reference Include="Gowalla" ... />
<ProjectReference Include=".\path to\Gowalla.csproj" ... />