我正在创建一个将 2 个 dll 构建到 NuGet 包中的类库。它有一些对当前没有可供引用的 NuGet 包的 dll 的引用。
我应该如何使我的 NuGet 包依赖于当前无法通过 NuGet 获得的那些 dll?
如果我也将它们捆绑在一起,如果一个已经引用这些 dll 的项目拉下我的 NuGet 包会发生什么,该引用会发生什么?
我是否应该为每个 dll 引用创建一个 NuGet 包并使我的 NuGet 包依赖于这些?
我正在创建一个将 2 个 dll 构建到 NuGet 包中的类库。它有一些对当前没有可供引用的 NuGet 包的 dll 的引用。
我应该如何使我的 NuGet 包依赖于当前无法通过 NuGet 获得的那些 dll?
如果我也将它们捆绑在一起,如果一个已经引用这些 dll 的项目拉下我的 NuGet 包会发生什么,该引用会发生什么?
我是否应该为每个 dll 引用创建一个 NuGet 包并使我的 NuGet 包依赖于这些?
您可以将 DLL 捆绑到 NuGet 包中,而不会产生不良影响。在某个(或其他)文件夹中已经包含这些 DLL 的项目/libs
将继续从那里引用它们。NuGet 包中的程序集将引用拉入 /packages
.
在您的 nuspec 文件中,使用该<file>
元素包含内部 DLL,如下所示:
<package>
<metadata>
...
</metadata>
<files>
<file src="PATH_TO_BIN\DependencyOne.dll" target="mylibs" />
<file src="PATH_TO_BIN\DependencyTwo.dll" target="mylibs" />
</files>
</packages>
拉取 NuGet 包时,这将导致以下文件结构:
PATH_TO_PROJECT/packages/YOUR_NUGET_PACKAGE/mylibs/DependencyOne.dll
PATH_TO_PROJECT/packages/YOUR_NUGET_PACKAGE/mylibs/DependencyTwo.dll
该target
属性可以指定相对于您的包根的任意路径。