gpt4 book ai didi

azure - 在 .Net Core 项目中使用 Microsoft.WindowsAzure.SDK 发出警告

转载 作者:行者123 更新时间:2023-12-04 13:00:56 26 4
gpt4 key购买 nike

我已在 .Net Core 3.0 应用程序中安装了 NuGet 包 Microsoft.WindowsAzure.SDK。这会导致以下警告:

Warning NU1701 Package 'Microsoft.WindowsAzure.SDK 2.9.0' was restored using '.NETFramework,Version=v4.6.1' instead of the project target framework '.NETCoreApp,Version=v3.0'. This package may not be fully compatible with your project.

尝试将包安装到 .Net Standard 2.0 项目时,我收到类似的错误。

NuGet lists the Microsoft.WindowsAzure.SDK package因为没有依赖关系。另question解决了当时包裹缺失的问题;该包现在存在,但它会产生此警告。

当然可以suppress this warning 。据我了解(例如 this answer ),当出现此消息时,考虑到 .Net Framework 4.6.1(及更高版本)和 .Net Core 3.0 的相似性,代码通常可以正常工作。然而at other times ,应用程序可能会在运行时失败。

对 Azure 至关重要的包会在 .Net Core 项目中抛出这样的警告,这似乎很奇怪,而且这个警告可能意味着什么。整个 API 是否会继续在 .Net Core(或 .Net Standard)项目中工作?是否有任何可能不起作用的文档?

最佳答案

NU1701与依赖关系无关,它与lib/中选择的dll有关。包的文件夹。如果您查看包(使用 fuget.org ,或查看全局包文件夹中的目录,或从 nuget.org 下载 nupkg 并使用 NuGet Package Explorer 或任何其他可以打开 zip 文件的程序),您将看到dll直接在lib/下文件夹,而通常 dll 位于 lib/<tfm>/ 下。这是 NuGet 不鼓励的旧布局,并且认为与 .NET Core 不兼容。因此,它使用 Assets 目标回退来查看该包是否与 .NET 4.6.1 兼容,我们认为它是兼容的,即使该包没有明确说明它与哪些 .NET Framework 兼容。

事实上,该包可能会在运行时失败,NuGet 无法知道,因此会出现警告。这是我非常喜欢端口适配器模拟器设计模式的原因之一。为 Blob 存储创建一个适配器,它还具有 API 的优点,与 Azure SDK 相比,该适配器对于其余业务逻辑来说更易于使用。为适配器编写测试并在 netcoreapp3.0 上运行测试,如果测试通过,您可以确信适配器使用的任何 API 都不会在生产运行时崩溃。然后,您只需确保所有其他代码使用适配器而不是直接使用 Azure SDK。您还可以看到它如何在极少数需要发生的情况下轻松切换到新软件包。

但是,在这种情况下,您可能会注意到 Microsoft.WindowsAzure.SDK 软件包的最新版本为 2.9.0,并于 2016 年 5 月发布,因此如果您稍微搜索一下,您会发现一个软件包 Microsoft.Azure .Storage.Blob 版本 10.0.3 于 2019 年 5 月发布。此包同时包含 .NET Framework 和 .NET Standard 库,因此如果您使用它,将不会再收到 NU1701 警告。与您使用的任何其他 Azure API 类似,它们现在都被分成单独的包,而不是一个巨大的 SDK,大多数项目使用的比例不到 1%。

关于azure - 在 .Net Core 项目中使用 Microsoft.WindowsAzure.SDK 发出警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57094599/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com