lindexi

林德熙 - Windows 10 App Developer

林德熙

C# dotnet 使用 OpenXml 解析 PPT 元素的坐标和宽度高度

在阅读本文之前,我期望你能了解基础的 PPT 解析内容,或看我的入门级博客。本文将告诉大家如何从 PPT 里面解析出通用元素的 x 和 y 的值,以及元素的宽度和高度的值

C# dontet Office Open XML Unit Converter

Here is my code to conver between OpenXML units.

dotnet 基于 debian 创建一个 docker 的 sdk 镜像

我不能用官方的镜像,因为我需要在小伙伴构建的 debian 镜像上面安装 dotnet sdk 用来做构建,其实在 docker 里面需要找到一个个文件,然后复制代码

dotnet 用 NuGet 将自己的工具作为 dotnet tool 分发

我写了一个有趣的工具,我如何将这个工具给到小伙伴予力众生呢?只需要设定这个工具是 dotnet tool 工具就可以通过 NuGet 分发出去啦。几乎所有的 dotnet 开发者都能用上 NuGet 服务,也就是此工具可以被几乎所有的 dotnet 开发者下载使用。那么制作难度有多大呢?基本上有一个现成的项目前提下,只需两句代码,一句命令行,就能完成制作

dotnet tool 安装失败因为对应的库不仅包含工具

在开发 dotnet tool 时,我将规范编码的库作为 dotnet tool 发布,但是在发布的时候本地进行安装提示DotnetToolReference 项目类型仅可包含 DotnetTool 类 型的引用

dotnet 通过 dotnetCampus.YamlToCsharp 将 YAML 多语言文件构建为代码

我在团队内的几乎所有 dotnet 项目,包括 UWP 和 WPF 桌面端以及 Xamarin 移动端和 ASP.NET Core 后端等需要用到多语言的项目,我的多语言都是通过 YAML 写的,这样相对来说在项目比较小的时候维护方便。但是 YAML 写的文件要读取需要用到 YAML 解析等,这部分的解析速度不够快,于是我就写了一个工具,用于在软件构建的时候自动将 YAML 多语言文件构建为代码。这样不仅能提升软件的执行速度,还能减少软件发布时需要带出去 YAML 解析库

希沃白板如何解决手机端播放课件内视频出现黑屏闪退

使用希沃白板的手机端或微信小程序端播放视频时,会受到手机和微信浏览器的限制,能播放的视频格式有限,请在制作课件时转换好视频格式才进行直播等

应用商店的战略地位

应用商店在各大系统和平台上基本都有,最成功的是安卓和 ios 的应用商店。但现在应该需要加上微信了,在我看微信的小程序其实就是应用商店。微信其实算 os 了,微信提供了入口和流量,用户需要功能,用户进入应用商店下载安装应用。而真正的 os 本身就带有自己的应用商店,但为什么我认为这些应用商店没有真正落地,战略意义上不如微信

如何让软件以 System 权限运行

本文只是告诉大家调试 System 运行软件时可以如何快速让一个应用以 System 权限运行。使用 PsExec 可以让软件以 System 账户运行

dotnet serve 一句话开启文件服务器 通过 HTTP 将文件共享给其他设备

在当前的 IT 领域,我推荐每个开发设备都应该安装 dotnet 这个工具,在 dotnet 这个工具上有大量开发者提供了无数好用的工具。本文要告诉小伙伴的工具是 natemcmaster 大佬提供了 serve 工具,可以用来开启本地文件服务器,使用非常简单。这个方案适合在 Windows 系统和 Linux 系统和 MAC 上使用,发布的 HTTP 服务可以在任何能访问到的设备上使用

dotnet 修复 C# 8.0 语法编译失败

在使用 using 等新语法时,在 VisualStudio 2019 会自动判断框架版本,如在 net 45 就不会自动使用最新版本的语法,需要修改项目文件

asp dotnet core 提示 Cannot access a disposed object 解决方法

我在写一个简单的文件服务器,想要用来做客户端下载器的测试服务器,但是返回的方法提示 ObjectDisposedException: Cannot access a disposed object. Object name: ‘Cannot access a closed file.’ 原因是我的文件被释放

dotnet 用 gcdump 调试应用程序内存占用

在 Linux 等系统下,没有和 Windows 下这么好的 VisualStudio 支持。在客户端的环境,也不太好在用户端安装一个 VisualStudio 调试。在遇到需要在服务器端或客户端调试应用程序的内存占用时,可以尝试使用 dotnet 的 gcdump 工具进行调试,这个工具使用十分简单,功能也很强大

dotnet 进行二进制差分压缩文件

我需要对一个文件做二进制差分压缩,我有一个文件的起始点,在之后的每次更改我都记录文件的二进制的差分,这样就可以通过起始点和差分文件计算修改后的文件。通过二进制差分可以用来提高文件保存磁盘读写速度,也可以减少软件自动更新需要的文件大小

dotnet 单元测试注入文件读写

