参考非NuGet引用创建NuGet包

时间:2012-12-19 04:33:39

标签: nuget nuget-package

我正在创建一个类库,可以在NuGet包中构建2个dll。它有一些对dll的引用,这些dll目前没有要引用的NuGet包。

我应该如何使我的NuGet包依赖于当前通过NuGet不可用的dll?

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

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

1 个答案:

答案 0 :(得分:0)

您可以将DLL捆绑到NuGet包中,不会产生任何不良影响。已在某些/libs(或其他)文件夹中包含这些DLL的项目将继续从那里引用它们。 NuGet包中的程序集将引用被提取到/packages

的捆绑DLL

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