我有一个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)
多年来,这一直困扰着我!我做错了什么,该如何解决?
答案 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>