自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

walterlv - 吕毅

欢迎访问 https://blog.walterlv.com/ 热爱设计,不止是程序,更是艺术!

原创 Roslyn 的确定性构建

注意到每次编译完之后,你的 dll 或者 exe 是不一样的吗?本来这并没有什么大不了的,但大家都知道数字和鹅厂的安全软件遍布在我们大(tiān)陆(cháo)地区的大量电脑上,它们的查杀策略是——凡是不认识的一律是病毒木马;于是每次不一样的编译很容易引起它们的警告——真不想每次都把编译后的样本提...

2018-03-31 17:22:37

阅读数 265

评论数 2

原创 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接)

通过 mklink 命令可以创建文件或文件夹的链接,而这种链接跟快捷方式是不一样的。然而我们还可能会遇到其使用过程中的一些坑,本文将整理这些坑并提供解决方法。 0x00 背景介绍:mklink mklink 可以像创建快捷方式一样建立文件或文件夹的链接,但不同于快捷方式的是,mkl...

2018-03-31 17:01:16

阅读数 9735

评论数 0

原创 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切

if (this == null) Console.WriteLine("this is null"); 这句话一写,大家一定觉得荒谬,然而 if 内代码的执行却是可能的!本文讲介绍到底发生了什么。 制造一个 this 可以为 null 的程序 请看代码,这是我...

2018-03-31 08:40:31

阅读数 900

评论数 0

原创 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁

我在 使用 Task.Wait()?立刻死锁(deadlock) 一文中站在类库使用者的角度看 async/await 代码的死锁问题;而本文将站在类库设计者的角度来看死锁问题。 阅读本文,我们将知道如何编写类库代码,来尽可能避免类库使用者出现那篇博客中描述的死锁问题。 可能死锁的...

2018-03-23 22:00:36

阅读数 4593

评论数 12

原创 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误

多人协作开发的项目总会遇到代码编写风格上的差异。一般工具都能帮我们将常见的差异统一起来——例如 if 的换行;但也有一些不那么通用,但项目中却经常会出现的写法也需要统一。 例如将单元测试中的 Assert.AreEqual(foo.GetType(), typeof(Foo)); 换成 Asse...

2018-03-20 20:34:55

阅读数 625

评论数 0

原创 Roslyn 入门:使用 Visual Studio 的语法可视化窗格查看和了解代码的语法树

使用 Visual Studio 提供的 Syntax Visualizer,我们可以实时看到一个代码文件中的语法树。这对我们基于 Roslyn 编写静态分析和修改工具非常有帮助。本文将介绍如何安装它和使用它。 这里是 Visual Studio 的语法可视化(Syntax Visualiz...

2018-03-19 19:51:15

阅读数 725

评论数 1

原创 Roslyn 入门:使用 Roslyn 静态分析现有项目中的代码

Roslyn 是微软为 C# 设计的一套分析器,它具有很强的扩展性。以至于我们只需要编写很少量的代码便能够分析我们的项目文件。 作为 Roslyn 入门篇文章,你将可以通过本文学习如何开始编写一个 Roslyn 扩展项目,如何开始分析一个解决方案(.sln)中项目(.csproj)的代码文件(....

2018-03-19 19:48:54

阅读数 5683

评论数 10

原创 屏幕上那个灰色带有数字的框是什么?看着好难受!

为什么屏幕上出现了一个灰框,里面有黑色数字,而且还不消失?强迫症难以忍受啊! ▲ 就是这个置于所有窗口最顶层,怎么也去不掉的灰色数字框 强迫症晚期请直接前往最后一节把它消灭好了,非强迫症晚期的我们一起来探究下它到底是什么。 使用 Spy++ 想探究一个界面属于哪个进程,当然...

2018-03-19 19:48:04

阅读数 668

评论数 0

原创 将 async/await 异步代码转换为安全的不会死锁的同步代码

在 async/await 异步模型(即 TAP Task-based Asynchronous Pattern)出现以前,有大量的同步代码存在于代码库中,以至于这些代码全部迁移到 async/await 可能有些困难。这里就免不了将一部分异步代码修改为同步代码。然而传统的迁移方式存在或多或少的问...

2018-03-19 19:46:33

阅读数 797

评论数 0

原创 命令“"xxx.exe" xxx”已退出,代码为 n。这些错误是什么意思?

命令“”xxx.exe” xxx”已退出,代码为 n。 我们在 cmd 中输入常见命令的时候,如果命令输入错误或使用错误,cmd 中会提示错误原因,帮助我们定位并解决问题。然而如果相同的命令放到了 Visual Studio 的生成事件中,我们就只能得到 Visual Studio 返回的错误代...

2018-03-19 19:43:05

阅读数 1586

评论数 0

提示
确定要删除当前文章?
取消 删除