代码之家  ›  专栏  ›  技术社区  ›  smartcaveman

如何在.NET/C/VS2008中的项目之间共享命名空间。接收错误:“是否缺少程序集引用?“

  •  1
  • smartcaveman  · 技术社区  · 15 年前

    当结果项目引用两个名称空间时,在两个项目之间共享名称空间的协议是什么?

    显然这是可能的(系统,mscorlib)

    根据我所做的尝试,我犯了不同的错误。现在我有两个项目 蓝图 领域 共享MainApp命名空间的(例如Blueprint具有MainApp.IEntity,Domain具有MainApp.EntityImpl)。它们都被第三个项目引用, 仓库 . 存储库依赖于iRepository(在蓝图中)和EntityImpl(在域中)。蓝图首先构建,然后是域,然后是存储库。对于域项目中的每个类的引用,我得到一个“类型或命名空间名称域在命名空间“mainapp”中不存在”(是否缺少程序集引用?)…

    程序集引用都是正确的。

    确保有一个通用程序集名称 在所有项目之间,并在其中一个项目中添加一个assemblyinfo类,其中包含“向根添加链接引用”。这没什么,所以我 移除它 .

    我可以合并这两个项目,但在某些情况下这是有害的。我很感激你们能提供任何指导。

    作为对评论的回应, 蓝图没有项目间引用 , 域依赖于蓝图 存储库依赖于蓝图和域

    我已经完成了所有的删除DLL,重建清理重复..没有骰子..

    4 回复  |  直到 12 年前
        1
  •  1
  •   marcRob    14 年前

    我无法解释原因,但我有一个项目,其中有两个类库项目定义了相同的名称空间并使用了框架3.5。我在一个使用NetFramework4.0客户机概要文件的项目中引用了它们,得到了您得到的错误。当设置为NET Framework 4.0时,它工作正常。

        2
  •  0
  •   shahkalpesh    15 年前

    打开Reflector中的两个DLL并展平命名空间(视图->选项->浏览器->展平命名空间)。

    看看这是否有助于找出问题的原因。

        3
  •  0
  •   smartcaveman    14 年前

    我最终通过将代码复制到另一个解决方案来解决这个问题。回想起来,我确信这是不必要的。回首过去,我认为通过删除bin和obj文件夹中的所有内容可以解决这个问题。

        4
  •  0
  •   kennydust    12 年前

    我刚刚碰到这个问题。您需要确保所有项目都是相同的版本。许多地雷是.NET 4.0和4.5的组合;使它们都引用4.5为我解决了这个问题。