2012-12-19 134 views
0

我正在创建一个将2个DLL构建到NuGet包中的类库。它有一些dll的引用,目前没有NuGet包被引用。参考非NuGet参考创建NuGet包

我应该如何让我的NuGet包依赖于那些通过NuGet无法使用的dll?

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

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

回答

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