昨天写了一篇动态修改Cshtml的,不过那是在开发环境下,用IIS_Express或独立进程的方式。但最终发布到IIS,该如何更新呢?

这个不得不说是遇到一个巨大的坑了。

首先在网上查,似乎也很简单,就是在Startup.cs里的ConfigureServices()方法里加上
            services.AddRazorPages().AddRazorRuntimeCompilation(); 包括最新的官网上都是这样写的,参见ASP.NET Core 中的 Razor 文件编译 | Microsoft Docs

另外,还要将FolderProfile.pubxml里的预编译设为False,

<RazorCompileOnBuild>false</RazorCompileOnBuild>
    <RazorCompileOnPublish>false</RazorCompileOnPublish>

我照做了,发布后却感觉有点不对劲:

1.如果不设为false,在发布目录下并没有生成XXXX.View.dll,只有一个XXXX.dll,我修改了一个Cshtml,发布到另一个目录,只将XXXX.dll更新到站点下,页面就更新了,说明Cshtml被编译到这个dll里了。

2.如果设为false,确实发布后有View目录了,但访问网站却直接报错了,说找不到内容。感觉根本没有执行AddRazorRuntimeCompilation()这个方法。

我仔细回忆了一下,这个startup.cs文件 在创建项目之初并不存在,是我手工添加的,难道是最新版本又有变化?再查了下项目的启动次序

https://www.cnblogs.com/whuanle/p/10095209.html

到progarm.cs里看了下,里面有个builder.Services.AddControllersWithViews(),我加上了启用动态编译的方法:

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.
builder.Services.AddControllersWithViews().AddRazorRuntimeCompilation();
var app = builder.Build();

再发布后,这次打开页面用了很长的时间,估计有戏了,应该是在动态编译。页面能打开了。试着改了下Cshtml,再刷新下页面,能看到更新了!

总结:应该是最新版本6.0做了启动方法的整合,弃用了Startup.cs,启动时的服务设置放到了Program.cs中,但是文档即没有更新....

建议:在学习Asp.net 6.0之前,建议先看下差异ASP.NET Core 6.0 的新增功能 | Microsoft Docs

因为其它地方的文档还没有更新,看这里就能理解为什么没有XXXXX.View.dll了

Asp.net Core 6.0 之动态修改Cshtml(发布篇)相关推荐

  1. ASP.NET Core 2.0 特性介绍和使用指南

    ASP.NET Core 2.0 发布日期:2017年8月14日 ASP.NET团队宣布ASP.NET Core 2.0正式发布,发布Visual Studio 2017 15.3支持ASP.NET ...

  2. asp.net core 1.1 项目升级至 asp.net core 2.0 preview 2

    这两天把一个 asp.net core 1.1 的项目迁移到了 asp.net core 2.0 preview 2 ,在这篇随笔中记录一下. 如果项目在有 global.json 文件,需要删除或修 ...

  3. ASP.NET Core 1.0开发Web API程序

    .NET Core版本:1.0.0-rc2 Visual Studio版本:Microsoft Visual Studio Community 2015 Update 2 开发及运行平台:Window ...

  4. ASP.NET Core 3.0中使用动态控制器路由

    原文:Dynamic controller routing in ASP.NET Core 3.0 作者:Filip W 译文:https://www.cnblogs.com/lwqlun/p/114 ...

  5. 使用依赖注入的ASP.NET Core 2.0用户角色基础动态菜单管理

    目录 介绍 背景 先决条件 使用代码 第1步 - 创建数据库 创建数据库 第2步 - 创建ASP.NET Core 更新appsettings.json 步骤3 - 在Startup.cs文件中添加I ...

  6. Ubuntu GitLab CI Docker ASP.NET Core 2.0 自动化发布和部署(1)

    相关博文: Ubuntu 简单安装和配置 GitLab Ubuntu 简单安装 Docker Ubuntu Docker 简单安装 GitLab Ubuntu Docker 安装和配置 GitLab ...

  7. Amazing ASP.NET Core 2.0

    前言 ASP.NET Core 的变化和发展速度是飞快的,当你发现你还没有掌握 ASP.NET Core 1.0 的时候, 2.0 已经快要发布了,目前 2.0 处于 Preview 1 版本,意味着 ...

  8. ASP.NET CORE 1.0 MVC API 文档用 SWASHBUCKLE SWAGGER实现

    from:https://damienbod.com/2015/12/13/asp-net-5-mvc-6-api-documentation-using-swagger/ 代码生成工具: https ...

  9. [译]ASP.NET Core 2.0 网址重定向

    问题 如何在ASP.NET Core 2.0中实现网址重定向? 答案 新建一个空项目,在Startup.cs文件中,配置RewriteOptions参数并添加网址重定向中间件(UseRewriter) ...

最新文章

  1. C# 错误!!容量超出了最大容量。参数名: capacity 这个是什么问题呢?
  2. python嵌套列表知多少
  3. QML 性能优化建议(一)
  4. SAP PI screenshot
  5. 【转】logback 常用配置详解(序)logback 简介
  6. FreeSWITCH安装报错“You must install libyuv-dev to build mod_fsv”的解决方案
  7. 菌群多样性检测_多样性丰富了中学Linux用户群
  8. Intel Sandy Bridge/Ivy Bridge架构/微架构/流水线 (4) - 流水线前端概述
  9. 【原】数据分析/数据挖掘/机器学习---- 必读书目
  10. 从海康录像机取RTSP转发流,规律性的断流
  11. Systemview5安装的问题:the license for this version of systemview has expired......
  12. 目标检测网络 -- FasterRCNN
  13. java集合优秀率怎么算,优秀率怎么算(及格率和优秀率公式)
  14. 基于Java、MySQL的毕业设计,房屋租赁系统
  15. 酒店客房管理系统总结
  16. Interspeech2022论文解读 | LODR:一种更好、更轻量的语言模型融合新方式
  17. 【Zotero】使用坚果云同步PC端和IOS端
  18. Java中日期格式化字符串大小写区别YYYY和yyyy
  19. 使用uniapp开发APP时的调试/安卓打包等
  20. 下行控制信息 - 上行DCI

热门文章

  1. 生产企业原材料订购与运输的研究-数据处理课程设计
  2. IBM x3750 M4之IMM管理
  3. LLaMA(大规模机器学习和分析)
  4. bootloader详解----bootloader的基本概念
  5. 如何调整照片的大小?电脑怎么修改图片大小尺寸?
  6. 域名解析(阿里云二级域名解析)
  7. GOF23设计模式之适配器模式
  8. Git版本回退的两种方式_艾孜尔江撰
  9. 数据在网络层的传输过程
  10. 「数据游戏」:使用 ARIMA 算法预测三日后招商银行收盘价