【发布时间】:2019-11-27 09:27:43
【问题描述】:
我已经在 .Net Core 3.0 应用程序中安装了 NuGet 包 Microsoft.WindowsAzure.SDK。这会导致以下警告:
警告 NU1701 包“Microsoft.WindowsAzure.SDK 2.9.0”已恢复 使用 '.NETFramework,Version=v4.6.1' 而不是项目目标 框架'.NETCoreApp,版本 = v3.0'。这个包可能不完整 与您的项目兼容。
我在尝试将包安装到 .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)项目中工作吗?是否有任何可能不起作用的文档?
【问题讨论】:
-
你想做什么? IE。您尝试与 Azure 中的哪些功能进行交互?你提到的包裹很旧! .NET Core 应用程序只能使用与 .NET Standard 或 .NET Core 兼容的库。我很确定这个包既不是
-
@silent .NET Core 应用程序可以使用 .NET Framework 库,使用称为资产目标回退的东西,它会生成 NU1701。 .NET Core SDK 2.0 开始使用 .NET 4.6.1,在 .NET Core 3.0 中扩展为“net461;net48”,但任何项目都可以使用 MSBuild 属性对其进行修改。
-
@silent 我正在尝试使用 Microsoft.WindowsAzure.ServiceRuntime 中的 RoleEnvironment.IsAvailable。似乎没有可用的 Microsoft.WindowsAzure.ServiceRuntime。
-
这与网络角色(或类似的东西)有关吗?我不确定今天 Azure 是否仍然支持它——或者至少你可能不想将它用于新项目。你能发布更多你正在尝试构建的内容吗?
-
@silent 再次感谢——非常有帮助。我要做的就是弄清楚我的控制台应用程序是在 Azure 上运行还是在本地机器上运行,因为在这两种情况下我有一些不同的行为。作为一种解决方法,我可以制作两个不同版本的应用程序,一个用于 azure,一个用于本地机器。
标签: azure .net-core nuget azure-service-runtime