lindexi

好多时间打出来代码没有bug
私信 关注
lindexi_gd
码龄6年

我是微软Windows应用开发方向的最具价值专家,欢迎访问我博客blog.lindexi.com里面有大量WPF和UWP博客

  • 1,947,797
    被访问量
  • 1,833
    原创文章
  • 740
    作者排名
  • 2,310
    粉丝数量
  • 毕业院校 广东工业大学
  • 于 2015-02-18 加入CSDN
获得成就
  • 博客专家认证
  • 获得1,111次点赞
  • 内容获得647次评论
  • 获得821次收藏
  • GitHub 获得166Stars
荣誉勋章
兴趣领域
  • #后端
    #c#/.net/asp
  • #算法
TA的专栏
  • dotnetcore
    91篇
  • UWP
    178篇
  • UWP 入门
    70篇
  • win10 uwp 控件入门
    29篇
  • UWP 应用开发
    39篇
  • UWP控件
    13篇
  • win2d
    21篇
  • WPF
    173篇
  • WPF 开发
    42篇
  • WPF 底层渲染
    16篇
  • SharpDX
    10篇
  • WPF源代码
    12篇
  • c#
    396篇
  • dotnetcore
    29篇
  • dotnet 设计规范
    5篇
  • vs
    32篇
  • openxml
    26篇
  • git
    22篇
  • 数学
    3篇
  • xaml
    95篇
  • Roslyn
    24篇
  • DevOps
    20篇
林德熙

博客已迁移到 https://blog.lindexi.com 在 csdn 博客图片丢失不再处理


  • https://blog.lindexi.com
  • https://blog.lindexi.com
  • https://blog.lindexi.com
  • https://blog.lindexi.com
  • https://github.com/lindexi
  • http://lindexi.gitee.io
  • https://blog.lindexi.com
  • https://blog.lindexi.com
  • https://blog.lindexi.com
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

创建CBB心得

本文来和大家分享制作 CBB 公共组件的一些心得在创建 CBB 的时候的两个核心问题是:让开发者开发的开森;让使用方使用的开森。前者就是本文的讨论内容,后者基本都是靠 API 设计让开发者开发得开森,就涉及到开发策略的不同在创建 CBB 的时候我尝试有两个不同的策略,本文将和大家讨论使用这两个不同的策略在开发效率以及 CBB 推动上的不同差别下面先来和大家聊聊这两个不同的策略第一个策...
原创
28阅读
0评论
0点赞
发布博客于 8 天前

dotnet tool 自动找到项目里面重复的 NuGet 依赖项

使用新的 SDK 风格的 csproj 的时候,允许 NuGet 包进行依赖传递。意思是如果我 A 项目安装了库 L 那么如果有 B 项目引用 A 项目,那么自动 B 项目也就安装了库 L 而不需要项目 B 再次手动安装。也就是如果此时的 B 项目里面也加上了 L 库的安装,那么这个安装就是多余的。本文安利大家一个工具,可以自动了解有哪些项目的哪些库是多余安装的,通过依赖传递就能安装上,不需要手动安装,可以删除
原创
25阅读
0评论
0点赞
发布博客于 28 天前

dotnet OpenXML 让 PathLst 自定义形状转 SVG 路径格式的 Geometry 内容

在 Office 文档里面,可以使用自己定制的自绘制形状,自己绘制的内容将会存放为 pathLst 也就是 List of Shape Paths 内容到文档里面。本文将告诉大家如何将 PathLst 自定义形状转换为标准的 SVG 路径,以支持在 WPF 或 UWP 中的 Path 元素作为 Geometry 显示
原创
20阅读
0评论
0点赞
发布博客于 29 天前

dotnet OpenXML SDK 形状的 rect Shape Text Rectangle 属性对文本框的坐标影响

在 Office 里面,对于形状,可以通过 a:rect 指定文本框的坐标
原创
19阅读
0评论
0点赞
发布博客于 29 天前

WPF 不禁用实时触摸而收到 WM_Touch 触摸消息方法

在 WPF 中,触摸默认通过 RealTimeStylus 实时触摸进来,根据官方文档,这个机制将会和 WM_Touch 触摸消息在同一个 HWND 是互斥的。而在 WPF 中按照机制,在没有禁用实时触摸下是不支持在窗口内收到 WM_Touch 触摸消息。因此想要在不禁用 WPF 实时触摸的情况下,获取 WM_Touch 触摸消息的一个方法是通过 WinForms 窗口来获取在不禁用 WP...
原创
24阅读
0评论
0点赞
发布博客于 29 天前

dotnet OpenXML 修复 Office 文档里面的百分比内容包含百分号

我在解析一个 PPT 文档的时候,发现了这个 PPT 文档的背景色的透明度百分比的字符串里面包含了百分号,而不是一个 OpenXml 里面的百分比单位
原创
14阅读
0评论
0点赞
发布博客于 1 月前

dotnet core 和 dotnet Framework 启动可执行文件的差别

在 Windows 下,使用 .NET Framework 构建出来的应用,可以只有一个可执行文件,在可执行文件里面包含了 IL 代码。使用 .NET Core 构建出来的应用,将会包含一个 Exe 可执行文件,和对应的 Dll 文件,而 IL 代码将放在 Dll 文件里面。那么使用 .NET Framework 和使用 .NET Core 所输出的 Exe 可执行文件有什么差别,本文将从文件格式以及启动过程两个方面给大家聊聊这两个的不同
原创
32阅读
0评论
0点赞
发布博客于 1 月前

dotnet 读 WPF 源代码笔记 为什么默认的笔迹触摸点的压感是 0.5 的值

本文是我在读 WPF 源代码做的笔记
原创
41阅读
0评论
0点赞
发布博客于 2 月前

dotnet 读 WPF 源代码笔记 Stroke 类可能存在的内存泄露

在 WPF 中,使用 Stroke 类时,可能会出现内存泄露,原因是 DrawingAttributes 的事件被监听没有释放。本文将从源代码的角度告诉大家这个内存泄露问题和如何解决
原创
47阅读
0评论
0点赞
发布博客于 2 月前

dotnet C# 将 Byte 二进制数组使用不安全代码快速转换为 int 或结构体数组

我在写一个有趣的 WPF 应用,我会不断收到从硬件发过来的数据,这些数据被使用 Byte[] 数组进行传输。我想要使用最快的方法转换为我的 int 数组或者转换为结构体数组,此时可以使用不安全代码的方式转换
原创
39阅读
0评论
1点赞
发布博客于 2 月前

dotnet 5 静态字段和属性的反射获取 没有想象中那么伤性能

