Dependencies NuGet:pack命令不包括NuGet依赖项

Dependencies NuGet:pack命令不包括NuGet依赖项,dependencies,package,nuget,Dependencies,Package,Nuget,我有以下设置: nuget.exe版本:1.6.21205.9031 Project A.csproj打包到A.1.0.0.0.nupkg中,并发布到本地IIS上托管的本地包存储库(我的VS Nuget扩展我可以将A包添加到新项目) Project B.csproj依赖于我添加的VS Nuget扩展的a包 现在,当我跑的时候 nuget spec 创建了B.nuspec 然后我就跑 nuget pack B.csproj -verbose 但是在创建的B包中,它们与A包没有依赖关系。nu

我有以下设置:

  • nuget.exe版本:1.6.21205.9031
  • Project A.csproj打包到A.1.0.0.0.nupkg中,并发布到本地IIS上托管的本地包存储库(我的VS Nuget扩展我可以将A包添加到新项目)
  • Project B.csproj依赖于我添加的VS Nuget扩展的a包
现在,当我跑的时候

nuget spec
创建了B.nuspec

然后我就跑

nuget pack B.csproj -verbose
但是在创建的B包中,它们与A包没有依赖关系。nuget pack命令告诉我它已经找到了packages.config文件(其中包含对A-package的依赖项),但随后它说“Dependencies:None”

我错过了什么?问题是A包只能在我的本地包存储库中找到吗?如何使nuget.exe知道此本地存储库


非常感谢

Nuget.exe spec A.csproj
”将创建一个非常精简的NuSpec文件,该文件没有任何依赖项。对于我们的流程,使用powershell脚本将项目引用和其他依赖项从项目的
packages.config
添加到
B.nuspec
中的
节点


Nuget.exe pack A.nuspec
”将是正确的。

我想我可能已经解决了这个问题

我们的库解决方案已启用Nuget包还原。我关闭了NuGet Package Restore,之后在创建NuGet软件包时,项目依赖项被包括在内


我不太清楚为什么在打开包还原时包中没有包含依赖项,但是哦:)。

nuget-pack
需要能够找到
packages
文件夹才能解析依赖项(请参阅),或者在与.csproj相同的文件夹中(只要有一个
.sln
文件在其上一级)或在
NuGet.Config
中指定的文件夹中,就会有类似的问题,答案说明:

这些导致问题的原因是,NuGet查找解决方案级别的packages文件夹来决定要拉入哪些包依赖项(不太确定如何确定)。如果指向该packages文件夹的路径不正确(就像NuGet使用错误的解决方案文件一样),则无法正确解析依赖关系。此外,如果packages文件夹为空,则也无法正确解析依赖关系


我也遇到了同样的问题,将解决方案文件添加到项目文件夹(以前没有解决方案)帮助我解决了这个问题。

我缺少依赖项,因为我使用的所有软件包的
*.nupkg
文件夹中都没有
文件

这很难追踪,因为
nuget-pack
的输出看起来很正常:

Found packages.config. Using packages listed as dependencies
我一直在使用并且只注释掉了关于“包还原”的一行(因为我想提交我的包),但我应该注释掉两行。它应该是这样的:

# NuGet Packages
# *.nupkg
# The packages folder can be ignored because of Package Restore
# **/packages/*
感谢您链接到,feiling在这里解释了如何使用
packages
文件夹:

因为
packages.config
只包含一个包列表,而不包含 包含这些包之间的依赖关系,nuget需要 访问那些包文件以获取依赖项信息。这就是它的原因 需要知道packages文件夹


feiling引用的依赖项信息在
*.nupkg
文件中。一旦我更改了
.gitignore
并提交了所有缺少的
*.nupkg
文件,我的TeamCity build server就能够成功地创建具有正确依赖项的NuGet包。

我很想知道这个问题的答案em也是。文档说明nuget pack B.csproj步骤应该包括依赖项,但对我来说不是。这里仍然存在相同的问题,并且列出的解决方案都不起作用。看起来与我遇到的问题相同,只是在我的情况下,实际上包含了三分之一的依赖项。请注意,OP正在使用
nuget pack
和.csproj文件。这是为了将.csproj中记录的依赖项考虑在内,包括使用nuget添加的依赖项以及对同一解决方案中具有.nuspec文件的其他项目的任何引用。+1我已将
文件夹自定义为nuget.Config中的
nuget包
。将其重新命名为我解决了这个问题。我不会这样做hink NuGet如果无法将依赖项添加到其依赖项列表中,将失败或至少发出警告,因为这会导致生成不正确的包,并且依赖项列表不完整。我希望有一个选项可以在此类问题上失败,而不是“成功完成”并让软件包的用户去了解为什么事情对他们不起作用。由于网站已移动,链接已断开,新位置上的3097问题似乎与此无关。如果您能在新位置上找到相同的问题并更新链接,我将不胜感激。您仍然可以在Codeplex上找到问题,只需单击下面的“问题”在屏幕顶部搜索“Nuget pack”会忽略包中的依赖项。config“在上重新发布了问题,Nuget认为项目的唯一依赖项是其他Nuget包是一个大失败。当然,项目通常依赖于同一解决方案中的其他项目。