如何在nuget包中提供浮动版本以获得最新的依赖关系

时间:2017-03-30 13:35:09

标签: nuget nuget-package

我将NuGet 3.x中的依赖关系解析为url https://docs.microsoft.com/en-us/nuget/consume-packages/dependency-resolution#dependency-resolution-in-nuget-3x

有4条规则 1)最低适用版本 2)浮动版本 3)最近的胜利 4)堂兄依赖

第1,第3和第4我们可以在包中定义,而第2我们可以在package.json中设置

如何在nuget包上设置浮动版?

我有3个项目说ProjectA,ProjectB,ProjectC

ProjectB引用ProjectA,Project.json就像

"dependencies": {"ProjectA": "1.0.0."} 

ProjectC引用ProjectB,Project.json就像

"dependencies": {"ProjectB": "1.0.0."}

nuget feed上的可用包

ProjectA.1.0.0.1 
ProjectA.1.0.0.2 
ProjectB.1.0.0.1 
ProjectB.1.0.0.2

现在,如果我编译ProjectB

它将在bin文件夹中使用最新的ProjectA。即 ProjectA.1.0.0.2 [浮动版本规则]

它创建具有依赖项ProjectA> = 1.0.0

的ProjectB的nuget包

我的要求是创建类似ProjectA = 1.0.0。*的软件包以获取最新的可用依赖项。

现在,如果我编译ProjectC

它将在bin文件夹中使用最新的ProjectB。即 ProjectB.1.0.0.2 [浮动版本规则]

它将在bin文件夹中占用最低的ProjectA。即 ProjectA.1.0.0.1 [最低适用版本]

它创建了具有依赖项ProjectB> = 1.0.0

的ProjectC的nuget包

我尝试了以下选项,它也没有为我工作

"dependencies": {"ProjectA": "[,2.0)"} 
"dependencies": {"ProjectA": "(,2.0]"} 
"dependencies": {"ProjectA": "(,2.0)"}

要手动解决此问题,我需要使用像nuget 2x这样的浮动版本指定project.json中的所有依赖项。

"dependencies": {"ProjectB": "1.0.0.", "ProjectA": "1.0.0." and so on.... }

0 个答案:

没有答案