NETStandard20无法还原Microsoft.Azure.KeyVault.Core

时间:2019-01-28 23:34:44

标签: c# azure nuget botframework .net-standard-2.0

我有一个NetStandard20项目Microsoft.Bot.Builder.Azure,该项目将存储依赖项引入Azure(CosmosDB,Storage.Common,Blob)。我正在使用每个依赖项的最新版本。

无论我尝试了什么,我都会在构建时收到以下警告:

Warning NU1701  Package 'Microsoft.Azure.KeyVault.Core 1.0.0' was restored using '.NETFramework,Version=v4.6.1' instead of the project target framework '.NETStandard,Version=v2.0'. This package may not be fully compatible with your project.    Microsoft.Bot.Builder.Azure C:\git\botbuilder-dotnet\libraries\Microsoft.Bot.Builder.Azure\Microsoft.Bot.Builder.Azure.csproj

现在,据我所知,Microsoft.Azure.Storage.Common的Nuget包似乎支持NetStandard2。通过Nuget.Org

.NETStandard 2.0
Microsoft.Azure.KeyVault.Core (>= 1.0.0)
NETStandard.Library (>= 2.0.1)
Newtonsoft.Json (>= 10.0.2)

同样,Keyvault.Core表示它支持NetStandard> 1.6.1(Nuget Link here

多年来,这一直困扰着我!我做错了什么,该如何解决?

2 个答案:

答案 0 :(得分:1)

警告显示您安装了没有依赖性的软件包docs

我建议您可以安装Microsoft.Azure.KeyVault.Core版本的 3.0.3 来遵循Microsoft.Azure.KeyVault.Core 1.0.0

有关更多详细信息,您可以参考此SEMVER conventions

答案 1 :(得分:1)

The KeyVault.Core package ( GitHub Repo here),拿起作为Azure存储库的传递依赖尚不支持NetStandard20。我证实与Azure存储团队,这个警告是罚款,并可以被抑制。

  

[下午十二点20](天青SDK所有者)因此,我们的上,只有依赖是   两个接口的定义,它们是稳定的。不是   实施。在这种情况下,警告应可忽略。

this Commit中可以看出,Azure SDK团队似乎正在“支持” NetStandard20。

我们不能将无警告抑制直接应用于下面的包链接,因为它们不会在传递依赖中获取。有关详细信息,请参见this GitHub Issue

其结果是:我不得不禁止这种警告为整个组件:

<PropertyGroup>
  <NoWarn>$(NoWarn);NU1701</NoWarn>
</PropertyGroup>