Windows上的.NET Core应用程序是否也可以访问system.web?

时间:2018-05-25 19:22:19

标签: c# asp.net .net-core

我们有一个大型ASP.NET应用程序,我们正在努力转向.NET Core。主要目标是自我主机(再见IIS,你好xcopy部署!)。

我们有一条将应用程序迁移到Razor(几百个aspx文件)的路径,这看起来不错(我们主要是在MVC上,所以我们只有一些旧的legacy-asp.net部分我们正在重做MVC )。

但是,我们有一大堆基于.NET 4.6的第三方库。我们坚持使用大多数这些库。这些库被硬编码到system.web以实现许多功能。我们无法改变这一点。

所以问题:如果我坚持在Windows上运行我的.NET Core动物,我可以在进程中引用.NET 4.6 / 4.7吗?

(不,我们不会去微服务,请不要提议。)

1 个答案:

答案 0 :(得分:1)

ASP.NET Core是一组在.NET Core和.NET Framework上运行的库。

这意味着您可以创建在.NET Framework上运行的ASP.NET Core应用程序,并继续使用.NET Framework中的所有内容。这可以通过创建新的ASP.NET核心应用程序并编辑.csproj文件来设置TargetFramework来完成。 netcoreapp2.0net472并使用包含ASP.NET核心库(Microsoft.AspNetCore.All等)的单个NuGet包替换Microsoft.AspNetCore元数据包。)

虽然这也使您可以访问System.Web中的类型,但这可能没用,因为ASP.NET Core应用程序不能在IIS中运行,例如,无法使用System.Web中的HttpContext(因为没有IIS / ASP.NET HTTP上下文)。

如此底线,它取决于您使用的库所依赖的System.Web的功能。