TL:DR 如何在类库中只引用程序集而不是引用库和调用项目?
我正在使用C#构建实用程序库以促进代码重用。在本例中,我想要做一些关于TFS服务器的事情,并需要引用来自TFS方面的几个程序集:
Microsoft.TeamFoundation.Client Microsoft.VersionControl.Client Microsoft.WorkItemTracking.Client
我在名为Utility的类库中包含这些引用。然后,我继续在那些程序集中封装帮助对象。没有错误,智能感知正常运行等等。
当我想在同一解决方案内的另一个项目(例如TestCLI)中使用该类库时,我通过选择解决方案引用选项卡中的项目添加对Utility项目的引用。然后我可以使用Utility类而没有问题,直到我去构建。
当我构建解决方案时,它会抛出类似于以下错误的错误:
The type 'Microsoft.TeamFoundation.VersionControl.Client.BranchObject' is defined in an assembly that is not referenced. You must add a reference to assembly 'Microsoft.TeamFoundation.VersionControl.Client, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
过去,我解决了这个问题,方法是将相同的引用添加到调用项目(TestCLI)以及类库(Utility)中。我觉得这违背了拥有类库的目的之一,并且我错过了一步,以便无需担心调用项目中的库引用。
有没有什么方法可以解决这些依赖关系而不包括在类库和调用项目中添加引用?我是否将解决方案结构化不正确?我是否以不正确的方式考虑了类库?
我正在使用C#构建实用程序库以促进代码重用。在本例中,我想要做一些关于TFS服务器的事情,并需要引用来自TFS方面的几个程序集:
Microsoft.TeamFoundation.Client Microsoft.VersionControl.Client Microsoft.WorkItemTracking.Client
我在名为Utility的类库中包含这些引用。然后,我继续在那些程序集中封装帮助对象。没有错误,智能感知正常运行等等。
当我想在同一解决方案内的另一个项目(例如TestCLI)中使用该类库时,我通过选择解决方案引用选项卡中的项目添加对Utility项目的引用。然后我可以使用Utility类而没有问题,直到我去构建。
当我构建解决方案时,它会抛出类似于以下错误的错误:
The type 'Microsoft.TeamFoundation.VersionControl.Client.BranchObject' is defined in an assembly that is not referenced. You must add a reference to assembly 'Microsoft.TeamFoundation.VersionControl.Client, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
过去,我解决了这个问题,方法是将相同的引用添加到调用项目(TestCLI)以及类库(Utility)中。我觉得这违背了拥有类库的目的之一,并且我错过了一步,以便无需担心调用项目中的库引用。
有没有什么方法可以解决这些依赖关系而不包括在类库和调用项目中添加引用?我是否将解决方案结构化不正确?我是否以不正确的方式考虑了类库?