0

我正在创建一个将 2 个 dll 构建到 NuGet 包中的类库。它有一些对当前没有可供引用的 NuGet 包的 dll 的引用。

我应该如何使我的 NuGet 包依赖于当前无法通过 NuGet 获得的那些 dll?

如果我也将它们捆绑在一起,如果一个已经引用这些 dll 的项目拉下我的 NuGet 包会发生什么,该引用会发生什么?

我是否应该为每个 dll 引用创建一个 NuGet 包并使我的 NuGet 包依赖于这些?

4

1 回答 1

0

您可以将 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属性可以指定相对于您的包根的任意路径。

于 2012-12-19T18:47:29.650 回答