之前的项目都是 .net framework 的,未曾正式触碰到 .net core,但是 最近 项目 使用了 .net 5,踩了不少坑,所以再次做个记录(不一定是 .net core 的 坑)。
1. 关于 https 的。项目 运行的 时候 给默认 是 https的了,导致 http 的 图片 显示 失效
百度了之后,看到 这篇文章 ,里面写道 相关的 内容, 应该是创建 项目的时候给 选到 了 配置 https 或是 ssl ,
不过 按里面的 做法 还没有 解决 问题 ,后面 直接项目 右键 → 属性 → 调试 → 取消 勾选 启用ssl →保存重新运行 就好了
2. 用惯了 webApi 里的 ApiController 的 return Json(object)
目前 发现 可以 改用 return new JsonResult(object) 来代替,不过现在 直接 使用 返回 实体 类型 了
3.发布 编译出来的 的 View 是 DLL 文件
这样 感觉 要单个修改 好像挺麻烦的 ,通过网上 找到了解决办法 ,步骤如下
A.csproj 文件中的 PropertyGroup 节点下 添加下面的配置
<RazorCompileOnBuild>false</RazorCompileOnBuild>
<RazorCompileOnPublish>false</RazorCompileOnPublish>
B.弄完后,运行会发现出错,所以还需要 安装 Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation NuGet 包
将项目的 Startup.ConfigureServices 方法更新为包含对 AddRazorRuntimeCompilation 的调用:
services.AddControllersWithViews().AddRazorRuntimeCompilation();
或者
services.AddRazorPages().AddRazorRuntimeCompilation();
C.再次运行发现没问题,但是 发布 又出现了 很多语言包,不需要啊
同样 需要 在 .csproj 文件中的 PropertyGroup 节点下 添加下面的配置
<SatelliteResourceLanguages>zh-Hans</SatelliteResourceLanguages>
如果要添加多种语言,那么以";"分隔,en 是默认的
4. 用了swagger 写了几个接口 发现 这个文档运行一直报错
以前用习惯了 MVC ,所以没这个习惯 去写 请求方式和路由,所以加上这两个就好了
[HttpGet]
[Route("userinfo")]
5.swagger 放到线上 突然 访问不了 ,接口 是正常的
原因:由于 项目拆开, 所以 其他项目的 xml 文件 要另外 发布(复制输出到目录)
6. .net core winform 的 Form1 突然打不开了 提示
The designer cannot be shown because the document for it was never loaded
解决:Form1 右键 选择 打开方式,选择 如图 的选项 就好了 (不过好像 还有点问题)