nuget pack忽略package.config依赖项

时间:2015-12-22 17:31:13

标签: nuget dependency-management nuget-package

我无法让nuget pack X.csproj识别项目中的包依赖项。令人惊讶的是,在打包时,诊断消息“Found packages.config。使用列为依赖项的包“,但最终包中的<dependencies/>文件中的.nuspec标记为空。

项目的packages.config确实包含引用:

<packages>
  <package id="SmartAction.Logger" version="1.0.2.0" targetFramework="net40" />
  <package id="SmartAction.Pervasive" version="1.0.1.0" targetFramework="net40" />
</packages>

为了缩小问题范围,我删除了自己的并行.nuspec文件,并且大多数都来自nuget pack命令:

> nuget pack libToneDetection.csproj -prop Configuration=Release

MSBuild auto-detection: using msbuild version '14.0' from 'C:\Program Files (x86)\MSBuild\14.0\bin'.
Attempting to build package from 'libToneDetection.csproj'.
Packing files from '[snip]\Core\ToneDetection\libToneDetection\bin\Release'.
Found packages.config. Using packages listed as dependencies
Successfully created package '[snip]\Core\ToneDetection\libToneDetection\SmartAction.Audio.ToneDetection.1.0.0.0.nupkg'.

NuGet版本:3.3.0.212

我可以发现这个项目的唯一区别是它的名称与包名不同(我试图保持它们同步,但这是我重新包装的旧东西)。

我怀疑我以前见过这个。我发现问题来自于那些试图阻止在packages.config中引用的人来成为包的依赖关系,但没有人试图像我一样试图击败反向问题。救命啊!

附录。我将解决方案中的项目与其他项目一起复制到临时目录并从那里重建了包。现在来自packages.config的两个依赖项中的一个被添加到包中:

<dependencies>
  <dependency id="SmartAction.Logger" version="1.0.2.0" />
</dependencies>

考虑到两者之间的差异,SmartAction.Logger包取决于SmartAction.Pervasive。但我正在编译的软件包确实使用了这两种软件。

对我来说,这两种行为看起来都不正确。我遇到了一个nuget bug,还是一个神秘的复杂功能?

外部参照:已打开https://github.com/NuGet/Home/issues/1867

0 个答案:

没有答案