lindexi

林德熙 - 微软最具价值专家和 .NET 基金会成员

林德熙

ReSharper 显示使用的颜色

在代码里面输入类似于 Colors.Red 的代码,将会自动在代码后面显示一个对应颜色的小方块。本文将告诉大家这个功能的开关在哪里

Total Commander 使用 mklink 建立文件夹链接 将 C 盘文件迁移到其他盘

在安装完成了 100000000 个软件之后,我 1T 的 C 盘的空间终于不足了,由于安装了大量的特别挑的不专业的软件,强行放在其他的盘将水土不服。于是在老师傅的指导下,我采用了 mklink 神奇命令行,通过 mklink 可以实现将实际的文件放在其他的盘,然后建立链接到原先的地方,在应用上层基本感知不到文件的实际存储地方已经被更换。也就是物理上的文件存放是可以在另一个磁盘上,但软件以为文件还在原来的地方 这是一个不错的方法,我需要处理的文件夹还稍微有点多,就想着写一点小工具,在 Total Commander 里面,辅助我快速完成工作

Roslyn 解决 dotnet core 应用进程间引用找不到 runtimeconfig 依赖文件

我有一个强大的功能,这个功能就是在 Linux 下使用 GDI 转换 EMF 格式图片为 png 图片,但是有一些有趣的图片会让转换的进程炸掉。因此我就想让转换服务放在独立的进程,通过进程间调用,也就是命令行调用传入参数的方式,让另一个进程转换图片。而此时就会遇到一个问题,如何让这个进程也被构建,然后输出到输出路径

Office 文档 文本排版布局 中华人民共和国国家标准 标点符号用法

我在做一个和 Office 差很多的文本排版软件,而文本排版软件里面的是有国家标准的,如果不符合标准那么这个排版软件是不专业的,或者说这个软件只是一个纯文本软件,而不是一个能做文档的软件

Roslyn 如何了解某个项目在 msbuild 中所有用到的属性以及构建过程

使用 SDK Style 格式的 csproj 十分简化,但是实际上的构建过程需要用到超级多的逻辑,那么如何知道在 msbuild 所使用的构建过程有哪些,定义了那些属性。有那些 target 文件参与了这个项目构建 本文告诉大家一个方法,可以输出某个项目在 msbuild 中的完全使用到的 targets 和属性等

Roslyn 引用某个文件夹所有文件作为链接

在 SDK 格式的项目文件可以通过简单代码引用某个文件夹里面指定后缀的文件作为项目文件

Roslyn 如何基于 Microsoft.NET.Sdk 制作源代码包

本文告诉大家如何做源代码包,源代码包的意思是安装的包不是安装dll的方式,而是使用源代码的方式。也就是最后是编译包的源代码而不是添加dll,这个方式是解决想要把项目分小,功能分细,但是不希望项目有很多的 dll,因为如果项目有很多 dll 会让软件打开的时间比较长

Roslyn 打包自定义的文件到 NuGet 包

在使用 sdk 格式的项目文件支持快速进行打包,但使用这个方式打包的时候将默认只带程序集输出文件,而没有带依赖的文件。本文告诉大家如何在打包的时候加上需要放在包里面的文件

Roslyn 通过 Nuget 管理公司配置

本文来告诉大家如何用 Roslyn 管理配置,在开一个新的项目的时候经常需要添加公司,版权等,但是这些信息不想每次都添加于是我就想用 Nuget 管理所有配置,安装一个 nuget 就自动配置

Roslyn 通过 NuGet 库修改应用程序入口函数

我和小伙伴说只要你安装我的 NuGet 库无论你怎么做,都会调用我的 Main 函数,默认的主函数不会调用

Roslyn 使用 Directory.Build.props 文件定义编译

本文告诉大家 Directory.Build.props 是什么有什么优点?如何使用 Directory.Build.props 文件定义编译

Resharper 去掉注释拼写

最近在 Resharper 的 2018.2.1 的版本,提供了单词拼写功能,如果自己写错了单词,可以在 Resharper 提示

Roslyn how to use WriteLinesToFile to write the semicolons to file

As you know, the WriteLinesToFile will separate the item by semicolons. How can we use WriteLinesToFile to write the semicolons to file?

Roslyn 让 VisualStudio 急速调试底层库方法

我有一个很大的项目,这个项目里面包含了很多小的底层库。有一天我发现了某个底层库可能有小伙伴挖了一个坑,我期望调试这个底层库,但是我一点都不想编译整个大项目,因为底层库被太多的项目应用,一点点修改都需要编译很久。本文提供一个简单的方法让大家可以通过修改项目文件,让 VisualStudio 可以急速调试底层库,每次更改底层库只需要重新编译底层库就可以

Roslyn 使用 Directory.Build.props 管理多个项目配置

在一些大项目需要很多独立的仓库来做,每个仓库之间都会有很多相同的配置,本文告诉大家如何通过 Directory.Build.props 管理多个项目配置

Sublime Text 安装中文、英文字体

在 Sublimte Text 如何使用默认的字体,英文好看,但是中文不好,所以我就找了一个支持中文英文的字体。

SourceYard 制作源代码包

