被视为子依赖项的 Nuget 包依赖项失去版本约束

Nuget package dependency being treated as sub depedency looses version constraint

假设我创建了一个新的 class 库项目。我将 Entity Framework 6.1 NuGet 包添加到其中,然后使用 nuget pack MyProject.csproj 从 class 库项目创建一个新的 NuGet 包。我得到了一个很好的 npkg,它依赖于 Entity Framework 6.1.

然后,我决定添加对 GraphDiff NuGet 包的引用,该包依赖于 EntityFramework >= 6.0,生成的 class 库npkg 仅依赖于 GraphDiff 并注意它可能具有子依赖性,但与 Entity Framework 尤其是版本 6.1 无关。

当我将 class 库 npkg 包含到项目中时出现问题:Entity Framework 6.0 在应该安装的时候安装了 6.1.

有办法解决这个问题吗?

我用 NuGet.exe 2.8.50926.602

得到这个

我发现我必须使用 nuspec 文件并手动指定依赖项部分,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<package>
   <metadata>
        **snip!!**
        <dependencies>
            <dependency id="EntityFramework" version="6.1.2" />
        </dependencies>
   </metadata>
</package>

我无法使用 nuget 项目的 packages.config 文件更改任何内容。

关于 Rick Strahl's web log

的版本依赖性有一些有价值的信息