我如何编译使用外部依赖项的C#库,而无需将其包含在库中?

问题描述

我正在制作自己的使用C#方法OpenTK库。当然,为了在我的项目中使用它们,我必须包括OpenTK依赖项。当我编译库并将其作为新的外部依赖关系包含在我的新项目中时,OpenTK依赖关系也将包括在内。我的目标是在使用它们的自制库中不包括OpenTK依赖项,而是让用户在使用我的依赖项之前下载所需的依赖项。那可能吗?那甚至是一件重要的事情吗?我对C#中的库不熟悉。

解决方法

Nuget软件包可以为您提供帮助。添加OpenTK nuget包参考,并将您的库作为nuget包共享。在这种情况下,您的nuget包将没有OpenTK的程序集,而是将引用OpenTK nuget包。当有人将您的软件包作为nuget软件包添加时,nuget软件包安装程序将查找所有其他nuget软件包相关性,并将自动安装。

一个警告是,如果您的程序包中包含任何非Nuget程序包引用,则这些程序集将成为您nuget程序包本身的一部分。