【问题标题】:DLLs referenced in a project used by another project in .NET.NET 中另一个项目使用的项目中引用的 DLL
【发布时间】:2011-08-13 00:28:40
【问题描述】:

有很多类似的问题,但它们似乎对我的具体问题没有太多意义。

我有一个项目 A,一个引用外部 DLL 的类库

Microsoft.TeamFoundation.WorkItemTracking.Client, 
Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a

项目 A 编译良好 - 我将引用的 DLL 设置为复制本地并将 Alias 保留为全局不变。

项目 B 引用项目 A,一切都只是花花公子,除了在编译结束时,我得到:

Error 5215    The type

“Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItem”已定义 在未引用的程序集中。您必须添加对 程序集'Microsoft.TeamFoundation.WorkItemTracking.Client, 版本=9.0.0.0,文化=中性, PublicKeyToken=b03f5f7f11d50a3a'。 C:...\Content\Status.aspx.cs 9 13 项目B

所有内容都在同一个解决方案文件中。在这种情况下我错过了什么?项目 B 对项目 A 的引用是通过项目引用完成的。

这就是我一直听说的可怕的 dll 地狱吗?

【问题讨论】:

  • 项目 B 是否直接使用该 DLL?
  • 我认为@Jon 正在做某事。您可能必须在项目 A 中明确使用它。不过我愿意对其进行测试。
  • 项目B是否使用WorkItem类?是从 Project A 中的方法返回的吗?
  • 是的,确实如此——这就是问题所在,你是对的!您应该将其发布为解决方案!
  • Matt,因为这里有不止一个评论者;所以我不确定@John 会在他的收件箱中看到你的评论,所以我认为你必须隐式添加@John我在此评论中添加@John 后,他现在可能会看到它:)

标签: c# .net dll reference


【解决方案1】:

项目 B 是否使用 WorkItem 类?它是从 Project A 中的方法返回的吗?

如果是这种情况,那么包含该类的 DLL 需要被项目 B 引用。项目 B 还能如何声明该类型的对象,或调用该类的方法?

【讨论】:

    【解决方案2】:

    项目 B 直接使用该 DLL,因此该项目也需要引用该 DLL。

    【讨论】:

    • 我不知道为什么这被否决了,答案是有效的,尽管在这种特殊情况下不是正确的。如果 DLL 以某种方式使用,无论是直接使用还是从方法调用的返回值中使用,都需要引用它。
    • 项目 B 不直接使用 DLL,只是通过项目 A 间接使用。
    猜你喜欢
    • 1970-01-01
    • 2019-07-20
    • 1970-01-01
    • 2017-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多