将Nuget包依赖性视为子依赖性会丢失版本约束

时间:2015-03-09 13:12:59

标签: nuget

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

然后,我决定添加对GraphDiff NuGet包的引用,该包对EntityFramework> = 6.0 具有依赖性,生成的类库npkg只对GraphDiff有依赖关系,并注明它可能有子依赖关系,但没有任何关于它的实体框架,尤其是版本 6.1

当我将类库npkg包含到项目中时出现问题:实体框架 6.0 安装时应安装 6.1

有解决方法吗?

我用NuGet.exe 2.8.50926.602

得到这个

1 个答案:

答案 0 :(得分:0)

我发现我必须使用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

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