lindexi

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

林德熙

开源项目

这是我收藏的开源项目

dotnet C# 在不同的机器 CPU 型号上的基准性能测试

本文将记录我在多个不同的机器上,在不同的 CPU 型号上,执行相同的我编写的 dotnet 的 Benchmark 的代码,测试不同的 CPU 型号对 C# 系的优化程度。本文非严谨测试,数值只有相对意义

UOS 开启 VisualStudio 远程调试 .NET 应用之旅

本文记录的是在 Windows 系统里面,使用 VisualStudio 2022 远程调试运行在 UOS 里面 dotnet 应用的配置方法

UNO 设置平台进入全屏窗口模式的方法

本文记录在 UNO Platform 的桌面窗口项目里,进入和退出全屏窗口的方法,此方法包括 UNO 的 WPF 和 GTK 和 WinUI 版本的实现

dotnet 如何访问到 UNO 框架里面的 internal 不公开成员

本文和大家介绍一个 Hack 的方式,通过此方式可实现访问 UNO 框架里面的 internal 不公开成员,调用 UNO 框架里面的不公开的 API 方法和属性,访问 UNO 里面不公开的类型

Accessing Internal Members in the UNO Framework

This article introduces a hack that allows access to internal, non-public members of the UNO framework. This includes calling non-public API methods and properties, and accessing non-public types within UNO.

VisualStudio 如何 SSH 远程调试 Linux 的 dotnet 应用的启动

本文将告诉大家,如何使用 VisualStudio 2022 工具,通过 SSH 远程调试运行在 Linux 系统上的 dotnet 系应用的启动过程

WPF 开发

本文:我遇到的WPF的坑

dotnet C# X11 开发笔记

本文记录我学习开发 X11 应用的笔记

dotnet 在 UOS 国产系统上使用 Xamarin Forms 创建 xaml 界面的 GTK 应用

在前面几篇博客告诉大家如何部署 GTK 应用,此时的应用是特别弱的,大概只是到拖控件级。尽管和 WinForms 一样也能写出特别强大的应用,但是为了提升一点开发效率,咱开始使用 xaml 神器写界面。本文告诉大家如何在 UOS 国产系统上,通过 Xamarin.Forms 使用 XAML 写界面逻辑,构建出 GTK 应用

WPF 稳定的全屏化窗口方法

本文来告诉大家在 WPF 中,设置窗口全屏化的一个稳定的设置方法。在设置窗口全屏的时候,经常遇到的问题就是应用程序虽然设置最大化加无边框,但是此方式经常会有任务栏冒出来,或者说窗口没有贴屏幕的边。本文的方法是基于 Win32 的,由 lsj 提供的方法,当前已在 1000 多万台设备上稳定运行超过三年时间,只有很少的电脑才偶尔出现任务栏不消失的情况

dotnet C# 创建 X11 应用时设置窗口背景颜色

本文将告诉大家如何在 X11 里面创建一个窗口时,设置窗口的背景颜色

dotnet X11 设置窗口鼠标触摸命中穿透

本文记录如何在 X11 应用里面,使用 XShapeCombineRegion 方法配置一个 X11 窗口支持和 Win32 窗口一样的命中测试穿透功能,即对应 Win32 的 WS_EX_TRANSPARENT 的鼠标、触摸等的点击等动作的穿透功能,可以实现在窗口中挖空一块范围直接穿透到后面的窗口

Xamarin 解决创建空白项目编译提示 linking references 找不到资源

在新建一个 Xamarin 应用,编译时提示了 linking references 和一些诡异的文件无法访问,原因是文件路径问题和 NuGet 还原问题

探索 dotnet core 为何在 Windows7 系统需要补丁的原因

在一些 Windows 7 系统上,根据 dotnet 官方文档,需要安装上 KB2533623 补丁,才能运行 dotnet core 或 .NET 5 等应用。尽管非所有的设备都需要安装此,但这也让应用的分发不便,安装包上都需要带上补丁给用户安装。此补丁同时也要求安装完成之后重启系统,这对用户端来说,也是较不方便。本文来聊聊为什么 dotnet core 一系的框架依赖于此补丁

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

本文收集 Office 解析相关博客

dotnet OpenXML 在 PPTX 表格单元格加上 VerticalMerge 或 HorizontalMerge 将导致 WPS 丢失文本

本文记录 WPS 的一个已知问题,如果在表格的单元格里面配置了 VerticalMerge 或 HorizontalMerge 为 false 值时,则在此单元格内的文本将被丢失。此行为与 Office 的 PowerPoint 不同,预计是 WPS 的坑

学习 Avalonia 框架笔记 设置 X11 窗口从最小化状态还原为正常状态

本文记录在 dotnet 里面如何设置 X11 窗口从最小化状态还原为正常状态

在 UOS 统信安装 dotnet sdk 失败 提示 failed the verification

在 UOS 统信安装 dotnet sdk 失败 提示 You cannot install ‘/home/lindexi/packages-microsoft-prod.deb’ that failed the verification, please go to Security Center - Security Tools - Application Security to adjust

