自定义博客皮肤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/ 热爱设计,不止是程序,更是艺术!

原创 使用 SetWindowCompositionAttribute 来控制程序的窗口边框和背景(可以做 Acrylic 亚克力效果、模糊效果、主题色效果等)

Windows 系统中有一个没什么文档的 API,SetWindowCompositionAttribute,可以允许应用的开发者将自己窗口中的内容渲染与窗口进行组合。这可以实现很多系统中预设的窗口特效,比如 Windows 7 的毛玻璃特效,Windows 8/10 的前景色特效,Windows...

2019-11-27 07:58:55 1333 4

原创 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率

使用 Visual Studio 开发 C#/.NET 应用程序,以前有 ReSharper 来不足其各项功能短板,后来不断将 ReSharper 的功能一点点搬过来稍微好了一些。不过直到 Visual Studio 2019,才开始渐渐可以和 ReSharper 拼一下了。 如果你使用 Visu...

2019-10-28 09:31:22 656 0

原创 .NET 将多个程序集合并成单一程序集的 4+3 种方法

编写 .NET 程序的时候,我们经常会在项目的输出目录下发现一大堆的文件。除了我们项目自己生成的程序集之外,还能找到这个项目所依赖的一大堆依赖程序集。有没有什么方法可以把这些依赖和我们的程序集合并到一起呢? 本文介绍四种将程序集和依赖打包合并到一起的方法,每一种方法都有其不同的原理和优缺点。我将介...

2019-08-30 15:03:48 554 0

原创 专业团队:推荐一个网站,生成巨幅文字注释