在最近在做 WPF 框架开发的时候,看到了在 WPF 的 StaticExtension 里面,有部分逻辑采用了反射的方法去获取静态字段和静态属性。此时我第一个反应就是这部分逻辑的性能有锅,于是尝试了进行加上缓存来优化。但是在使用了 Benchmark 进行性能测试的时候发现了,其实加上了缓存的性能反而更差,也就是说在 dotnet 5 里面的反射获取静态字段和属性的性能没有想象的伤性能
原创
89阅读
0评论
0点赞
发布博客于 2 月前

升级到 dotnet core 之后 HandleProcessCorruptedStateExceptions 无法接住异常

这是 dotnet core 的破坏性改动之一,在 dotnet framework 里面,可以使用 HandleProcessCorruptedStateExceptionsAttribute 接住非托管层抛出的异常,如 C++ 异常等。但是这个功能在 dotnet core 下存在行为的变更,从 .NET Core 1.0 开始,损坏进程状态异常无法由托管代码进行处理。 公共语言运行时不会将损坏进程状态异常传递给托管代码
原创
40阅读
0评论
0点赞
发布博客于 2 月前

ASP.NET Core 因为 Nginx 配置 Connection 为 Upgrade 导致 Kestrel 返回 400 错误

我今天遇到了一个坑,我的服务器在经过了 Nginx 之后,发送的 POST 请求,如果请求里面有 Body 内容,那么 Kestrel 将会返回 400 错误,同时也不会经过任何的中间件
原创
73阅读
0评论
0点赞
发布博客于 2 月前

dotnet 读 WPF 源代码笔记 XAML 创建对象的方法

在 WPF 中,在 XAML 里面定义的对象的创建,实际上不是完全通过反射来进行创建的,在WPF框架里面,有进行了一系列的优化
原创
34阅读
0评论
0点赞
发布博客于 2 月前

PowerShell 实现 curl 的用户名和密码逻辑

在使用 curl 时,可以采用 -u 加上用户名和密码,这个对应在 PowerShell 也就是不到 10 句话的事情
原创
30阅读
0评论
0点赞
发布博客于 2 月前

C# dotnet 编写 curl 的用户名和密码逻辑

在使用 curl 时,可以采用 -u 加上用户名和密码,这个对应在 C# 里面也是两句话的事情。只是在 curl 里面封装好了,我通过工具人协助解决,于是就在这里记录一下
原创
31阅读
0评论
0点赞
发布博客于 2 月前

dotnet 自动迁移 VS 2017 以前的 csproj 转为 dotnet core 的 SDK Style 风格工具

本文来安利大家一个特别好用的工具,可以自动将 VisualStudio 2017 以前版本创建的 Franken-proj 格式 的 csproj 项目文件转换为 dotnet core 的 SDK Style 风格的csproj 项目文件的工具
原创
29阅读
0评论
0点赞
发布博客于 2 月前

dotnet 单元测试 Mock 让一个对象继承多个接口

在使用 Mock 的时候,可以设置一个 Mock 的对象继承多个接口,而不需要自己定义一个接口去继承其他的多个接口
原创
25阅读
0评论
0点赞
发布博客于 2 月前

WPF 框架开发 更改 API 之后让 CI 重新创建 API 兼容检查基准

本文是记录在开发 WPF 框架遇到的问题。在 WPF 框架里面,限制了 API 的变更,所有关于 API 的变动都会触发 API 兼容检查。只有在明确此 API 变更是合理的之后,才能被接受更改。而此兼容判断将会让一些本地构建失败,本文将告诉大家如何使用官方的方法重新创建 API 基准,让本地构建通过
原创
26阅读
0评论
0点赞
发布博客于 2 月前

WPF 框架开发 加入 InternalsVisibleToAttribute 特性让其他程序集可以访问 internal 权限成员

在 WPF 框架开发中,其实很少有开发者有足够的勇气去更改现有的框架逻辑,因为 WPF 的功能十分庞大,很难测试全。更多的开发都是加功能以及开放已有功能。整个 WPF 框架的大体设计是十分好的,可以在框架里面遵循对修改关闭的原则,定制化更多的是做注入,调用 internal 权限成员本文告诉大家如何给 WPF 框架加入 InternalsVisibleToAttribute 特性让其他程序集可以访问 internal 权限成员如果我不新加入一个程序集,而是在原有的程序集开发,加上新功能,是否可行
原创
21阅读
0评论
0点赞
发布博客于 2 月前

WPF 框架开发 WPF 的构建在哪使用到 Perl 工具

在构建 WPF 开源仓库的时候,需要先搭建 Perl 环境,此时大家是否想了解在 WPF 构建的哪里用到 Perl 工具在完全开源的 WPF 仓库里面,其实可以看到很多 Perl 的影子,大部分都是用来做构建的脚本,小部分是在做我也看不懂的逻辑做构建脚本的包括了生成一些代码,如 GenerateAvTraceMessages 这个构建步骤,代码定义如下<Project>...
原创
35阅读
0评论
0点赞
发布博客于 2 月前

C# 从零开始写 SharpDx 应用 禁止 Alt + Enter 进入全屏

有小伙伴给我报了一个坑,那就是使用我的博客写的方法,在按下 ALT+ENTER 键时,将会让屏幕黑屏。其实原因就是默认的 DX 关联了 ALT+ENTER 快捷键,进入了全屏。本文来告诉大家如何解决这里使用 Alt + Enter 键进入全屏,其实进入的是独占的全屏,和我上次告诉大家的使用以下几篇博客的方法不同C# 纯控制台创建一个全屏窗口WPF 全屏透明窗口但是和 Sharp...
原创
31阅读
0评论
0点赞
发布博客于 2 月前

C# 从零开始写 SharpDx 应用 从 D3DDevice 获取 DXGIDevice 方法

本文将告诉大家在拿到了 D3D11 的 Device 也就是 D3DDevice 之后,如何去获取 DXGI.Device 以及 DXGI.Factory 的方法本文是 SharpDX 系列博客,更多博客请点击SharpDX 系列在 C# 从零开始写 SharpDx 应用 初始化dx修改颜色 这篇博客完成了基础的初始化而接下来如何根据之前的代码,也就是如何根据上一篇博客创建的 D3D...
原创
46阅读
0评论
0点赞
发布博客于 2 月前

C# 从零开始写 SharpDx 应用 聊聊功能等级

本文将和大家聊聊 DirectX 里面的功能等级在 SharpDx 的使用方法本文是 SharpDX 系列博客,更多博客请点击SharpDX 系列在C# 控制台创建 Sharpdx 窗口已经创建了一个窗口,现在需要在这个窗口初始化。因为是从零开始写,所以需要非常多细节,我觉得一篇文章是很难全部告诉大家,所以分为了系列的文章。从零开始写有利于大家了解一个渲染框架是如何做出来,并且从底层优...
原创
66阅读
2评论
0点赞
发布博客于 2 月前