在进行文件读写时,如果进行单元测试,是需要很多设计,因为本地的文件可能因为单元测试之间的占用,以及还原数据,会影响业务。本文告诉大家使用注入的方式,让文件读写一个抽象的对象

WPF 从 dotnet core 3 到 dotnet 5 的变更

本文收藏我所了解的从 dotnet core 3 到 2020.11.10 发布的 dotnet 5 的 WPF 的变更

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

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

dotnet 日志上报的 TracerId 和 SessionId 的意义

在做日志库设计的时候,我会特别考虑日志里面需要带上时间和 TracerId 和 SessionId 两个属性,本文告诉大家带上这两个属性的意义和优势

Roslyn 解决找不到 SolutionDir 属性

在旧版本的 csproj 格式也就是 Franken-proj 格式,可以使用 SolutionDir 拿到当前sln文件所在的文件夹,但是在 SDK Style 格式的项目文件,是拿不到这个属性的,本文告诉大家如何做到兼容之前的逻辑

win10 uwp 不显示 SplashScreen 欢迎界面的方法

在 UWP 的应用,欢迎页面 SplashScreen 是用户第一个看到的界面,这个界面是由 ApplicationFrameHost 读取 UWP 配置的图片显示出来的,因此 UWP 才能做到点击应用瞬间启动

Roslyn 读取 PackageReference 的版本号和内容

在写 msbuild 的预编译逻辑,如果想要拿到项目安装的 NuGet 库和版本,可以通过获取 PackageReference 的方法获取

WPF 将 docx 的 Word 文件转换为 FlowDocument 显示

本文告诉大家如何将 docx 的 Word 文档在 WPF 中显示内容

WPF SharpDx 性能优化方法

本文记录一些通用的 SharpDx 的性能优化方法

Roslyn 打包 NuGet 包添加改动日志

默认的 NuGet 包支持在 releaseNotes 中添加更改日志,用户可以通过更改日志了解各个版本更新的内容。在 SDK Style 格式的 csproj 文件,可以读取本地的文本文件的内容作为 NuGet 包的改动日志

dotnet OpenXML 文本 Text Line Break 的作用

本文主要和小伙伴聊 a:br 这个标记的作用

dotnet OpenXML 文本字体的选择规则

在 Office 的文本排版里面,会根据字符选择使用哪个字体插槽。也就是实际上在 Office 里面可以在一个文本段里面指定多个字体,会根据实际的字符使用不同的字体

WPF 如何给 Grid 的某一行添加背景色

其实在 WPF 里面是不存在单独设置 Grid 的某一行的配色,但是想要达到这个视觉效果,可以通过 Border 配合做到

WPF HandyControl 已支持给任意控件通过按下移动抬起封装点击事件

著名的 HandyControl 已经支持给任意控件通过按下移动抬起事件,封装点击事件

UNO UnoConf 2020 在线会议 了解全平台新开发框架 零距离接触官方开发者

作为新一代的全平台开发框架 UNO 将在 2020 的 8 月 13 日进行线上举行 UnoConf 2020 在线会议,所有小伙伴都可以免费参加

VisualStudio 解决首次调试 docker 的 vs2017u5 exists, deleting 太慢问题

首次调试需要下载一些有趣的内容用于辅助调试,这部分内容大概有 100 多 M 在 VS 里面需要在半天。本文告诉大家如何在外面使用其他强大的下载工具下载完成之后复制回去

dotnet 使用完全对象引用相等判断

默认在列表以及字典哈希这些都会先看对象是否有自己实现的等于判断,如果有就调用对象的。因此对象可以做到两个不同的对象返回相等。而如果需要判断对象引用相等,也就是只有相同的对象才返回相等,此时需要用到 ReferenceEquals 方法。这个判断方法是最快的判断相等的方法,只有在传入的两个参数是相同的对象的时候才会返回 true 的值

WPF 两个 Topmost 的窗口如何设置谁在最上方

我需要有两个层级最高的窗口,但是要求某个窗口在另一个的上方,同时这两个窗口在所有其他的应用程序窗口的上方

C# dotnet 提示找不到 CompositionContainer 类的解决方法

在构建提示 Error CS0012 和 Error CS0246 说找不到 CompositionContainer 类,原因是没有引用 System.ComponentModel.Composition 库

Unity3D 2019 设置的 Playmode tint 有何作用

在 Unity3D 编辑器点击运行的时候,此时对整个面板修改的值仅在本次运行生效,当运行结束之后就会回到原来的值。因此为了避免调了半天实际上是在运行模式调的值,咱可以修改 Unity3D 编辑器的界面,让咱可以知道当前是 Unity3D 运行模式

Unity3d 2019.3 通过 Ctrl 键让移动是固定步距

默认在 Unity3d 通过 w 的移动的时候,是根据鼠标的移动距离移动物体,此时做对齐就不好玩了。通过按下 ctrl 键盘,然后再拖动物体移动,此时就可以设置移动是固定的步频