2012-12-19 165 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屬性可以指定任何相對於您的包根目錄的任意路徑。