前言

会写这篇是因为想记入一个 bug. 随便以后记入一些 Visual Studio 和 VS Code 相关的冬冬呗.

当 VS Code Hot Reload 遇上 View Component 的 Bug

由于这个 Bug 涉及到多方面 (不容易提问), 所以我就没有 report github issue. 希望过阵子它自己好起来呗 (目前是 workaround)

Reproduction Setup

dotnet new webapp -o TestHotReload

创建 Component (参考: ASP.NET Core – View Component)

CallToAction/CallToActionViewComponent.cs

using Microsoft.AspNetCore.Mvc;

public class CallToActionViewComponent : ViewComponent
{
public IViewComponentResult Invoke()
{
return View(
$"~/Pages/Shared/Component/CallToAction/Index.cshtml"
);
}
}

CallToAction/Index.cshtml

<h1>Hello World!!</h1>

Index.cshtml

@page
@model IndexModel
@addTagHelper *, TestHotReload
@{
ViewData["Title"] = "Home page";
} <div class="text-center">
<vc:call-to-action></vc:call-to-action>
</div>

注: 一定要用 TagHelper 引入. 如果使用 Component.InvokeAsync 那这个 Bug 不会出现.

Visual Studio Ctrl + F5 Run

先用 Visual Studio 跑看看

and then 我们修改 Index.cshtml

这时 Visual Studio 会 popup rebuild needed

注意哦, Component.InvokeAsync 的话则是不需要 rebuild 的.

VS Code dotnet watch run

当修改 Index.cshtml 以后会直接报错

解决方法是 Ctrl + R rebuild 就可以了.

VS Code Font Ligatures

参考

YouTube – Font Ligatures in VS Code: Set up Font ligatures in VS Code

Medium – Set Fira Code as your VS Code font | Windows 11

Ligatures 连字,长这样

本来时 === 和 !==

连字看上去很 cool,而且不是原装,所以深受大家喜爱。

首先去下载字体 Github – FiraCode

然后双击 .ttf 文件安装到 Windows(Light - Bold 装到完)

restart Windows

开启 VS Code > Ctrl + Shift + P 进入 User Settings (JSON)

添加 font setting

"editor.fontFamily": "Fira Code, Consolas, Courier New, monospace",
"editor.fontLigatures": true,
"editor.fontSize": 15,

fontFamily 加上 Fira Code。后面几个是默认 VS Code 的,当 Windows 没有安装 Fira Code 时就会 fallback 到后面几个选项。

fontLigatures 就是开启连字咯。

fontSize 不是必须的,看个人喜好。默认应该是 14,我觉得有点小。

 

Visual Studio & VS Code的更多相关文章

  1. ShortKey – Visual Studio/VS Code etc.

    Switching between .h and .cppIn Visual Studio 2013 and later :there is a default keyboard shortcut f ...

  2. visual studio 的 code snippet(代码片段)

    visual studio自带代码片段,用了6年visual studio才知道有这么个玩意……惭愧 最简单例子 for循环,for,连点两下tab……自己研究吧

  3. Visual Studio 201~ Code 格式检查

    前言 好的代码格式,有利于阅读和查错,慢慢的有利于养成良好的编码习惯,也可以帮我们找出一些低级错误. StyleCop 在Nuget上搜索stylecop,选择MSBuild的那个版本,安装. 手动编 ...

  4. Why do I keep getting mixed tabs and spaces in a Visual Studio C# code window?[vs power tools issue transfered]

    goto tools->option->power tools-> turn "use mixed tabs" option to off. you won`t ...

  5. [搬运] 将 Visual Studio 的代码片段导出到 VS Code

    原文 : A Visual Studio to Visual Studio Code Snippet Converter 作者 : Rick Strahl 译者 : 张蘅水 导语 和原文作者一样,水弟 ...

  6. Visualize Code with Visual Studio

    In this post, App Dev Manager Ed Tovsen spotlight the features and benefits of Code Maps in Visual S ...

  7. Visual Studio 的代码片段工具

    当安装完Visual Studio之后,会有附带一些原生的代码片段文件(*.snippet),对于vs2013参考目录如下: X:\Program Files (x86)\Microsoft Visu ...

  8. 用Visual Studio调试Windows和驱动程序

    由于本人能力有限,翻译不足之处敬请谅解,欢迎批评指正:sunylat@163.com Visual Studio版本:Visual Studio 2015企业版,中文环境. MSDN原文:https: ...

  9. Visual Studio的MethMVVM

    MethMVVM介绍: Visual Studio Gallery是微软针对VisualStudio扩展提供的一种解决方案,在Visual Studio Gallery你能够找到各种不同主题的解决方案 ...

  10. Visual Studio 2010 中的 Web 开发

    概述 Microsoft Visual Studio 2010 为 ASP.NET Web 应用程序的开发提供非常多新的功能.这些新功能旨在帮助开发者高速方便地创建和部署质量高且功能全的 Web 应用 ...

随机推荐

  1. 解决方案 | 在 Tkinter 中导入 pywinauto/pyautogui 时窗口大小发生变化

    上面问题也可以换一个说法,pywinauto/pyautogui 时改变了tkinter的原有的窗口大小.这个问题困扰了我好几天而且网上有这样的问题但是并没有答案,今天摸索出答案给大家分享下.解决方法 ...

  2. oeasy教您玩转vim - 13 - # 大词小词

    大词小词 回忆上节课内容 我们上次学习了 e e 代表 end 词尾 自有跳跃 还可以成倍次数的跳跃 但其实我是想以一个一个属性地跳跃,有没有方法呢? 查询帮助 没思路的话我们还是得继续查询 :h w ...

  3. Jenkins如何使用CrumbIssuer防御CSRF攻击

    1.CSRF(跨站请求伪造)概述 在讲解Jenkins的跨站请求伪造(CSRF)保护机制之前,让我们首先对CSRF这一安全威胁及其重要性进行简明扼要的概述. 1.1  CSRF(跨站请求伪造)的原理 ...

  4. android:inputType 类型详细介绍

    //文本类型,多为大写.小写和数字符号.android:inputType="none"//输入普通字符android:inputType="text"//输入 ...

  5. Fiddler的工作原理

    Fiddler是位于客户端和服务器端中间的HTTP代理,是目前最常用的http抓包工具之一 . Fiddler抓取客户端和服务器之间的所有HTTP请求后进行分析.断点.过滤等操作. Fiddler可以 ...

  6. 【Java】Annotation 注解

    Annotation 注解 注解是一种元数据 MetaData,从JDK5开始 在Java代码中是一个特殊的标记,可以在编译,类加载,运行时读取,执行对应的处理 程序可以在不改变原有逻辑的基础上嵌入一 ...

  7. 【Java】Socket Programming 网络编程

    Java提供了网路相关的类库,无痛连网,底层细节交给JVM控制 Java实现了一个跨平台的网络库,我们开发面对的是一个统一的网路编程环境 目的: 直接或者间接的通过网络协议和其他计算机数据交互,通讯 ...

  8. 【ActiveJdbc】02

    一.基本的数据库操作 数据模型层: import org.javalite.activejdbc.Model; 数据访问层: import org.javalite.activejdbc.Base; ...

  9. python高性能计算:cython使用openmp并行(示例)

    y.pyx import cython from cython import parallel from cython.parallel import prange cdef int i cdef i ...

  10. MindSpore中使用model.train,在每一步训练结束后自动进行调用自定义函数 —— from mindspore.train.callback import Callback

    在MindSpore中使用model.train训练网络时我们难以处理间断性的任务,为此我们可以考虑使用MindSpore中的Callback机制.Callback 函数可以在 model.train ...