我有一个包含许多项目的类库,每个项目都是用C#编写的。这是我与其他项目共享的常见库。我最近改变了共享库的机制是通过nuget。因此,对于库中的每个项目,我都有一个post build事件来创建一个nuget包,例如。
"$(SolutionDir)\NuGet.exe" pack "$(ProjectPath)" -o "$(SolutionDir)\Packages"
这很好用。它将包推送到文件结构中的共享文件夹,消费项目从那里安装它。所有项目包都被推送到此文件夹。
我遇到了一个问题。让我们说我的库创建包X和Y.X在类库中引用了Y.在消费应用程序中,我需要使用X,当我安装它时,它不会从Y安装ddl。我还需要安装包Y.如何在创建包X时设置它,它还包括必要的dll的来自包Y,而不必明确安装它?
答案 0 :(得分:2)
在包X的nuspec文件中,您可以将包Y指定为依赖
<依赖性>
< dependency id =“Y”version =“1.0”/>
< /依赖性>
可以在http://docs.nuget.org/docs/reference/nuspec-reference#Specifying_Dependencies
找到更多关于依赖的选项用于指定文件,您可以使用
<文件>
< file src =“bin \ Debug * .dll”target =“lib”/>
< file src =“bin \ Debug * .pdb”target =“lib”/>
< /文件>
更多细节http://docs.nuget.org/docs/reference/nuspec-reference#Specifying_Files_to_Include_in_the_Package