2013-04-30 40 views
0

我有一个包和nuspec文件,我通过将相关程序集的dll复制到与我的文件夹位于同一文件夹中的lib文件夹nuspec文件。这一切工作正常,并在这里没有问题。是否需要将标记为依赖关系的DLL添加到nuget lib文件夹

我有第二个包引用第一个通过nuget所以建立它的包我遵循相同的过程,但添加到依赖项元素到nuspec文件。当我从发布版本拷贝到lib时,它也需要依赖的dll。

由于这被标记为依赖项,我可以通过lib文件夹(我希望它通过nuget下载,不包括在当前包中)将其删除。

回答

0

做了一些测试后发现添加依赖项并不需要dll在lib中。依赖关系假定它将由Nuget解决。这可以通过nuget GUI创建一个新的包文件并添加一些依赖来确认。请注意,它们在保存后不会显示在lib文件夹中。

0

我不确定我是否完全掌握了你的场景,但总的来说我可以这样说:根据你如何创建NuGet包,你甚至可能不需要指定依赖关系。考虑到与以下结构的Visual Studio解决方案:

* Solution1 
    - Project1 
    * projectfile1.csproj 
     - using external libraries through NuGet 
     - project reference to Project2 
    * nuspecfile1.nuspec 
    - Project2 
    * projectfile2.csproj 
    * nuspecfile2.nuspec 

如果运行nuget pack projectfile1.csproj,包括在PROJECT1任何的NuGet包将自动被包括在你的NuGet包的依赖关系,即使你没有指定在你的依赖nuspec文件。这些依赖关系还将包括在创建包时外部库的版本。

NuGet 2.5起,还有一项新功能可以自动解决同一解决方案中项目之间的依赖关系。使用v2.5,您可以运行以下命令:

nuget pack projectfile1.csproj -IncludeReferencedProjects 

这也会导致NuGet对Project2的依赖。如果Project2没有公开为NuGet包(即没有nuspec文件),则Project2的dll将作为文件包含在Project1的NuGet包中。

相关问题