.NetCore 项目从2.1升级到3.1过程中的实战,简单整理记录下 1.TargetFramework 升级 这步比较简单,站点,类库修改下版本。...面向 Microsoft.NET.Sdk.Web SDK 的项目隐式引用 Microsoft.AspNetCore.App 框架。... 面向 Microsoft.NET.Sdk 或 Microsoft.NET.Sdk.Razor SDK 的项目 如果需要,只能手工添加Microsoft.AspNetCore.App...框架名称 描述 Microsoft.NETCore.App 基本运行时....Microsoft.AspNetCore.App 默认的Web运行时.
本篇介绍的主角是Razor,在非Core的版本中,我们常用开源的RazorEngine来解决我们的问题;但是它却没有对应.NET Core的版本。...一般情况下使用Razor作为视图引擎要实现如下步骤: (1)读取模板文件 -> (2)生成Raozr的C#代码 -> (3)使用Roslyn编译代码生成程序集 -> (4)动态加载程序集 -> (5...这里我们只在.NET Core程序中引用微软Raozr部分的程序集Microsoft.AspNetCore.Razor 1.0版本,这个程序集负责将模板生成出C#代码。...1.Project.json添加引用 "dependencies": { "Microsoft.AspNetCore.Razor": "1.0.0" "NETStandard.Library...其中注意的是LoadTypeForAssemblyStream方法,因为在.NET Core中动态加载程序集的方式跟以前有所不同AppDomain的概念现在已经消失,所以要在.NET Core动态加载程序集要使用
这里公开标记帮助程序有两种方式,如下所示: 第一种:使用通配符语法(" * ")指定指定程序集(AspNetCore)中的所有标记帮助程序都可用于_Views_目录及其子目录中的每个视图文件。...(我们使用“*”指定加载所有标记帮助程序),第二个参数“Microsoft.AspNetCore.Mvc.TagHelpers”指定包含标记帮助程序的程序集。 ...注:Microsoft.AspNetCore.Mvc.TagHelpers 是内置 ASP.NET Core 标记帮助程序的程序集。...view=aspnetcore-3.1 https://docs.microsoft.com/zh-cn/aspnet/core/mvc/views/tag-helpers/authoring?...view=aspnetcore-3.1
简单解释后的意思就是。在以前的ASP.NET中,当我们使用解决方案资源管理器向项目添加文件或文件夹时,项目文件中会包含对该文件或文件夹的引用。...同样,当您在解决方案下的任何文件夹中删除文件或文件夹时,该已删除的文件或文件夹不再是项目的一部分,会立即从解决方案资源管理器中不再显示出来。 另外我们与项目文件的工作方式也发生了变化。..."All" /> TargetFramework:顾名思义,此元素是用于指定应用程序的目标框架,即您希望为应用程序提供的APId程序集。...Microsoft.AspNetCore.App Microsoft.AspNetCore.Razor.Design Microsoft.AspNetCore.App:此NuGet包称为metapackage...Microsoft.AspNetCore.Razor.Design:此软件包包含对Razor的MSBuild支持,并由Microsoft.AspNetCore.App 的metapackage包引用。
前言: 很长一段时间没有写过ASP.NET Core Razor(.cshtml)视图开发WEB页面了,今天刚好把之前做的一个由ASP.NET Core 2.2+Razor开发的项目升级到ASP.NET...Core 3.1,在优化一些新功能的时候忽然发现了一个很蛋痛的问题,就是我每次修改了Razor页面中的内容要重新启动一遍项目让项目重新编译一次才能看到修改内容的一些结果,这样子开发起来真的是太影响开发效率了...,通过阅读官方文档原来是可以通过配置文件可以在启动运行时编译。...运行时编译配置如下: 1、首先引入Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation应用程序包: 复制如下代码(也可以直接到管理Nuget程序包中搜索下载...): Install-Package Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation -Version 3.1.7 2、更新项目的 Startup.ConfigureServices
这个版本包括许多伟大的新功能以及许多错误修复和一般的增强。这个版本包含了多个新的中间件组件、针对Windows的WebListener服务器、Razor视图编译以及Azure相关的特性。...我们可以通过添加对Microsoft.AspNetCore.Rewrite包的Web应用程序的引用来开始使用此中间件。...响应缓存中间件 通过将Microsoft.AspNetCore.ResponseCaching和Microsoft.Extensions.Caching.Memory包添加到应用程序中,现在可以在应用程序中激活与之前的...语法提供了不需要编译器的灵活开发体验,但在某些情况下,您不希望在运行时解释razor语法。...您可以在project.json的“tools”部分中使用包引用“Microsoft.AspNetCore.Mvc.Razor.Precompilation.Tools”将视图编译器添加到应用程序。
注意:如果您的应用程序使用了预编译视图和运行时编译视图的组合,则设置此选项很有用。 MvcRazorFilesToCompile:指定要编译的视图文件。...ASP.NET Core 3.X版本: 安装NuGet包 Install-Package Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation public...基于环境和配置模式启用运行时编译: 根据活动的 Configuration 值,有条件地引用 Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation 包:...<PackageReference Include="<em>Microsoft</em>.<em>AspNetCore</em>.Mvc.<em>Razor</em>.RuntimeCompilation" Version="3.1.2" Condition...view=aspnetcore-3.1
可以清晰的看到,定义的样式并未生效。从浏览器F12 Developer Tool中可以清晰的看到,无法请求demo.css样式文件。...到这里,也就抛出了本文所要解决的问题:如何开发独立通用的RPL? 如果RPL中无法引用项目中定义一些静态资源文件(CSS、JS、Image等),那RPL将无法有效的组织View。 4....看标题,开发独立通用的RPL。怎么理解独立通用?也就意味着RPL中的资源文件最好能够通过程序集打包。这样才能完全独立。否则,在发布RPL时,还需要输出静态资源文件,显然增加了使用的难度。...而如何将资源文件打包进程序集呢?——内嵌资源。 5. Embedded Resource 一个程序集主要由两种类型的文件构成,它们分别是承载IL代码的托管模块文件和编译时内嵌的资源文件。...从图中可以看出内嵌的demo.css文件,是以{程序集名称}.{文件路径}命名的。 那内嵌资源如何访问呢?
看看这篇文章《Blazor Hybrid/MAUI 简介和实战[1]》对MAUI Blazor的说明: MAUI .NET 多平台应用程序 UI (.NET MAUI) 是一个跨平台框架,用于使用 C#...和 XAML 创建本机移动和桌面应用程序, 使用 .net MAUI,可以开发可在 Android、iOS、macOS 上运行的应用,Windows 以及从单个共享代码库运行的应用。...今天就分享如何在Blazor Server、Blazor Wasm、MAUI Blazor之间共享UI的实验,这一步完成,后面开发应用时就方便多了(只针对UI修改)。 2....iOS和macOS效果感谢青城同学[2]提供的图片素材,站长mbp安装了最新的macOS,xCode也是最新的,可能因为预览版macOS原因,xCode无法打开,间接影响了maui编译? 3....文件,参考Dotnet9.MAUI项目的_Import.razor文件部分命名空间,修改如下: @using System.Net.Http @using Microsoft.AspNetCore.Authorization
具有 Microsoft 账户的任何人都可以登录聊天,但只有所属组织的成员可以禁止用户或查看用户的聊天记录。该应用可以限制特定用户的某些功能。...主机配置 在发布 ASP.NET Core 3.0 之前,带有 ASPNETCORE_ 前缀的环境变量会被加载,用于 Web 主机的主机配置。...使用 ASP.NET Core 共享框架 Microsoft.AspNetCore.App 元包中包含的 ASP.NET Core 3.0 共享框架 (shared framework) 不再需要项目文件中的显式元素...共享框架中移除的程序集 从 ASP.NET Core 3.0 共享程序集中移除的最值得注意的程序集是: Newtonsoft.Json (Json.NET)。...Entity Framework Core 有关共享框架中所移除程序集的完整列表,请参阅 从 Microsoft.AspNetCore.App 3.0 中移除的程序集。
在 Windows、macOS 和 Linux 上使用喜爱的开发工具。 部署到云或本地。 在.NET Core上运行。.../aspnet/announcing-asp-net-core-1-1/ Docs: ASP.NET Core 1.1 的新增功能 新增功能: URL 重写中间件 响应缓存中间件 查看组件即标记帮助程序...MVC 型中间件筛选器 基于 Cookie 的 TempData 提供程序 Azure App Service 日志记录提供程序 Azure Key Vault 配置提供程序 Azure 和 Redis...注:即Microsoft.AspNetCore.All ,我喜欢称作全家桶,作用就是一把梭给你全部引用了相关的包,不用你发现没有的时候自己去找,方便是方便,就是把一堆没用到的也给引用了,项目加载速度也会受到影响.../asp-net-core-updates-in-net-core-3-1/ Docs: ASP.NET Core 3.1 的新增功能 新增功能: Razor 组件的分部类支持 HTTP.sys
或Microsoft.AspNetCore.App元包的任何。...将元素中剩余的Microsoft.AspNetCore.*程序包更新到当前的预览版中 (例如,3.0.0-preview3.19128.7)。...具体的不再在 3.0 中生成的包的列表,请参阅aspnet/AspNetCore #3756。 某些程序集已从2.x和3.0之间的Microsoft.aspnetcore.app中删除。...Microsoft.aspnetcore.app中的程序集列表尚未定稿,将在3.0 RTM之前更改。 添加Json.NET 支持。...若要启用运行时编译,请参阅ASP.NET Core 中的 Razor 文件编译。 总结 感觉微软在努力实现ASP.NET Core的模块化,减小各种依赖,让包变得更小。
在本文中,我将讲解如何通过自定义ExceptionHandlerMiddleware,以便在中间件管道中发生错误时创建自定义响应,而不是提供一个“重新执行”管道的路径。...服务器端呈现的应用程序(如Razor Pages)通常希望捕获这些异常并重定向到一个错误页面。...Razor Pages应用程序的最终结果是,每当生产中发生异常时,就会返回这个Error.cshtml 的Razor 页面: ? 这涵盖了razor 页面的异常处理,但是Web API呢?...(例如Razor Pages或MVC)来生成异常消息,总有一些困扰我。...; using Microsoft.AspNetCore.Diagnostics; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http
升级现有项目 要将现有的ASP.NET Core应用程序从.NET 8预览7升级到.NET 8 RC1: 将您的应用程序的目标框架更新为.net8.0 将所有Microsoft.AspNetCore....为了优化应用程序的加载时间,Blazor还可以在运行时自动选择是使用Blazor Server还是Blazor WebAssembly。...使用WebAssembly或Auto渲染模式的任何组件必须从客户端项目构建。 Blazor Web App模板具有清理的文件结构: 新的Components文件夹包含服务器项目中的所有组件。...Components/Layout文件夹包含应用程序布局。 Components/Pages文件夹包含可路由的页面组件。...已知问题 ASP.NET Redis基于输出缓存 在ASP.NET中,基于Redis的输出缓存存在已知的回归问题(在.NET 8中首次引入,在Preview 6中宣布);此功能在RC1中将无法工作。
在第一篇文章中,我将讲述如何将Serilog的RequestLoggingMiddleware添加到您的应用程序,以及它提供的好处。在后续文章中,我将描述如何进一步自定义行为。...以下日志是针对对主页的单个请求生成的(此后我还没有包括对CSS和JS文件的其他请求)(这是是开发环境请求出现的日志): info: Microsoft.AspNetCore.Hosting.Diagnostics...现在,您将获得精简后的日志集: info: Microsoft.AspNetCore.Hosting.Diagnostics[1] Request starting HTTP/2 GET https...webBuilder.UseStartup(); }); } } 尽管这样设置可能显得更为复杂,但是此设置可确保例如在appsettings.json文件格式错误或缺少配置文件的情况下仍会获取日志...例如,不再记录终结点名称和Razor页面处理程序。在后续文章中,我将展示如何将它们添加到摘要日志中。
、xml等 项目所引用的程序集信息,包含本地dll与Nuget包 其它信息 Visual Studio中对项目所做的配置,均可在该文件中体现出来。...注意,这里所引用的是项目在运行时所需的程序集,而.csproj中描述的程序集是项目中添加的引用,二者有区别:项目中添加的引用在运行时未必会用到。...5.2.4.0" newVersion="5.2.4.0"/> 若项目启动后报错:未能加载文件或程序集...“XXXXXX”或它的某一个依赖项,找到的程序集清单定义与程序集引用不匹配,则应当检查下项目所引用的dll文件与Web.config中配置的dll文件信息是否一致。..."/> <PackageReference Include="<em>Microsoft</em>.<em>AspNetCore</em>.<em>Razor</em>.Design" Version="2.1.2" PrivateAssets
、html、js、config、xml等 项目所引用的程序集信息,包含本地dll与Nuget包 其它信息 Visual Studio中对项目所做的配置,均可在该文件中体现出来。...同样,Visual Studio也是根据该文件中的内容来加载项目的。抛开Visual Studio的其它功能,可以将其看作是.csproj文件的图形管理工具。...注意,这里所引用的是项目在运行时所需的程序集,而.csproj中描述的程序集是项目中添加的引用,二者有区别:项目中添加的引用在运行时未必会用到。...若项目启动后报错:未能加载文件或程序集“XXXXXX”或它的某一个依赖项,找到的程序集清单定义与程序集引用不匹配,则应当检查下项目所引用的dll文件与Web.config中配置的dll文件信息是否一致。..."/> <PackageReference Include="<em>Microsoft</em>.<em>AspNetCore</em>.<em>Razor</em>.Design" Version="2.1.2" PrivateAssets
今天在发布Asp.net Core应用到Azure的时候出现错误InvalidOperationException: Cannot find compilation library location for...(IEnumerable`1 parts, MetadataReferenceFeature feature) at Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartManager.PopulateFeature...() at Microsoft.AspNetCore.Mvc.Razor.Internal.LazyMetadataReferenceFeature.get_References() at...Microsoft.CodeAnalysis.Razor.CompilationTagHelperFeature.GetDescriptors() at Microsoft.AspNetCore.Razor.Language.DefaultRazorTagHelperBinderPhase.ExecuteCore...(String normalizedPath) 经过一番测试后,发现如果.csproj文件包含嵌入的资源,需要将Razor的预编译关闭 <MvcRazorExcludeRefAssembliesFromPublish
这没关系,因为它会由Microsoft.AspNetCore.Components.WebAssembly.Build提供,在运行编译的时候会自己出现的。 ?...整体的风格、左侧的菜单、右侧的链接都像我们展示了布局和组件功能 Pages 里面定义了三个.razor文件,这也是模板提供给我的Blazor编写案例 Index.razor向我们展示了,组件的调用 FetchData.razor...如图所示,我们需要加载6.15M的文件,同时可以看到Blazor的运行时信息mono_wasm_runtime_ready。...接下来,我们展开Object来看看其详细信息,会看到Object中有太多的依赖程序集。 ? 打开源代码tab页,会看到以下几个文件 ?...blazor.webassembly.js,用于下载.NET运行时,依赖程序集等,同时还会初始化运行应用的程序集 dotnet.3.2.0.js也是我们之前所说的用于调用C#方法的JS文件 添加页面 这个比较简单
"Microsoft.AspNetCore" 类别在日志级别 Warning 或更高级别记录。...这里的类别其实就是指我们的命名空间,Microsoft.AspNetCore就是指Microsoft.AspNetCore开头的所有命名空间。...": "Warning", "Microsoft.AspNetCore.Mvc.Razor.Razor": "Debug", "Microsoft.AspNetCore.Mvc.Razor...Critical:表示应用程序遇到了严重的错误,可能导致应用程序崩溃或无法继续运行。 以下为官方说明图: 在我们日常开发中,应该选用适合自身业务的日志级别去记录日志。...ELK日志,文件,数据库等等的日志记录提供程序,亦可自行扩展。
领取专属 10元无门槛券
手把手带您无忧上云