通过学习本文的知识,你将可以在你的项目代码里创造大量的注释。让你的注释闪瞎团队所有人的钛合金X眼,我们是专业团队。 Console.WriteLine(@" ██╗ ██╗ █████╗ ██╗ ████████╗███████╗██████╗ ██╗ ██╗ ██╗...

2020-06-30 10:03:42 45 0

原创 在制作多框架项目的 NuGet 包时应该注意的问题(buildMultiTargeting TargetFrameworks)

制作一个 dll 引用的 NuGet 包简直是一键完成,无论是不是多框架项目;制作 dotnet-tools 也是如此。但如果需要自定义一些编译步骤,那么就需要在制作 NuGet 包时做很多的特殊处理了。 本文介绍制作适用于多框架项目的 NuGet 工具包时应该注意的问题。 本文内容背景知识Nu...

2020-06-30 10:03:02 91 0

原创 在 PowerShell 里根据进程名杀掉进程

任务管理器杀进程大家都会,不过如果你的系统被卡到任务管理器都无法操作了,怎么办?直接在 PowerShell 中干掉!另外,这也非常容易集成到各种工具链中。 系列博客: 在 CMD 里根据进程名杀掉进程 - walterlv 在 PowerShell 里根据进程名杀掉进程 - walterlv...

2020-06-30 10:02:29 44 0

原创 在 CMD 里根据进程名杀掉进程

任务管理器杀进程大家都会,不过如果你的系统被卡到任务管理器都无法操作了,怎么办?拿控制台 CMD 吧! 系列博客: 在 CMD 里根据进程名杀掉进程 - walterlv 在 PowerShell 里根据进程名杀掉进程 - walterlv 本文内容taskkill 命令 taskkill ...

2020-06-30 09:59:12 109 0

原创 适合 .NET 开发者用的 GitHub Actions(时不时更新)

本文制作并长期更新适合 .NET 开发者用的 GitHub Actions。整理方式为整个文件而不是单个可用的模块,这样可以方便大家以最快的速度为自己的项目添加 GitHub Actions。当然自己改改也可。 本文内容.NET 编译与单元测试(全平台).NET 编译与单元测试(仅限 Windo...

2020-06-30 09:58:39 38 0

原创 了解 Windows Linux 下命令行 Shell 启动程序传参的区别,这下不用再担心 Windows 下启动程序传参到 Linux 下挂掉了

启动某个程序,再带上一堆参数,这几乎是程序员们每天必做到事情。另外再算上各种辅助程序员们的自动化脚本,辅助构建的 CI(持续集成)等等,程序员们在创造大量的应用程序然后调用它们。 但是,不经常跨系统玩这些的小伙伴们注意了,Windows 下的 Shell 和 Linux 下的 Shell 是有区别...

2020-06-30 09:57:17 27 0

原创 比较 Windows 上四种不同的文件(夹)链接方式(NTFS 的硬链接、目录联接、符号链接,和大家熟知的快捷方式)

可能有很多小伙伴已经知道通过 mklink 命令来创建 NTFS 磁盘上的各种链接;当然,就算不知道 mklink 的链接,快捷方式应该每个人都知道吧。mklink 的选项有很多种,但你可能在其他文章中难以找到对这些不同选项的不同效果和使用限制的准确和统一描述。本文将介绍 Windows 系统中所...

2020-06-30 09:56:38 45 0

原创 Unity3D 入门:最简单的控制视角,以及控制角色前进、转向的脚本

本文依然是 Unity3D 的入门篇。作为 Unity3D 的入门读者,你可能希望迅速让你能在游戏中操作你的视角,或者让角色移动。 本文内容创建脚本最简代码 创建脚本 作为入门篇,可能需要讲一下如何创建脚本。按下图,在 Unity 编辑器中: 在 Hierarchy(层级)中选中主摄像机; 在...

2020-06-30 09:54:44 25 0

原创 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件

本文介绍 Unity3D 项目根目录的 sln 和 csproj 文件,你将知道如何正确理解和使用它们。 对于传统 .NET/C# 的开发者来说,在解决方案中管理 NuGet 包,在 C# 项目中引用 dll 或 NuGet 包是家常便饭。但在 Unity 项目里面,你可能要改变这一观念——因为...

2020-06-30 09:53:27 57 0

原创 Unity3D 入门:如何制作天空效果?天空盒的使用

在 Unity 编辑器的主界面中我们可以很容易制作各种场景物体,但天空如何制作呢? 本文内容了解和设置默认的天空盒在资源商店中下载天空盒总结 了解和设置默认的天空盒 在新建一个 Unity3D 项目之后,我们在空空如也的场景下看到的那蓝灰过渡的画面,其实就是 Unity3D 默认提供的“天空”,...

2020-06-30 09:50:23 66 0

原创 Unity3D 入门:如何在脚本中找到游戏对象的父子级 祖孙级对象和它们的组件

在真正能玩的游戏场景中,很多脚本的执行是在不确定的游戏对象上进项的,于是会考虑在父对象或者子对象上去写脚本。这时,可能需要查找游戏对象。那么如何在脚本中找到父子游戏对象(gameObject)呢? 本文内容场景找父组件/子组件找父对象/子对象 场景 如下图所示,Windows 游戏对象下面可能有...

2020-06-30 09:02:44 30 0

原创 Unity3D 入门:如何管理 Unity 项目中的 NuGet 包?使用第三方 NuGet 包管理器——NuGetForUnity

Unity 项目虽然可使用 C# 项目作为脚本,却并没有提供一种类似 NuGet 的第一方包管理器。不过,还是有第三方包管理器可以用,为 C# 脚本应用现有的库提供方便。 本文内容NuGetForUnity安装 NuGetForUnity使用 NuGetForUnity安装 NuGet 包还原 ...

2020-06-30 09:02:14 44 0

原创 Unity3D 入门:让 C# 脚本公开可在 Unity 编辑器中设置的属性

将一部分参数从 C# 脚本中抽离出来,可以让 C# 脚本在 Unity 项目中更通用,适用于更多游戏对象(gameObject)。 本文介绍如何创建可在 Unity 编辑器中设置属性的 C# 脚本,并介绍如何在 Unity 编辑器中设置它们。 本文内容简单的 C# 脚本公开字段在哪里修改值有趣的...

2020-06-30 09:01:32 69 0

原创 Unity3D 入门:Unity 项目版本管理建议使用的 .gitignore 忽略文件和 .gitattributes 文件(2020年4月更新)

Unity3D 项目虽然说使用 C# 脚本开发,但毕竟不是 .NET/C# 项目。今天一位小伙伴告诉我说用错了 .gitignore 文件,结果管理仓库时丢了很多重要的文件。 实际上,GitHub 官方提供了大量不同项目类型的 .gitignore 文件,并且有广大的社区支持时时更新,直接前往 ...

2020-06-30 08:59:52 49 0

原创 Unity3D 入门:Unity Editor 编辑器常用快捷键

本文为 Unity3D 入门小伙伴整理 Unity 编辑器中的常用快捷键。 本文内容调节工具视图调节窗口调整进入退出播放模式所有快捷键 调节工具 Unity 编辑器左上角的一组按钮,正好也对应着键盘左上角的字母: 图标 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传...

2020-06-30 08:59:22 46 0

原创 Linux Shell 中需要转义的字符

本文整理 Linux Shell 中的转义字符。 在 Linux Shell 中,有很多字符是有特殊含义的,如果期望把这个字符当作普通字符来处理,需要经过 \ 的转义。 本文内容在双引号中即可变普通字符的特殊字符空格 '\ `星号 '\*`井号 `#`换行符即便在引号中也依然...

2020-06-30 08:56:21 71 0

原创 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符

前些天有位小伙伴告诉我说 git 改了某个重要文件的换行符,导致文件的哈希变了,于是文件校验出现错误。之前一直没问题而最近才有问题是因为最近换了部署服务器,git 的换行符配置不一样。 其实,我们不应该让代码仓库如此容易受到外界环境的影响。所以本文会解释 git 的全局配置如何影响了 git 对换...

2020-06-30 08:55:45 35 0

原创 .NET 将混合了多个不同平台(Windows Mac Linux)的文件 目录的路径格式化成同一个平台下的路径

Windows 下的路径分隔符是 \ 而 Linux 和 Mac 下的路径分隔符是 \。正常如果你的数据不跨 Windows 和 Linux 平台流通的话,不怎么会遇到多种换行符并存的问题的。但如果真发生了流通,那么如何将它们格式化为统一的当前平台认识的分隔符呢? 本文内容现有方案没有原生方案(...

2020-06-30 08:55:20 41 0

原创 .NET Windows:删除文件夹后立即判断,有可能依然存在

如果你不了解本文的内容,可能会在未来某个时候踩坑–你可能在判断文件夹是否存在的时候得到错误的返回值。 本文内容删除文件(夹)测试程序原因解决方法 删除文件(夹) 使用 .NET 带的删除文件夹的方法: Directory.Delete("D:\walterlv"); 或者使...

2020-06-30 08:54:39 29 0

原创 .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分)

垃圾回收机制有一些未定义部分,一般来说不要依赖于这些未定义部分编程,否则容易出现一些诡异的 bug 或者不稳定的现象。 本文介绍局部变量这部分的细节,而这点在 .NET Framework 和 .NET Core 默认情况下的表现有差别。 本文内容问题代码原因 问题代码 看看下面这段代码,你觉得...

2020-06-30 08:53:49 28 0

原创 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试

本文介绍使用 dotnet test 命令进行单元测试的时候,过滤出被测项目中的一部分测试出来,仅测试这一部分。 @TOC 背景 建一个 .NET Core 的单元测试项目,例如项目名字是 Walterlv.Demo.Tests。举例其中的一个测试类如下: using Microsoft.Vis...

2020-05-25 16:17:14 151 0

原创 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串

在 XAML 中写绑定是 WPF 学习的必修课,进阶一点的,是用 C# 代码来写绑定。然而一旦绑定的属性是附加属性,好多小伙伴就会开始遇到坑了。 本文将介绍如何在 XAML 和 C# 代码中绑定附加属性。 @TOC 背景代码 开始遇到这个问题的背景是我定义了一个附加属性,然后试图通过绑定的方式完...

2020-05-25 16:10:01 158 0

原创 VSCode:当匹配到结果时,如何一次性全部选中操作(复制 删除)?

最近需要处理几十万行的文字,然后提取出数千行(嗯,我在做输入法词库)。在 VSCode 里我用正则匹配到了想要的结果后,如何能够快速把这些行提取出来呢? 其实非常简单,Alt + Enter 即可选中所有已经匹配到的文字。 来,我们看这个具体的例子: 这里有一个几十万行的词库,我需要将其中的英文...

2020-05-25 16:07:36 494 0

原创 Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境

实际上本文不看也罢,因为整个过程除了网速之外基本没啥坑。不过装完可能有一些配置,所以如果不知道的话可以参考本文。 @TOC 安装 我们共需要安装两款应用: Visual Studio 2019 及 Unity 编辑器组件 Unity Hub 这两款应用安装不分先后,不过建议全部都安装完后再启...

2020-05-25 16:04:08 189 0

原创 将 Windows Terminal 作为外部工具集成到其他工具 程序 代码中

Windows Terminal 在 Windows 上是一款 UWP 应用,然而其依然具有良好的与外部工具的集成特性,你可以在其他各种工具中配置使用 Windows Terminal 打开。 本文介绍如何配置使用 Windows Terminal 打开。 @TOC 命令行调用 在应用商店可以下...

2020-05-25 16:03:51 160 0

原创 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具

Visual Studio 安装过程中一起勾选的 Visual Studio Tools for Unity 提供了与 Unity 编辑器方便的交互功能,充分使用 Visual Studio Tools for Unity 可以提升一部分开发效率减少一点点坑。 @TOC Visual Studi...

2020-05-25 16:03:50 80 0

原创 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用

Visual Studio 2019 (16.5) 版本更新中带来了一项很小很难注意到却非常实用的功能,查看哪一个托管线程正在持有 .NET 对象锁。 如果你不了解这个功能如何使用,那么可以阅读本文。 @TOC 更新日志 Visual Studio 的官方更新日志中对此功能的描述: View ...

2020-05-25 16:03:45 176 0

原创 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅

一直在使用 WebClient 下载文件,.NET 已经封装好,所以用起来代码非常简洁;但直到今天发现有一个文件一直不能正确下载下来。 本文介绍这个问题的原因和解决方法,更重要的是给出调查方法。 @TOC 本文所涉及到的域名已经过敏感信息处理,所以实际上你是无法访问到的;但这不影响本文对调查方法...

2020-05-25 16:03:43 63 0

原创 .NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑

一般来说,大家在需要监听全局消息的时候会考虑 SetWindowsHookEx 这个 API。或者需要处理一些非自己编写的窗口的消息循环的时候,也会考虑使用它。 如果要知道如何使用这个 API,你可以在网上搜到大量这样的文章/博客/教程/文档,然而大多不会提及使用此 API 时遇到的一些坑。阅读本...

2020-05-25 16:03:43 86 0

原创 .NET 的静态构造函数是否线程安全?答案是肯定的!

今天有小伙伴在评估某类线程安全问题的时候,怀疑到静态构造函数里面去了。于是就有了本文。 @TOC 静态构造函数的执行时机 根据官方文档 Static Constructors - C# Programming Guide 所述: A static constructor is called a...

2020-05-25 16:03:39 117 0

原创 Unity3D 入门:为 Unity 的 C# 项目添加 dll 引用或安装 NuGet 包

因为 Visual Studio 有强大的包管理器插件,所以即便是不熟悉 NuGet 命令的小伙伴也能轻松安装和管理 NuGet 包。不过,对 Unity C# 项目来说,你并不能直接引用 dll,也不能直接使用自带的 NuGet 包管理器完成 NuGet 包安装。 本文介绍原因和真正的引用方法。...

2020-05-25 16:03:39 256 0

原创 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。...

最近在改一段 XAML 代码时,我发现无论如何给一个控件添加 Name 或者 x:Name 属性时都会出现编译错误:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 @TOC 编译错误 编译时,出现错误: 无法对元素...

2020-05-25 16:03:36 91 0

原创 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup?

在 WPF 中打开一个 Popup 并没有想象当中容易。虽说提供了一个 IsOpen 属性用于显示 Popup,但实际上造成的 Bug 会让你解得死去活来。Win32 的 WS_POPUP 也坑,不过 WPF 会额外再带来一些,所以本文只说 WPF。 @TOC 先说结论 本文一开始就贴出打开一个...

2020-05-25 16:03:34 60 0

原创 如何在终端和 PowerShell 中将一个命令自动重复执行多次

你可能有很多原因要将一个命令重复执行多次,本文介绍在多个平台下如何多次重复执行命令。 @TOC 背景 最近遇到一个偶然复现的单元测试错误,于是在每次运行时,打算重复运行多次来调查问题是否已经解决。 实际上,重复执行命令有更多用途: 通过重复执行来复现一些偶发的问题 执行一组命令,每次只有参数不...

2020-05-25 16:03:21 133 0

原创 设置用户无需密码自动登录到 Windows 系统

你一定要为你的 Windows 用户账户设置密码,一来会安全一些,而来可以远程登录使用;但有时出于一些特殊的目的,不希望在每次开机后都必须输入密码才能进入系统。于是你可以使用本文提供的方法在每次开机的时候免密码登录到 Windows 操作系统。 @TOC 步骤 在 Windows 搜索框中输入...

2020-05-25 16:03:11 113 0

原创 Windows Linux 系统中获取端口被哪个应用程序占用

管理服务程序的时候,可能会查询某个端口当前被哪个进程占用。不仅能找出有问题的进程将其处理掉,也可以用来辅助检查某个程序是否开启了服务并在监听端口。 @TOC Windows 系统 Windows 系统上可以使用 PowerShell 命令来查询占用某个端口的程序。 比如,我们需要查询 5000 ...

2020-05-25 16:03:01 108 0

原创 最简单的代码,让 WPF 支持响应式布局

响应式布局在各种现代的 UI 框架中不是什么新鲜的概念,基本都是内置支持。然而在古老的 WPF 框架中却并没有原生支持,后来虽然通过 Blend 自带的 Interactions 库实现了响应式布局,但生成的代码量太大了,而且需要引入额外的库。 如果只是希望临时局部地方使用响应式布局,那么其实可以...

2020-05-25 16:02:58 89 0

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