制作一个能构建 dotnet AOT 的 gitlab runner 的 Debian docker 镜像

我的需求是需要有一个能够构建出 dotnet 的 AOT 包的环境,要求这个环境能解决 glibc 兼容依赖的问题,能打出来 x64 和 arm64 的 AOT 的包,且能够运行 gitlab runner 对接自动构建

在 windows 上运行的 podman 默认的挂载相对路径是什么

我在 windows 运行 podman 当成 docker 的代替品,从网上抄了 ollama 的部署命令,发现里面存在一个相对路径的挂载文件夹。我期望拿到 ollama 的下载内容,需要寻找到 podman 默认的挂载路径,但在网上找了一圈,可能是我的关键词问题,没有找到,于是记录本文期望能帮到大家

记微信截图导致 WPF 应用卡住 窗口无法激活问题

本文记录一位用户和我反馈的微信截图开启之后 WPF 应用就会卡住的问题,此时的行为就是任何程序的窗口都无法被激活,只有从任务管理器干掉 WPF 应用的进程才能恢复

记 dotnet 8.0.4 修复的 WPF 的触摸模块安全问题

本文记录 dotnet 8.0.4 版本修复的 WPF 的触摸模块安全问题,此问题影响所有的 .NET 版本,修复方法是更新 SDK 和运行时

学习 Avalonia 框架笔记 如何创建一个全屏置顶的 X11 应用窗口

本文记录我从 Avalonia 框架里面学到如何创建一个全屏置顶的 X11 应用窗口的方法

学习 CPF 框架笔记 了解 X11 绘制图片方法

本文记录我学习 CPF 框架的笔记,本文将记录我从 CPF 框架里面学习到的如何 X11 绘制图片的方法

学习 CPF 框架笔记 了解 X11 窗口和消息基础知识

本文记录我学习 CPF 框架的笔记,这是我从 CPF 框架里面学习到的 X11 的窗口和消息基础知识。本文将告诉大家如何创建一个 X11 简单窗口,支持在这个窗口上用鼠标画出简单的内容

记 Intel 的 31.0.101.5186 版本驱动带崩 WPF 程序

本文记录一个 Intel 显卡驱动问题,暂时只在 Intel UHD Graphics 770 显卡带 31.0.101.5186 版本的显卡驱动时,才概率复现问题

修复 Debian 安装 dotnet 失败 depends on ca-certificates

本文记录我在 Debian 安装 dotnet 失败,报错信息是 packages-microsoft-prod depends on ca-certificates; however: Package ca-certificates is not installed.

分享一个在 dotnet 里使用 D2D 配合 AOT 开发小而美的应用开发经验

本文将分享我在 dotnet 里面使用 Direct2D 配合 AOT 开发一个简单的测试应用的经验。这是我用不到 370 行代码,从零开始控制台创建 Win32 窗口,再挂上交换链,在窗口上使用 D2D 绘制界面内容,最后使用 AOT 方式发布的测试应用。成品文件体积不超过 10MB 且运行内存稳定在 60MB 以内,满帧率运行但 CPU 近乎不动

将 Source Generator 生成的源代码保存到本地文件

默认的源代码生成器所生成的代码都是没有直接存放到项目文件夹里面的,不受源代码管理工具管理,对使用方的开发者来说很难直接阅读或查找到 Source Generator 生成的源代码。本文将和大家介绍如何使用 EmitCompilerGeneratedFiles 属性配置将生成的代码保存到本地文件

使用 ForAttributeWithMetadataName 提高 IIncrementalGenerator 增量 Source Generator 源代码生成开发效率和性能

本文将告诉大家如何使用 ForAttributeWithMetadataName 方法用来提高 IIncrementalGenerator 增量 Source Generator 源代码生成的开发效率以及提高源代码生成器的运行效率

为 IIncrementalGenerator 增量 Source Generator 源代码生成项目添加单元测试

本文属于 IIncrementalGenerator 增量 Source Generator 源代码生成入门系列博客,本文将和大家介绍如何为源代码生成项目添加单元测试

从 Uno Platform 4 更新 Uno Platform 5 的迁移方法

本文记录我的一个小项目从 Uno Platform 4 更新 Uno Platform 5 的一些变更和迁移方法,由于项目太小,可能踩到的坑不多

一步步教你在 Windows 上构建 dotnet 系应用的 UOS 软件安装包

本文将详细指导大家如何逐步为 dotnet 系列应用创建满足 UOS 统信系统软件安装包的要求。在这里,我们所说的 dotnet 系列应用是指那些能够在 Linux 平台上构建 UI 框架的应用,包括但不限于 CPF 应用、UNO 应用、Avalonia 应用等

推荐一个使用 HardLink 硬链接减少重复文件占用磁盘空间的工具

在 NTFS 文件系统里面,咱可以使用 HardLink 硬链接的方式,将多个重复的文件链接到磁盘的同一份记录里面,从而减少在磁盘里面对重复文件存储多份记录,减少磁盘空间的占用。本文将和大家推荐我所做的基于 HardLink 硬链接减少重复文件占用磁盘空间的工具