Mar*_*ark 3 .net .net-core azure-web-app-service
我有一个面向 .Net Core 3.0 的 Visual Studio Azure 应用服务项目。当我将它部署到 Azure 时,没有指定 Stack,Stack 最终会变成 .Net V4.7。
这篇文章提出了一个类似的问题:https : //social.msdn.microsoft.com/Forums/en-US/a4040bf9-2ba0-42c6-a242-87febf7a5e6d/select-net-core-22-as-technology-stack?forum =windowsazurewebsitespreview 答案是“.NET Core SDK 32 位二进制文件通常包含在 Windows 应用服务中。因此,无需明确选择 .NET Core 作为版本”。换句话说:因为是 Windows,所以不需要指定 .Net Core 目标。这意味着因为它是 Windows,所以它可以正常工作。
这篇文章也提出了一个类似的问题:Azure webapp: Stack settings答案是“在初始 Web 应用程序创建之后,不再需要确定应用程序是 .NET Core 应用程序,因为 .NET Core 位已经安装在底层工人”。这也意味着因为它是 Windows,所以它可以正常工作。
两者似乎都与此 Microsoft 参考相矛盾:https : //docs.microsoft.com/en-us/dotnet/standard/net-standard
据此,.Net Core 3.0 与任何版本的 .Net Framework 都不兼容。更正式地说,.Net Standard 2.1 被合并到 .Net Core 3.0 中,但没有 .Net 框架版本。然而,在 Azure 中,我的应用服务确实有效。
问题:它之所以有效,是因为虽然我在 Visual Studio 中指定了 .Net Core 3.0 作为目标,但我实际上并没有使用任何特定于 .Net Core 3.0 的代码,因此我很幸运它可以工作?(IOW,如果我要做一些特定于 .Net Core 3.0 的事情,它会因为运行时堆栈不再支持它而中断?)
它工作的原因是因为 Azure 应用服务是使用 .NET Framework 作为 Windows 操作系统的一部分部署的,并且安装了 .NET Core SDK 和运行时。您可以创建一个基本的 Windows 应用程序服务计划,创建一个与该计划相关联的 Web 应用程序并dotnet --info在 kudu 控制台内运行。这与在本地 Windows 开发箱上安装 .NET Core SDK 和运行时完全相同。此外,我们正在努力在 Windows 应用服务上获取 .NET 3.x SDK 和运行时。如果需要这些二进制文件,可以使用 Azure Pipelines 安装这些 SDK。
因此,您可以将堆栈选项视为指导检查,让您了解应用服务上可用的框架,而无需推送框架依赖项。例如,如果 .NET Core 3.0 可用,那么您可以推送依赖而不是自包含的 .NET Core 3.0 应用程序框架。如果它不存在,那么您就知道您计划应用程序所在的区域,您必须发布自包含的框架,因为该框架尚未推出。
您很幸运,因为.NET Core 的推出始于 2019 年第四季度。如果您的 csproj 以 3.1 为目标,我敢打赌您不会这么幸运:) 因为 3.1 已于 2020 年 4 月 8 日部署到美国中北部和西部 2。
| 归档时间: |
|
| 查看次数: |
1925 次 |
| 最近记录: |