gpt4 book ai didi

c# - 如何在不添加对调用项目的引用的情况下通过类库正确解析 DLL 引用

转载 作者:行者123 更新时间:2023-11-30 21:43:13 34 4
gpt4 key购买 nike

TL:DR 如何仅在类库中引用程序集而不是在类库和调用项目中引用程序集?

我正在用 C# 构建一个实用程序库,以促进代码重用。在这种情况下,我想用 TFS 服务器做一些事情,并且需要从 TFS 方面引用几个程序集:

  • Microsoft.TeamFoundation.Client
  • Microsoft.VersionControl.Client
  • Microsoft.WorkItemTracking.Client

我将这些引用包含在名为 Utility 的类库中。然后我继续将这些程序集中的对象包装在辅助对象中。没有错误,智能感知工作正常,等等。

当我想在同一解决方案中的另一个项目(例如 TestCLI)中使用该类库时,我通过从解决方案引用选项卡中选择项目来添加对实用程序项目的引用。然后我可以毫无问题地使用 Utility 类,直到我开始构建。

当我构建解决方案时,它会抛出如下错误:

类型“Microsoft.TeamFoundation.VersionControl.Client.BranchObject”在未引用的程序集中定义。您必须添加对程序集 'Microsoft.TeamFoundation.VersionControl.Client, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a

的引用

过去,除了类库 (Utility) 之外,我还通过添加对调用项目 (TestCLI) 的相同引用来解决此问题。我觉得这违背了拥有类库的目的之一,而且我错过了一个步骤,以便不必担心我的调用项目中的库引用。

有没有什么方法可以解决这些依赖关系,而无需同时在类库和调用项目中包含引用?我是否错误地构建了我的解决方案?我是不是以错误的方式考虑了类库?

最佳答案

引用是必需的,因为您要公开其他库中的对象,然后要使用这些类,最终程序需要引用。

为避免这种情况,您必须通过包装器、类的副本或其他任何方式隐藏外部对象,这主要取决于您公开这些对象的内容和原因。

关于c# - 如何在不添加对调用项目的引用的情况下通过类库正确解析 DLL 引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41897005/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com