[dotnet OpenXML 解析 WPS 不符合压缩文档规范的文档_lindexi-CSDN博客](https://lindexi.blog.csdn.net/article/details/112367354 )

 
发布Blink于 2 月前

[dotnet 读 WPF 源代码笔记 使用 Win32 方法修改窗口的坐标和大小对窗口依赖属性的影响..._lindexi-CSDN博客](https://lindexi.blog.csdn.net/article/details/112316846 )

 
发布Blink于 2 月前

dotnet OpenXML 解析 WPS 不符合压缩文档规范的文档

我遇到了有老师给我反馈说用我的小工具去辅助编辑课件的时候,遇到了他使用 WPS 制作的文档打开失败,原因是 WPS 制作的一些文档不符合压缩文档规范。而 Office 的基于 ECMA 376 的文档,都是使用标准的 ZIP 压缩规范的文档,因此对于这些不符合压缩文档规范的文件,将会解析失败如果使用了不符合压缩规范的文件,那么在使用 OpenXML SDK 读取的时候,将会在解压缩的时候炸掉...
原创
100阅读
0评论
0点赞
发布博客于 2 月前

dotnet 读 WPF 源代码笔记 使用 Win32 方法修改窗口的坐标和大小对窗口依赖属性的影响...

咱可以使用 Win32 的 SetWindowPos 修改窗口的坐标和大小,此时 WPF 的窗口的 Left 和 Top 和 Width 和 Height 依赖属性也会受到影响,本文将会告诉大家在啥时候会同步更改 WPF 依赖属性的值,而什么时候不会本文将会用到很多 Win32 方法,在 dotnet 基金会开源了对 win32 等的调用的封装库,请看 https://github.com...
原创
69阅读
0评论
0点赞
发布博客于 2 月前

Roslyn 判断当前使用 dotnet core 编译器进行编译

在写 msbuild 预编译或编译调度逻辑时,如何知道当前执行的编译器使用的是上古版本的 msbuild 还是用了 dotnet core 内核的 Roslyn 编译器?本文解决的问题是我期望在 Windows 系统使用 .NET Framework 版本的工具,而在非 Windows 系统上,使用 dotnet core 版本的工具。原因是 .NET Framework 在开发者设备上都会有,用...
原创
52阅读
0评论
0点赞
发布博客于 2 月前

dotnet OpenXML 修复 Office 文档里面包含格式不正确的 Uri 而无法解析

在使用 OpenXML 解析 Office 文档,无论是 PPT 还是 Word 还是 Excel 文档,都会使用标准方式解析。而此时的文档如果包含了错误的 Url 格式,例如不正确的邮件名的时候,将会在解析的时候出错。本文告诉大家如何修复这个问题尽管在 Office 2016 等版本,是可以在用户端制作出格式不正确的 Url 文档,如下图所示的内容此时在执行解析的时候,将会提示如下代...
原创
61阅读
0评论
0点赞
发布博客于 2 月前

WPF 制作支持点击穿透的高性能的透明背景异形窗口

默认的 WPF 的支持点击穿透的透明背景窗口,是通过 AllowsTransparency 实现的,但是此方法的性能比较低。本文来告诉大家一个高性能的方法,通过此方法制作出来的 WPF 窗口可以获取很高的性能,设置透明和设置窗口不透明之间几乎没有性能差别本文的方法由 少珺 小伙伴提供,我只是代为整理博客。本文的方法是基于 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome ...
原创
113阅读
0评论
0点赞
发布博客于 2 月前

win10 uwp 相机的分辨率设置方法

本文来告诉大家如何在 UWP 中修改相机的分辨率设置以及如何使用相机的功能在 UWP 中可以使用 WinRT 提供的 Win10 特有的 API 用来捕获摄像机的内容,支持很多格式的硬件解码,性能会比 Win32 好特别多。我使用了 UWP 版本的和 WPF 基于 DirectShow 的版本进行性能对比发现在使用 WPF 的版本,在我的设备上,大概 CPU 能到百分之十,而完全没有用到 ...
原创
82阅读
0评论
0点赞
发布博客于 2 月前

dotnet 集成测试 SmartSql 存在静态量导致多个主机启动提示 Alias 已存在

在集成测试中,我采用单个进程开启多个主机,可以理解为一个用例开启一次主机。但是在我使用到 SmartSql 的功能时,我发现在一个主机关闭之后,再开启下一个主机,会因为使用了相同的别名而提示 SmartSql.Alias:[SmartSql] already exist 错误。本文告诉大家如何解决此问题默认的 dotnet 应用在主机销毁的时候,都会销毁自己的资源。而 SmartSql 没有...
原创
35阅读
0评论
0点赞
发布博客于 2 月前

dotnet 读 WPF 源代码笔记 SafeMILHandleMemoryPressure 的作用

本文来告诉大家在 WPF 里面的 SafeMILHandleMemoryPressure 类的作用。这是一个 internal 不开放的类,是在 WPF 中和 Dx 等模块调用使用的,用途就是辅助 GC 统计当前内存情况,用来在内存不够的时候触发回收这个类放在 src\Microsoft.DotNet.Wpf\src\PresentationCore\System\Windows\Media...
原创
50阅读
0评论
0点赞
发布博客于 2 月前

WPF 最简方法使用自己定制的 WPF 框架

本文提供了一个最简的方法,可以用到整个 WPF 框架里面所有 internal 内部权限的成员的方法。这是一个我自己定制的 WPF 框架,可以在此基础上构建属于自己的定制化的 WPF 框架本文提供的方法适用于 .NET 5 和 x86 下,如果需要其他版本,请自行构建和使用,关于如何自行构建和定制化,请看 手把手教你构建 WPF 框架的私有版本现在的 WPF 属于 dotnet 基金会组织...
原创
77阅读
0评论
1点赞
发布博客于 2 月前

WPF 框架开发 加入 InternalsVisibleToAttribute 特性让其他程序集可以访问 internal 权限成员

在 WPF 框架开发中,其实很少有开发者有足够的勇气去更改现有的框架逻辑,因为 WPF 的功能十分庞大,很难测试全。更多的开发都是加功能以及开放已有功能。整个 WPF 框架的大体设计是十分好的,可以在框架里面遵循对修改关闭的原则,定制化更多的是做注入,调用 internal 权限成员 本文告诉大家如何给 WPF 框架加入 InternalsVisibleToAttribute 特性让其他程序集可以访问 internal 权限成员
原创
38阅读
0评论
0点赞
发布博客于 2 月前

CustomWPF 1.1.5.7z

自定义的 WPF 框架,可以使用所有的内部方法
7z
发布资源于 2 月前

dotnet C# 链表和字典的性能对比

本文来告诉大家我实际使用基准测试的在 .NET Core 3.1 的链表 LinkedList 和 Dictionary 字典的在元素增删的性能对比从算法分析上,其实字典和链表在时间上的性能是差不多的,甚至可以认为字典的速度会比链表更高。但是从空间上,如果一边增加元素一边删除元素那还是链表省空间。同时在字典空间满了之后,修改字典容量会比链表使用更多的时间以下是我用不够严谨的基准性能测试的数...
原创
64阅读
2评论
0点赞
发布博客于 2 月前

WPF 滑动修改音量控件

本文来分享一个简单的控件,滑动的时候显示音量控制条先来一张效果图这是一个特别简单的控件,代码放在github欢迎小伙伴访问我搭建了自己的博客 https://blog.lindexi.com/ 欢迎大家访问,里面有很多新的博客。只有在我看到博客写成熟之后才会放在csdn或博客园,但是一旦发布了就不再更新如果在博客看到有任何不懂的,欢迎交流,我搭建了 dotnet 职业技术学院 欢迎...
原创
88阅读
2评论
0点赞
发布博客于 2 月前

CustomWPF 1.1.3.7z

自定义的 WPF 框架,可以使用所有的内部方法
7z
发布资源于 2 月前

GitHub.VisualStudio-v2.11.106.vsix

这是 GitHub 在 VisualStudio 2019 的扩展
vsix
发布资源于 2 月前

sublime_merge_build_2039_x64_setup.exe

这是 SublimeText 公司推出的高性能 Git 合并库,十分好用 不需要注册也能使用,可以无限试用
exe
发布资源于 2 月前

MonoFramework-MDK-6.12.0.114.macos10.xamarin.universal.pkg

用于在 mac 下使用的 Mono 框架。是 Mac 版的 VS 的组件
pkg
发布资源于 2 月前

dotnet 读 WPF 源代码笔记 AppDomainShutdownMonitor 的设计

本文是我在读 WPF 源代码做的笔记。在 WPF 中的 AppDomainShutdownMonitor 类是一个不开放的类,这个类当前只是给 D3DImage 类使用。在 AppDomainShutdownMonitor 提供了在应用的进程或程序域关闭的时候,进行一次通知,当前是用来清理 D3DImage 类的资源在 WPF 中的 D3DImage 类是一个充满黑科技的类,这个类因为黑科...
原创
44阅读
0评论
0点赞
发布博客于 2 月前

dotnet 读 WPF 源代码笔记 启动欢迎界面 SplashScreen 的原理

本文是我在读 WPF 源代码做的笔记。在 WPF 中的启动界面,为了能让 WPF 的启动界面显示足够快,需要在应用的 WPF 主机还没有启动完成之前就显示出启动图,此时的启动图需要自己解析图片同时也需要自己创建显示窗口从 WPF 的 src\Microsoft.DotNet.Wpf\src\WindowsBase\System\Windows\SplashScreen.cs 文件可以看到 ...
原创
70阅读
0评论
0点赞
发布博客于 2 月前

dotnet 读 WPF 源代码笔记 WIC 多媒体图片处理通过 WindowsCodecs.dll 实现功能

本文是我在读 WPF 源代码做的笔记在 WPF 中,作为一个现代化的 UI 框架,自然有很多多媒体相关的事情需要处理,在 WPF 中有特别的一层是 WIC 层,这一层将包揽了大部分的多媒体图片的处理。如咱熟悉的 BitmapEncoder 类,里面就有大量调用到 WIC 的逻辑那么在 WPF 中说的 WIC 层是什么?通过 官方文档 可以了解到 WIC 就是 Windows Imagin...
原创
45阅读
0评论
0点赞
发布博客于 2 月前

dotnet 读 WPF 源代码笔记 wpfgfx_cor3.dll 是什么文件

本文是我在读 WPF 源代码做的笔记通过 WPF 的架构文档可以了解到在 WPF 里面的架构如下图这里有一层很重要的一层是 MilCore 层,这一层将会沟通 DirectX 和 托管层,而这一层在用户端的逻辑就放在 wpfgfx_cor3.dll 文件里面这个文件的命名定义可以从 src\Microsoft.DotNet.Wpf\src\Shared\RefAssemblyAttr...
原创
87阅读
0评论
0点赞
发布博客于 2 月前

dotnet 强签名下使用 InternalsVisibleToAttribute 给程序集加上友元

在 dotnet 里面,可以使用 InternalsVisibleToAttribute 特性,给程序集加上友元程序集,这样能让友元程序集访问到 internal 的程序。也就是说如果我有 A 和 B 两个程序集,我设置了 B 作为 A 的友元程序集 那么此时 B 程序集就能访问 A 程序集里面所有的 internal 成员。默认的友元设置只需要通过 InternalsVisibleToAttri...
原创
44阅读
2评论
0点赞
发布博客于 2 月前

dotnet OpenXML 解析 WPS 不规范的 PPT 文件的 cNvPr 重复 id 问题

在收到了反馈说有一份课件,打开解析就发现替换的元素不对,原因是这个课件里面的 Slide Master 里面存在一个元素的 id 和某个页面的元素 id 是相同的,这不符合 ECMA 376 的规范。通过读取文档的内容,发现这是 WPS 制作出来的 PPT 文件。本文做一个存档,用来告诉大家有这个坑在 Office 2016 和 Office 2019 的行为判断请看以下两篇博客dotne...
原创
56阅读
1评论
0点赞
发布博客于 2 月前

WPF 按钮 Button 的 IsEnabled 属性对 WindowChrome 的 IsHitTestVisibleInChrome 的影响

在 WPF 里面,默认标题栏的交互相对复杂,如按钮没有设置 WindowChrome.IsHitTestVisibleInChrome 属性为 True 那按钮是拿不到点击事件的。本文来告诉大家按钮 Button 的 IsEnabled 属性对 WindowChrome 的 IsHitTestVisibleInChrome 的影响在 WPF 中的默认交互是点击标题栏的时候,如果是双击标题栏,...
原创
69阅读
2评论
0点赞
发布博客于 2 月前

dotnet 部署 GitHub 的 Action Runner 制作自托管运行器

本文告诉大家如何在自己的 CI 服务器上部署一个私有的 GitHub Action Runner 用来执行 GitHub 上的仓库的构建安装为了作为一个 dotnet 的 GitHub Action Runner 的服务器,首先需要在自己的 CI 服务器上安装足够的负载。我下载了 VS 安装了所有能装的功能而 GitHub 的 Action Runner 运行器需要从 GitHub 仓库...
原创
49阅读
0评论
0点赞
发布博客于 2 月前

dotnet 5 破坏性改动 WPF 和 WinForms 的 OutputType 输出类型重定向为 WinExe 类型

官方团队为了防逗比,默认将 OutputType 输出类型重定向为 WinExe 类型,这样能解决很多新手遇到的 WPF 项目显示出黑框控制台界面问题。而对于一些老司机来说,这个特点反而有点迷,特别是在尝试打开控制台调试的时候在开始之前,先复习一下 OutputType 这个属性的作用,这个属性告诉了 SDK 程序集输出的文件是什么。可以选的值是 Library 类库和 Exe 控制台程序以...
原创
71阅读
0评论
0点赞
发布博客于 2 月前

dotnet 如何更改应用在任务管理器显示的进程名 AssemblyTitle 的值

我有一个应用,我期望他在任务管理器里面显示为 Doubi 这样大家就知道这是一个逗比进程。但是我更改了程序集名,也就是 exe 文件名都没有什么用,因为在任务管理器里面通过 AssemblyTitle 属性决定显示的进程名。本文来告诉大家如何更改 AssemblyTitle 的值在旧版本的 Franken-proj 格式的 csproj 格式里面,在项目都有一个 Properties\Ass...
原创
79阅读
0评论
0点赞
发布博客于 2 月前

dotnet core 应用是如何跑起来的 通过自己写一个 dotnet host 理解运行过程

在上一篇博客是使用官方提供的 AppHost 跑起来整个 dotnet 程序。本文告诉大家在 dotnet 程序运行到托管代码之前,所需要的 Native 部分的逻辑。包括如何寻找 dotnet 运行时,如何加载运行时和框架然后跑起来业务端的 dll 文件的逻辑在上一篇博客告诉大家在 dotnet 的 AppHost 是如何做的,详细请看 dotnet core 应用是如何跑起来的 通过Ap...
原创
113阅读
0评论
0点赞
发布博客于 2 月前

dotnet 使用 FileAccess 与 OpenOrCreate 对文件访问权限的影响

本文告诉大家在 dotnet 里面,客户端应用,如 WPF 应用对当前应用程序运行用户无写权限的文件进行访问的时候,调用 File.Open 方法的各个参数的影响在 File.Open 方法里面其实就是对 FileStream 创建的封装,在 FileStream 的构造函数有大量的参数,而对文件权限有影响的是 FileMode 和 FileAccess 和 FileShare 三个通过 ...
原创
95阅读
0评论
0点赞
发布博客于 2 月前

Xamarin iOS 部署应用提示 iOS code signing key 失败

在部署 iOS 应用的时候,如果是拉别人的代码,因为被使用了别人的签名,就会提示 Error: iOS code signing key ‘iPhone Developer: lindexi@icloud.com (F56JH45N57)’ not found in keychain. 部署失败。解决方法是替换为自己的账号原因就是在 csproj 上的 CodesignProvision 属性设置的是别人的签名,可以通过替换为自己的账号解决在 Xamarin 从零开始部署 iOS 上的 Walte
原创
98阅读
0评论
0点赞
发布博客于 3 月前

dotnet core 应用是如何跑起来的 通过AppHost理解运行过程

在 dotnet 的输出路径里面,可以看到有一个有趣的可执行文件,这个可执行文件是如何在框架发布和独立发布的时候,找到 dotnet 程序的运行时的,这个可执行文件里面包含了哪些内容在回答上面的问题之前,请大家尝试打开 C:\Program Files\dotnet\sdk\5.0.100\AppHostTemplate\ 这个文件夹。当然了,请将 dotnet 版本号修改为你本机的版本号...
原创
169阅读
0评论
0点赞
发布博客于 3 月前

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

我昨天将 Mac 构建机器也升级到了 dontet 5 最新版。但是在升级之后,所有的 Xamarin 项目都在 Mac 版本的 VisualStudio 构建不通过,提示 error MSB4186: 静态方法调用语法无效。解决方法就是将 VisualStudio 更新到最新版本在升级到 dotnet 5 之后,在 Mac 设备上使用 Mac 版本的 VisualStudio 构建 Xa...
原创
128阅读
0评论
0点赞
发布博客于 3 月前

dotnet 编译 Rolsyn 编译器

这是一个套娃,在编译 Rolsyn 编译器之前需要有 Rolsyn 编译器,用 Rolsyn 编译器来编译 Rolsyn 编译器。本文来告诉大家如何构建 Rolsyn 编译器,步骤特别少,很简单整个 Rolsyn 编译器的代码基本都是由 C# 和 VB 构成的,所有源代码都在 GitHub 上完全开源请看: https://github.com/dotnet/roslyn除了 Rolsy...
原创
93阅读
0评论
0点赞
发布博客于 3 月前

dotnet 如何在 dotnet test 单元测试控制台里输出日志内容

我在协助小伙伴调试一个只有在 GitHub 的 Action 自动测试时才会炸的问题,而我发现默认的控制台输出是不会在 GitHub 的 Action 显示的,换句话说,在使用 dotnet test 时,代码里面使用的控制台输出不会进行输出解决方法很简单,只需要在控制台输出的部分逻辑修改为 Console.WriteLine 而不是 Debug.WriteLine 方法然后在 dotn...
原创
114阅读
0评论
0点赞
发布博客于 3 月前

WPF 多指触摸拖拽窗口 拖动修改窗口坐标

在 WPF 中,如果是鼠标点击拖动窗口坐标,可以调用 Window 的 DragMove 方法,但是如果是触摸,就需要自己调用 Win32 的方法实现在 WPF 中,调用 Window 的 DragMove 方法要求鼠标的左键(主键)按下,否则将会抛出如下代码System.InvalidOperationException:“只能在按下主鼠标按钮时调用 DragMove。”或英文版的代...
原创
121阅读
0评论
0点赞
发布博客于 3 月前

WPF 源代码 资源字典 ResourceDictionary 设置 Source 属性的逻辑

本文来和大家聊聊在 WPF 里面在给 ResourceDictionary 设置 Source 属性时,在 WPF 框架里面做了哪些逻辑默认添加 Source 时都是指定 WPF 自身的 XAML 资源字典,用途就是指定 XAML 字典作为此控件的资源字典而默认的 XAML 资源字典使用 Page 形式进行构建,构建之后作为二进制的 Baml 文件被打入程序集中作为程序集资源,在 dot...
原创
107阅读
0评论
0点赞
发布博客于 3 月前

开源实战

本文记录我参与的开源项目dotnet runtimeAdd logger to cache entry to catch exception by lindexi · Pull Request #37292 · dotnet/runtimeUse Array.Empty in CompositeFileProvider by lindexi · Pull Request #38086...
原创
276阅读
0评论
0点赞
发布博客于 3 月前

WPF 设置资源字典多线程安全读写方法

在 WPF 中,使用 ResourceDictionary 本身不会受到创建线程同步影响,意味着可以在任意的线程创建 ResourceDictionary 资源字典,然后在任意线程使用。但是此时的读写需要有时间上的差距,否则将会多线程读写不安全。在 ResourceDictionary 有一个 CanBeAccessedAcrossThreads 属性用来决定在进行读写的时候是否加上锁,但这个属性...
原创
46阅读
0评论
0点赞
发布博客于 3 月前

XP 源代码 如何在清空回收站时修改回收站图标

本文来聊聊在 XP 系统里面,是如何在清空回收站的时候修改回收站图标的声明 我没有拿到微软泄露 XP 系统的源代码,以下逻辑都是我瞎说的,微软才不会写出如此逗比的代码在 bitbuck.c 文件里面有 SHUpdateRecycleBinIcon 的实际实现,而这个方法实际上只是调用了 UpdateIcon 方法而已。大概的代码如下STDAPI_(void) SHUpdateRecyc...
原创
62阅读
0评论
0点赞
发布博客于 3 月前

asp dotnet core 基于 TestServer 做集成测试

我有一个古老的 dotnet core 3.1 的 asp dotnet core 项目,现在我准备将他升级到 dotnet 5 了。但是我不想和博客园一样翻车,因此我需要做一点集成测试的辅助,尽管依然还是翻车了,但是我要学习博客园伟大的精神,将在这个项目里面所做的所有自动化测试项目的方法写下来在开始从 dotnet core 3.1 升级到 dotnet 5 之前,我先开始准备集成测试。...
原创
84阅读
0评论
0点赞
发布博客于 3 月前

WPF 设置元素为 Collapsed 是否会创建此元素

在 WPF 的 XAML 中,如果将某个元素初始的时候设置 Visibility 为 Collapsed 的值,那么意味着这个元素将不会参与布局,就和不存在是一样的。那么这个元素是否会被创建在内存中?是会创建的在 WPF 中,在 XAML 里面写的元素,无论 Visibility 设置为什么,都会在内存中创建这个元素对象测试方法是自己定义一个元素,然后在 XAML 里面写,如下面代码定义...
原创
58阅读
0评论
0点赞
发布博客于 3 月前

WPF 在后台代码定义 ResourceDictionary 资源字典

在 WPF 中的 ResourceDictionary 资源字典大部分都是在 XAML 里面定义的,但是在 C# 代码定义一个资源字典也是可行的,只是写起来有点诡异在 CSharp 后台代码里面给 WPF 定义资源字典需要重新创建一个类,让这个类继承 ResourceDictionary 如以下代码 public class Foo : ResourceDictionary ...
原创
186阅读
0评论
0点赞
发布博客于 3 月前

dotnet ValueTask 简单入门

通过 ValueTask 可以用来提升软件整体的性能,使用方法也非常简单,本文将带大家简单的入门使用这个 ValueTask 的功能为什么使用 ValueTask 可以用来提升软件整体的性能?回答这个文件的博客有很多,请看以下这几篇博客深入理解 ValueTask - 沉睡的木木夕 - 博客园如何使用 C# 中的 ValueTask - 技术译民 - 博客园简单的使用方法就是在方...
原创
67阅读
0评论
0点赞
发布博客于 3 月前

如何给 CI CD 服务器搭建上 .NET 5 构建和运行环境

在 2020.11.10 官方正式发布了 .NET 5 正式版。而我花了一周的时间进行踩坑和预研,本文将告诉大家如何在自动化服务器上搭建 dotnet 5 的构建和运行环境在上一篇博客里面,我因为 NuGet 版本的问题,不得在 2020.11.13 回滚了 CI 服务器。但是刚好就在那天,大法更新了 NuGet 到 5.8 的版本。按照我一个小伙伴的说法,全网首个支持 .NET 5 的 ...
原创
71阅读
0评论
0点赞
发布博客于 3 月前

dotnet 制作 docker 提示 Insufficient space in download directory 磁盘空间不足

随着 .NET 5 的发布,我在给团队内部打一个特殊的 .NET 5 的 docker image 过程,发现了提示 Insufficient space in download directory 磁盘空间不足在执行命令行时可以看到如下提示内容Step 3/7 : RUN yum update ---> Running in 5069e0aebc60Loaded plugin...
原创
56阅读
0评论
0点赞
发布博客于 3 月前

刚刚我从服务器回滚了 dotnet 5 的环境

今天是 2020.11.13 我在 CI 服务器上更新 dotnet 到 dotnet 5 以及 VS 到 16.8.1 最新版本,但是我在刚刚不得不回滚了环境…… 因为构建不通过当前已经踩坑完成,请看 如何给 CI CD 服务器搭建上 .NET 5 构建和运行环境现象使用经典的 NuGet 还原加上 msbuild 的构建,如以下代码将会构建失败nuget restoremsbu...
原创
41阅读
0评论
0点赞
发布博客于 3 月前

dotnet tool 判断博客文档链接是否可用的工具

本文来和大家安利一个好用的工具,通过这个工具可以找到自己博客文档里面,是否存在有链接已经失效了安装dotnet tool install -g Lindexi.Tool.CheckBlogUrlAvailable使用CheckBlogUrlAvailable [folder]调用此命令,将会找到当前文件夹内所有的 md 文档,读取里面的内容,找到里面的连接,尝试访问链接其中 ...
原创
15阅读
0评论
0点赞
发布博客于 3 月前

nuget 5.8.0.6930.exe

NuGet 5.8 is included in Visual Studio 16.8 and .NET 5.0 out of the box. You can also download NuGet 5.8 for Windows, macOS, and Linux as a standalone executable 这是支持 .NET 5 的 NuGet 5.8 版
exe
发布资源于 3 月前

WPF 从 dotnet core 3 到 dotnet 5 的变更

本文收藏我所了解的从 dotnet core 3 到 2020.11.10 发布的 dotnet 5 的 WPF 的变更修复坑应用资源的线程问题App resource threading issue by SamBent · Pull Request #3577 · dotnet/wpfDataGrid.Copy: fail silently if clipboard is loc...
原创
48阅读
0评论
0点赞
发布博客于 3 月前

dotnet 使用 Obsolete 特性标记成员过时保持库和框架的兼容性

在开发库以及框架的时候,持续维护会遇到兼容性的问题,如发现了旧版本有一些接口设计不合理,或者方法命名不符合逻辑等。此时如果直接更改原有的属性名或方法名甚至类名等,将会导致上层业务的开发者们在升级库之后构建不通过,因为缺少对应的方法。此时就需要上层业务的开发者们查阅文档才能了解如何应对升级之后带来的变动在 dotnet 里面,可以使用 Obsolete 这个编译器分析辅助特性,给某个成员,如...
原创
33阅读
0评论
0点赞
发布博客于 3 月前

WPF 调试因为对象不同而绑定失效问题

在 WPF 使用绑定的时候,发现绑定不上,也许是因为绑定的对象不是当前作用的对象的原因。也许是绑定错了对象,或者对象被变更了。本文来告诉大家这个调试思路和方法使用一个简单的例子来告诉大家,这样比较直观我有一个简单的应用,这个应用的字符串显示绑定了一个 ToggleButton 也就是下图的写着 点击 的按钮在 ToggleButton 的 IsChecked 变化的时候,将会自动更...
原创
31阅读
0评论
0点赞
发布博客于 3 月前

Xamarin 从零开始部署 iOS 上的 Walterlv.CloudKeyboard 应用

本文将告诉大家如何从零开始在 iOS 上部署 Walterlv.CloudKeyboard 应用。这个 Walterlv.CloudKeyboard 应用是一个云输入法应用,在 GitHub 完全开源,采用 Xamarin 开发,用途是让手机接收电脑端的打字输入的输入法。因为我没有在 iOS 上找到任何一款稍微能用的输入法,因此只能拜托太子帮我开发一款应用了。太子很给力,帮我开发完成了,但现在的问...
原创
20阅读
0评论
0点赞
发布博客于 3 月前

dotnet 更新本地所有 Git 仓库的工具

本文来安利大家一个我做的好用的工具,这个工具可以更新某个文件夹下所有 Git 仓库,通过调用命令行的 Git 命令实现更新。这是一个 dotnet tool 工具,所有代码在 GitHub 完全开源我会将一堆 Git 的代码仓库,我将这些代码仓库放在一个大文件夹里面,而我本地的网络比较渣,我期望有一个工具可以辅助我更新这些 Git 代码仓库我的代码仓库文件夹大概如下,其中 lindex...
原创
21阅读
0评论
0点赞
发布博客于 4 月前

WPF 从最底层源代码了解 AllowsTransparency 性能差的原因

当前的 WPF 的源代码完全开放,本文将从最底层的 WPF 代码告诉大家为什么设置了 AllowsTransparency 之后性能会变差,以及 WPF 透明的原理特别感谢 少珺 的研究,我只是将他告诉我的内容写出来,告诉大家本文将会告诉大家 AllowsTransparency 设置为 true 之后,为什么整体渲染性能降低,将会占用更多 CPU 资源。以及在 4k 下使用更多内存的...
原创
64阅读
0评论
0点赞
发布博客于 4 月前

上海展盟网络科技有限公司的 gamebox 组件注入进程导致软件崩溃

在某些用户的设备上,会发现自己的软件会在启动之后过一段时间就崩溃了,一个可能的原因是自己的软件被其他广告软件注入了,如 上海展盟网络科技有限公司的 gamebox 组件一个已知问题是海展盟网络科技有限公司的 gamebox 组件将会进行进程注入,在一些软件的进程上,会因为 gamebox_shell.dll 访问了不可访问的内存后,引发 C0000005 错误被系统强行结束因此如果软件崩...
原创
184阅读
0评论
0点赞
发布博客于 4 月前

dotnet OpenXML SDK 形状的翻转与旋转

在 OpenXML 的 PPT 元素,形状的翻转与旋转是有逻辑关系,本文来和大家聊聊形状的翻转和形状的旋转的关系本文来和小伙伴聊聊最复杂的 ConnectionShape 形状的方向,这个 ConnectionShape 如果是箭头,那么请问箭头方向被多少个属性影响?有很多个影响,最简单的就是 cx 和 cy 的影响。其次就是形状的旋转,而形状的翻转影响是形状本身先来聊聊 PPT 元素里...
原创
25阅读
0评论
0点赞
发布博客于 4 月前

win10 uwp 字符文本转语音声音文件方法

在 UWP 中,支持将传入的字符串文本内容转换为音频语音,可以将这个语音声音通过 MediaElement 播放,或者将这个音频保存到文件里面本文的方法是通过 SpeechSynthesizer 类提供的将 文本字符串 转换为 wav 的 Stream 对象实现的核心的转换字符文本作为音频 Stream 代码如下using (SpeechSynthesizer synthesizer ...
原创
42阅读
0评论
0点赞
发布博客于 4 月前

Xamarin iOS 部署项目提示 Failed to register bundle identifier 失败

这是我在开始部署其他小伙伴的 Xamarin 项目时,在 VS 上提示的失败如下: Failed to register bundle identifier: The app identifier "com.walterlv.CloudKeyboard" cannot be registered to your development team because it is not ...
原创
649阅读
0评论
0点赞
发布博客于 4 月前

Xamarin iOS 切换开发者账号之后的签名标识和预配配置文件更新方法

其实这一篇和 Xamarin 开发几乎没有关系,这是苹果开发的一个坑。在原有开发者账号下的设备上,切换为另一个开发者账号,此时的部署也许会找错 预配配置 文件和证书。苹果:渣渣开发者,这是特性在 XCode 的选项账户里面的 Download Manual Profiles 按钮里面,下载的证书文件放在 ~/Library/MobileDevice/Provisioning\ Profil...
原创
26阅读
0评论
0点赞
发布博客于 4 月前

Xamarin iOS 部署版本大于手机的系统版本

我觉得苹果肯定会坑我,如果我敢更新我的手机系统的话。苹果觉得像我这样的开发者就应该拖出去打靶,整个手机没几个应用是从应用商店下载的。但是作为开发者,我在使用 Xamarin 部署我的云输入法,在第一步创建的时候需要我使用 XCode 新建一个项目,而新建的项目默认都是需要使用更新版本的系统,此时部署将会失败。本文告诉大家一个简单的方法解决这个问题如我师傅在 使用 Xamarin 在 iOS...
原创
25阅读
0评论
0点赞
发布博客于 4 月前

WPF 简易手绘笔迹支持回放的方法

手绘笔迹实际上就是需要支持回放的,手绘笔迹指的是在应用程序里面支持回放出手绘出来的笔迹。本文来告诉大家一个简易的方法啥都不说,先来一张图在抬手的时候绘制出刚才所画的笔迹,做动画画出笔迹,就和手绘差不多的效果下面来告诉大家核心的原理在 WPF 中,可以使用一个叫路径动画的功能,通过这个功能可以传入一个 Path 路径就能动画出这个轨迹在 WPF 中,笔迹的底层绘制是使用 Geom...
原创
35阅读
0评论
0点赞
发布博客于 4 月前

Xamarin Forms 构建 WPF 版项目失败提示 XamlC error XFC0000 错误

在 Xamarin Forms 从 4.7 到 4.8.0.1560 版本,在 Xamarin Forms 构建 WPF 版项目也许会提示 XamlC error XFC0000 : Cannot resolve type "Application" 构建失败提示内容如下App.xaml : error : : XamlC error XFC0000 : Cannot ...
原创
54阅读
0评论
0点赞
发布博客于 4 月前

.NET 官方图标

在哪可以找到 dotnet 官方权威的图标?正统的 .NET 图标是哪个? 本文来回答大家这几个问题请到 dotnet/brand 品牌指导仓库里面获取最新的 logo 文件这个 https://github.com/dotnet/brand 仓库的用途是官方与 .NET 开发人员社区进行通信并建立一致的品牌标识。此存储库给是设计人员、编写人员和开发人员为 .NET 创建一致的品牌内容的...
原创
117阅读
0评论
1点赞
发布博客于 4 月前

WPF 手绘对称图形控件

本文来安利大家一个我刚做的控件,这个控件支持触摸下多指进行笔迹绘制,绘制过程中将会对称显示出水平和垂直翻转的笔迹。可以用来绘制对称图形。当然了,本文还会告诉大家这个控件是如何制作的啥都不用说,先来一张图我将这个控件在GitHub上完全开源,代码放在 https://github.com/lindexi/uwp虽然这是放在 UWP 仓库的控件,但现在只支持 WPF 框架下面来告诉大...
原创
32阅读
0评论
0点赞
发布博客于 4 月前

dotnet 在 GitHub 的 Action 上部署自动代码编码规范机器人

我们的项目中会包含有很多文件,但是可能我们没有注意到的,我们的文件的编码不一定是 UTF-8 编码,这就可能让构建出来的应用程序在别人电脑运行时出现乱码,或者别人拉下来代码,却发现代码里面的中文都是乱码。为了解决文件编码的问题,咱需要一个编码规范工具,本文将告诉大家在 GitHub 上仓库,可以利用 GitHub 的 Action 部署自动代码文件编码规范的机器人,这个机器人可以自动协助咱规范文件...
原创
34阅读
0评论
0点赞
发布博客于 4 月前

dotnet tool 文件编码规范命令行工具

在咱项目里面,大家是否有关注过文件的编码,一个文件是作为 Ascii 编码保存的,还是作为 GBK 编码保存的,还是 UTF8 编码保存的?不同的编码是否对应用有影响?其实是会有影响的,在 C# 里面的字符串常量等都会受到文件编码的影响。例如我的应用主输出是 UTF8 编码,此时我在二进制可执行文件里面保存的输出字符串的二进制是采用 GBK 编码的内容,在一些用户的设备上也许就会显示出乱码本文来...
原创
17阅读
0评论
0点赞
发布博客于 4 月前

dotnet OpenXML 幻灯片 PPTX 的 Slide Id 和页面序号的关系

在使用 OpenXML SDK 进行 Office 文档的解析时,对幻灯片 PPTX 文档的页面解析也许会遇到页面顺序的问题,本文告诉大家在 Office 文档里面页面的序号和顺序之间的关系以及如何读取页面序号在开始之前,我期望你是了解一些 PPT 解析的相关知识的,入门级博客请看 C# dotnet 使用 OpenXml 解析 PPT 文件更多博客请看 Office 使用 OpenXM...
原创
21阅读
0评论
0点赞
发布博客于 4 月前

dotnet 基于 dotnet format 的 GitHub Action 自动代码格式化机器人

是不是大家也会觉得代码审查里面审查代码格式化问题是无意义的,但是不审查又觉得过不去?是否有个专门的工具人,用来协助修复代码格式化的问题?本文来安利大家一个特别好用的方法,使用 dotnet 完全开源的专业格式化工具 dotnet format 配合 GitHub 的自动构建 Action 做的自动代码格式化机器人,这个机器人可以被指定到特定时机,如每天晚上或者每次代码合并等,进行代码格式化,格式化...
原创
22阅读
0评论
0点赞
发布博客于 4 月前

dotnet 让 C# 可以通过动态生成 HLSL 使用 DX12 的 GPU 并行计算库 ComputeSharp 的简介

本文来安利大家一个超强的库,这个库可以让你的 C# 代码利用上 GPU 显卡的性能,进行一些并行计算。这个库是基于 DirectX12GameEngine 的 ComputeSharp 库。在这个库里面将会动态生成 HLSL 代码,使用着色器的方式在 GPU 上跑起来这个 ComputeSharp 库在 GitHub 完全开源,请看 https://github.com/Sergio069...
原创
42阅读
0评论
0点赞
发布博客于 4 月前

dotnet 使用 Interlocked 实现一个无锁的快速无序仅写集合

在 dotnet 里面,可以使用 Interlocked 进行原子命令更改 int 等的值,利用这个特性可以在一个固定足够长长度的数组里面,让多线程无锁等待写入值。因为没有锁的存在,无法保证读取时的安全,因此这样的集合只能被设计为只写的集合,只有在业务上完成了所有的写之后,才能作为可读的集合取出来这是在 newbe 大佬的代码所看到的用法,这是他的一个实现 https://github.c...
原创
16阅读
0评论
0点赞
发布博客于 4 月前

读书笔记 dotnet 什么时候进行垃圾回收

是否有小伙伴好奇如果没有在代码调用垃圾回收,那么框架会在什么时候调用垃圾回收。本文是读还没出版的伟民哥翻译的 .NET内存管理宝典 - 提高代码质量、性能和可扩展性 这本书的笔记当前是 2020年9月 本文的知识最新就是当前的时间,因为 dotnet 的更新速度十分快,当前由 dotnet 基金会维护整套 dotnet 开源项目。从编译器到运行时全部都是开源的,采用最友好的 MIT 开源协...
原创
17阅读
0评论
0点赞
发布博客于 4 月前

dotnet 使用 SourceLink 将 NuGet 链接源代码到 GitHub 等仓库

在发布 CBB 作为 NuGet 包的时候,我期望开发者在使用我的库进行调试,可以自动链接代码到对应打包的 GitHub 上的代码,可以从本地拿到对应的源代码进行调试。这样的调试方式对于开源项目来说,将会很方便使用方法很简单,通过 SourceLink 就能做到。这个 SourceLink 是一系列的库,包含了给 Azure Devops 使用的和给 GitHub 使用的,给 Gitlab...
原创
45阅读
0评论
0点赞
发布博客于 4 月前

dotnet 构建 SourceRoot items must include at least one top-level item 失败

在使用 dotnet 构建的时候提示 error : SourceRoot items must include at least one top-level (not nested) item when DeterministicSourcePaths is true 构建失败我在库里使用了 SourceLink 这个库,用来关联代码,详细请看 dotnet 使用 SourceLink ...
原创
19阅读
0评论
0点赞
发布博客于 4 月前

WPF 已知问题 窗口在屏幕外创建将不会刷新渲染

本文告诉大家一个 WPF 的已知问题,如果窗口在创建的时候,设置在屏幕外,那这个窗口将不会进行实际的渲染,将这个窗口从屏幕外移到屏幕内的时候,将会出现窗口内容的一次闪烁。换句话说就是存在窗口内容的重渲染什么是窗口在屏幕外创建?简单说法就是窗口不在屏幕内,如窗口的 Top 或 Left 太大或太小等,如下面代码创建窗口,而我的屏幕没有那么大,因此窗口就显示在我的屏幕外 pri...
原创
23阅读
0评论
0点赞
发布博客于 4 月前