本文带大家走进SourceYard开发之旅 在项目开发中,将一个大的项目拆为多个小项目解耦,减少模块之间的耦合。因为如果将代码放在一起,即使有团队的约束,但只要能写出的代码就会有小伙伴写出,很快就发现各个模块耦合的代码很多。但是对一个项目的拆分会让拆分出来的每一个项目都编译出一个 dll 增加运行文件的启动时间。 在开发中,常常会用到很多工具类,这些小轮子很多的功能基本就只有一个类,如何对这些小轮子进行管理?通过复制代码还是通过 Nuget 管理?

Roslyn NameSyntax 的 ToString 和 ToFullString 的区别

本文告诉大家经常使用的 NameSyntax 拿到值的 ToString 和 ToFullString 方法的区别

resharper 自定义代码片

我们在做一件事前,需要先做工具,工具好,最后我们做事也快。这个过程需要的时间也是值得的。 我们在C#下使用的工具,有一个神器,Resharper,他可以帮修改代码、重构,做很多重复的事。 而Resharper 虽然强大,但是还不能全和我们需要的一样,如代码片,有些需要或经常使用的代码还是没有,需要自己去写,他自带的代码片叫 Live Template. Resharper的代码预知和 VisualStudio 的代码片相似,但是他可以知道当前输入 是变量还是属性,这样就比原来的好用。 本文主要:如何修改Resharper代码片,自定义代码片

Resharper 如何把类里的类移动到其他文件

有时候,看到一个类里有很多类,需要把他移动其他文件

三种方式设置特定设备UWP XAML view

开发者可以设置UWP特定设备xaml view,在桌面,手机,Iot,这个对于设置对不同设备的不同屏幕有用。我们可以使用RelativePanel,VisualStateTriggers,但是这样我们的xaml很大,我们在弄的时候觉得想修改一个东西会让我们把全部删了。 为了让我们可以在不同设备使用不同xaml view,我们可以有下面的方式:

resharper 跳转到源代码

resharper 可以使用 ctrl+b 跳转到源代码,但是如果使用库的源代码,那么如何跳转,会显示对象管理器,那么如何让resarper 跳转到源代码

Roslyn 节点的 Span 和 FullSpan 有什么区别

本文告诉大家在使用 Roslyn 分析代码时,使用的 Span 和 FullSpan 有什么区别

How to Integrate Microsoft.Maui.Graphics into the UNO Framework in dotnet

This article will guide you on how to integrate Microsoft.Maui.Graphics into the UNO framework. Once the integration of Microsoft.Maui.Graphics is complete, it allows the UNO framework to reuse many existing drawing infrastructures and libraries, and further connect with MAUI.

Notes on Migrating from WPF to UNO under UOS

This article documents my experience in migrating a small WPF application to the UNO framework for support on the UOS(统信).

IIncrementalGenerator 增量 Source Generator 生成代码入门 获取引用程序集的所有类型

本文告诉大家如何在使用 IIncrementalGenerator 进行增量的 Source Generator 生成代码时,如何获取到当前正在分析的程序集所引用的所有的程序集,以及引用的程序集里面的所有类型

IIncrementalGenerator 增量 Source Generator 生成代码入门 判断程序集之间的 InternalsVisibleTo 关系

本文告诉大家如何在使用 IIncrementalGenerator 进行增量的 Source Generator 生成代码时,如何判断两个程序集之间是否存在 InternalsVisibleTo 关系

Microsoft.Maui.Graphics.Skia 使用 DrawString 绘制文本的坐标问题

本文记录使用 Microsoft.Maui.Graphics.Skia 的 DrawString 进行绘制文本,不同的重载方法绘制的文本的坐标不同的问题

MAUI 自定义绘图入门

在2022的5月份,某软正式发布了 MAUI 跨平台 UI 框架。我本来想着趁六一儿童节放假来写几篇关于 MAUI 入门的博客,可惜发现我不擅长写很入门的博客。再加上 MAUI 似乎是为了赶发布日期而发布,只能勉强说能开发了,能用了。于是我就来开始假定大家是一个成熟的 MAUI 开发者了,开始进入复杂控件自绘的自定义绘图渲染的博客

Mac 升级到 dotnet 5 构建 Xamarin 应用失败 error MSB4186 静态方法调用语法无效

我昨天将 Mac 构建机器也升级到了 dontet 5 最新版。但是在升级之后,所有的 Xamarin 项目都在 Mac 版本的 VisualStudio 构建不通过,提示 error MSB4186: 静态方法调用语法无效。解决方法就是将 VisualStudio 更新到最新版本

Office 使用 OpenXML SDK 解析文档博客目录

本文收集 Office 解析相关博客

How to generate NuGet package with Git Tag version using GitHub Action

We can trigger the GitHub Action by Git tag pushed and we can read the Git tag name as the version. And then we can generate the NuGet package with this version.

GitHub 的 Action 如何禁用

我 Fork 了小伙伴的 ant-design-blazor 仓库,这个仓库设置了每天自动同步样式,这个 Action 用到了源仓库的密钥,在我 Fork 的仓库一定跑不通过,于是每天我就收到一次构建不通过的信息。本文告诉大家如何禁用自己 Fork 的某个仓库的 Action 的执行

MSBuild 输出日志可视化工具 MSBuild Structured Log Viewer 简介

感谢 Vatsan Madhavan 小伙伴推荐的 MSBuild 输出日志可视化工具,这个工具可以使用漂亮的 WPF 界面预览 MSBuild 复杂的输出内容