C# 创建项目依赖项并添加对“项目仍然原因”的引用;找不到类型或命名空间名称";

C# 创建项目依赖项并添加对“项目仍然原因”的引用;找不到类型或命名空间名称";,c#,visual-studio-2010,C#,Visual Studio 2010,我在VisualStudio2010中有一个包含6个项目的解决方案(1个web应用程序、4个c#类库、1个c#控制台应用程序) 控制台应用程序是我的测试工具,它用于测试外部web服务、来自其他库中的方法的输出以及常规实验。这个测试控制台应用程序只有一个依赖于另一个项目依赖项,即一个C#库 引用的C#库非常简单: namespace GowallaAPI { public class Gowalla { private static readonly ILog log

我在VisualStudio2010中有一个包含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;
然后点击build。我明白了:

类型或命名空间名称“Gowalla” 找不到(您是否缺少 使用指令或程序集 参考?)

我完全困惑不解。我有:

  • 完全删除依赖项(然后在删除Gowalla引用的情况下重建),然后再次添加它们
  • 我已经完全删除了依赖项(如#1),然后仅将它们添加为程序集(添加引用…)
  • 检查控制台应用程序和类库的目标框架是否为.NET 4.0-它们是
  • 已检查Gowalla类库中的所有必需项是否在Build属性中标记为Compile
  • 抖动了项目的构建顺序,这样我至少可以在构建库之后构建控制台应用程序
  • 做了一些叫喊和咒骂
  • 放弃了,然后又回来了
  • 将Gowalla C#库完全移出到自己的项目中,然后引用程序集(如图2所示)
  • 在Gowalla中使用构造函数而不是:

    公共戈瓦拉() {

    } ... 什么都没用

  • 有人能看到一些明显的东西吗?我是不是太愚蠢了?我已经做了几个小时了,我想知道这是否是一个经典的“树木换树木”时刻

    谢谢你的帮助

    编辑1:这是从反射器公开的Gowalla.dll:

    回答:在@gov提出删除GowallaAPI库并尝试添加其他内容的有用建议后,我这样做了,并开始添加GowallaAPI库中的旧代码。在我添加以下内容之前,一切正常:

    private static readonly ILog log = LogManager.GetLogger(typeof(Gowalla));
    

    log4net出于一些完全奇怪的原因不断抛出构建。唉,在删除该行(对log4net的引用仍然存在)之后,该项目构建并在此后完美地工作。感谢@gov让我走上了正确的道路!:D

    查看.csproj XML,看看该引用是否有任何奇怪之处,其中之一是:

      <Reference Include="Gowalla" ... />
      <ProjectReference Include=".\path to\Gowalla.csproj" ... />
    

    我在评论中向他提出了各种建议,其中一项似乎已经解决了


    @dooburt忘记Gowallapi,创建一个单独的项目,如我所说的sample.common,并创建一个名为utilities的公共类,或者在这里添加该项目,只需检查一个类型库的新项目,看看有什么问题

    看看类库的目标框架和测试工具。当类库设置为.Net Framework 4且测试工具为.Net Framework 4客户端配置文件时,我遇到了此错误。

    我与log4net有完全相同的问题,并且在将托管项目的目标框架从.Net Framework 4.0客户端配置文件“更改为.Net Framework 4.0”后得到了解决。

    @Doobert,这只是一个建议,但可能有帮助,也可能没有帮助,你能给名称空间起一个类以外的名字吗,比如你的companyname.Gowalla,试试看???@gov,谢谢你的回复。我将Gowalla更改为Gowallapi,并将所有必需的名称空间都更改为匹配。使用更改为使用GowallaAPI;-不幸的是,仍然没有运气:(@gowallapi,你能独立构建GowallaAPC吗?它是类库吗?然后再做一件事,双击GowallAPC dll,看看它是什么属性has@gov,是的,我可以单独构建GowallaAPI。它在/bin/debug/中创建了必要的.dll。我甚至在Reflector中打开了构建的.dll,它看起来应该。。。请参阅:@dooburt忘记Gowallapi,创建一个单独的项目,如我所说的sample.common,并创建一个名为utilities的公共类,或者在此处添加该项目,只需检查一个类型为library的新项目,看看问题出在哪里。@dooburt:那么实际答案是什么?