我们有一个大型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吗?
(不,我们不会去微服务,请不要提议。)
答案 0 :(得分:1)
ASP.NET Core是一组在.NET Core和.NET Framework上运行的库。
这意味着您可以创建在.NET Framework上运行的ASP.NET Core应用程序,并继续使用.NET Framework中的所有内容。这可以通过创建新的ASP.NET核心应用程序并编辑.csproj
文件来设置TargetFramework
来完成。 netcoreapp2.0
到net472
并使用包含ASP.NET核心库(Microsoft.AspNetCore.All
等)的单个NuGet包替换Microsoft.AspNetCore
元数据包。)
虽然这也使您可以访问System.Web中的类型,但这可能没用,因为ASP.NET Core应用程序不能在IIS中运行,例如,无法使用System.Web中的HttpContext(因为没有IIS / ASP.NET HTTP上下文)。
如此底线,它取决于您使用的库所依赖的System.Web的功能。