我正在创建一个类库,可以在NuGet包中构建2个dll。它有一些对dll的引用,这些dll目前没有要引用的NuGet包。
我应该如何使我的NuGet包依赖于当前通过NuGet不可用的dll?
如果我将它们捆绑在一起,如果一个已经引用这些dll的项目会拉下我的NuGet包,那么会发生什么呢?
我应该为每个dll引用创建一个NuGet包,并使我的NuGet包依赖于这些吗?
答案 0 :(得分:0)
您可以将DLL捆绑到NuGet包中,不会产生任何不良影响。已在某些/libs
(或其他)文件夹中包含这些DLL的项目将继续从那里引用它们。 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
属性可以指定相对于包根的任意路径。