最近更新
dotnet 399
- WPF 像素着色器入门:使用 Shazzam Shader Editor 编写 HLSL 像素着色器代码 2023-05-22
- 如何更精准地设置 C# / .NET Core 项目的输出路径?(包括添加和删除各种前后缀) 2023-04-18
- 最简单的代码,让 WPF 支持响应式布局 2022-07-11
- MSBuild/Roslyn 和 NuGet 的 100 个坑 2022-07-11
- 使用 Roslyn 分析代码注释,给 TODO 类型的注释添加负责人、截止日期和 issue 链接跟踪 2022-05-17
- 基于 Roslyn 同时为 Visual Studio 插件和 NuGet 包开发 .NET/C# 源代码分析器 Analyzer 和修改器 CodeFixProvider 2022-05-17
- Roslyn 入门:使用 Roslyn 静态分析现有项目中的代码(语法分析) 2022-05-17
- 一文看懂 .NET 的异常处理机制、原则以及最佳实践 2022-01-27
- 在 Windows 系统上降低 UAC 权限运行程序(从管理员权限降权到普通用户权限) 2022-01-27
- 将 Windows Terminal 作为外部工具集成到其他工具/程序/代码中 2021-12-22
- .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly) 2021-12-20
- 为 .NET Core / Framework 程序开启大内存感知(LargeAddressAware),使 32 位程序支持最多 4GB 的用户空间内存 2021-12-13
- C#/.NET 如何创建带有本机依赖的多框架多系统 NuGet 包 2021-12-13
- 无需安装 VS2019,在 Visual Studio 2022 中编译 .NET Framework 4.5/4/3.5 这样的古老框架 2021-11-15
- WPF 使用 WindowChrome,在自定义窗口标题栏的同时最大程度保留原生窗口样式(类似 UWP/Chrome) 2021-11-12
- Visual Studio 2022 升级不再附带 .NET Framework 4.5 这种古老的目标包了,本文帮你装回来 2021-11-11
- 各个版本 Windows 11 / Windows 10 的名称、完整版本号、开发代号和系统自带的 .NET Framework 版本 2021-11-08
- Roslyn 入门:使用 .NET Core 版本的 Roslyn 编译并执行跨平台的静态的源码 2021-08-30
- 使用 WPF 做一个可以逼真地照亮你桌面的高性能阳光 2021-08-05
- 路径标记语法(Path Markup Syntax)完全教程 2021-07-30
- 用 WiX 制作安装包:创建一个简单的 exe 安装包 2021-07-20
- 0x800b0109 - 已处理证书链,但是在不受信任提供程序信任的根证书中终止。 2021-07-16
- WiX Toolset 安装包制作入门教程(目录篇) 2021-07-16
- 如何调试 WiX Burn 制作的自定义托管引导程序的 exe 安装包 2021-07-16
- 用 WiX Burn 制作托管安装包:出现 0x80131508 错误 2021-07-16
- 用 WiX 制作安装包:设置的 .NET Framework 前置会始终安装,即使目标电脑已经自带或装好 2021-07-16
- 使用 WiX 创建最简单的安装包过程中可能出现的问题和解决方案汇总 2021-07-16
- 用 WiX Burn 制作托管安装包:出现 0x80070002 错误 2021-07-16
- 如何查看用 WiX 制作的安装包的日志 2021-07-15
- 用 WiX 制作安装包:制作 WPF 安装包界面(入门篇) 2021-07-15
- 用 WiX 制作安装包:为 WiX 制作的 msi 安装包添加 .NET Framework 环境检查 2021-07-15
- 用 WiX 制作安装包:创建一个简单的 msi 安装包 2021-07-15
- 用 WiX 制作安装包:为 WiX 制作的 exe 安装包添加 .NET Framework 前置的安装步骤 2021-07-15
- 用 WiX 制作安装包:安装 WiX Toolset 系列 Visual Studio 插件 2021-07-14
- 用 WiX 制作安装包:安装 WiX Toolset 工具集 2021-07-14
- 用 WiX 制作安装包:准备一个用于学习 WiX 安装包制作的 Visual Studio 解决方案 2021-07-14
- WiX 安装包制作最佳实践:Id、UpgradeCode 应该怎么设置? 2021-07-14
- 编译并体验 .NET MAUI 官方示例代码 2021-06-25
- Visual Studio 2022 出来啦!教你如何将 VS2019 的 VSIX 扩展/插件项目迁移到 VS2022 2021-06-25
- C# 的事件,一般你不需要担心它的线程安全问题! 2021-06-18
- 无法加载为扩展“Microsoft.VisualStudio.Diagnostics.ServiceModelSink.Behavior”注册的类型 2021-06-11
- .NET 单个异步任务如何同时监听多个取消请求(CancellationToken) 2021-06-11
- 从零开始制作 NuGet 源代码包(全面支持 .NET Core / .NET Framework / WPF 项目) 2021-06-07
- 在项目文件 / MSBuild / NuGet 包中编写扩展编译的时候,正确使用 props 文件和 targets 文件 2021-06-07
- 编写你的专属 MSBuild C# 代码生成器:在保存文件时自动实时生成你的代码 2021-06-01
- WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 2021-01-16
- Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 2021-01-04
- 适合 .NET 开发者用的 GitHub Actions(时不时更新) 2020-12-03
- 使用 Xamarin 在 iOS 真机上部署应用进行调试 2020-10-31
- 设置进程的 RedirectStandardOutput 重定向输出后,如果不将输出读出来,会卡死此进程 2020-08-04
- 三种方法设置 .NET/C# 项目的编译顺序,而不影响项目之间的引用 2020-06-24
- 通过设置 sln 解决方案依赖,确保不引用的两个项目之间有明确的编译顺序 2020-06-24
- 通过 ReferenceOutputAssembly=False 在引用项目时,不额外引入依赖文件 2020-06-24
- .NET 程序集/项目/包的版本号设置有最大范围,最大不能超过 65534 2020-06-19
- Visual Studio 在编译 A 项目时,确保 B 项目已编译 2020-06-18
- 理解 Visual Studio 解决方案文件格式(.sln) 2020-06-18
- 从 “x is null 和 x == null” 的区别看 C# 7 模式匹配中常量和 null 的匹配 2020-06-16
- 如何根据一个绝对文件路径生成一个相对文件路径 2020-06-15
- .NET/C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑 2020-06-13
- WPF / Windows Forms 检测窗口在哪个屏幕 2020-06-11
- 支持 Windows 10 最新 PerMonitorV2 特性的 WPF 多屏高 DPI 应用开发 2020-06-10
- 拿别人的 Program Files 文件夹?别忘了考虑 x86/x64 路径 2020-06-03
- 在 .NET 对象和 JSON 互相序列化的时候,枚举类型如何设置成字符串序列化,而不是整型? 2020-06-03
- 如何在保留原本所有样式/绑定和用户设置值的情况下,设置和还原 WPF 依赖项属性的值 2020-06-03
- 杂谈 System.Drawing.Common 的跨平台性(关键词:libgdiplus / .NET Core / Mono / Win32 / Linux / ……) 2020-05-25
- 微软官方的 NuGet 包是如何做到同时兼容新旧框架的?例如 System.ValueTuple 是如何做到在新旧版本的框架都能使用的? 2020-05-24
- Win32/C# 应用使用 PrintWindow 对窗口截图(PrintWindow) 2020-05-23
- Win32/C# 应用不依赖任何库使用纯 GDI+ 对窗口截图(BitBlt) 2020-05-23
- Win32/C# 应用使用 GDI+ 对窗口截图(BitBlt) 2020-05-23
- .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分) 2020-05-15
- .NET/Windows:删除文件夹后立即判断,有可能依然存在 2020-05-15
- 在制作多框架项目的 NuGet 包时应该注意的问题(buildMultiTargeting/TargetFrameworks) 2020-05-15
- 为 .NET 各种开发工具设置网络代理,提升在大陆的网络性能 2020-05-13
- .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能) 2020-04-30
- .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 2020-04-30
- 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 2020-04-14
- 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 2020-04-11
- 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 2020-04-07
- WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 2020-04-03
- 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 2020-04-02
- WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 2020-04-01
- 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 2020-03-23
- 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 2020-03-11
- .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 2020-03-11
- 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 2020-01-28
- 如何设置 ASP.NET Core 程序监听的 IP 和端口 2020-01-13
- 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 2020-01-12
- 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 2020-01-11
- 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 2020-01-11
- .NET 将多个程序集合并成单一程序集的 4+3 种方法 2020-01-10
- .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 2020-01-08
- Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 2020-01-08
- WPF 中如何创建忽略 DPI 属性的图片 2020-01-08
- 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 2020-01-07
- 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 2020-01-03
- .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 2020-01-03
- 如何在 MSBuild 中正确使用 % 来引用每一个项(Item)中的元数据 2019-12-27
- 在 MSBuild 编译过程中操作文件和文件夹(检查存在/创建文件夹/读写文件/移动文件/复制文件/删除文件夹) 2019-12-27
- 如何在 .NET/C# 代码中安全地结束掉一个控制台应用程序?通过发送 Ctrl+C 信号来结束 2019-12-26
- 如何将一个 .NET 对象序列化为 HTTP GET 的请求字符串 2019-12-23
- 屏幕边缘上有趣的 1 个像素,看不见、摸不到 2019-12-23
- 使用 MSBuild Target 复制文件的时候如何保持文件夹结构不变 2019-12-17
- 使用正则表达式尽可能准确匹配域名/网址 2019-12-09
- C# 8.0 的可空引用类型,不止是加个问号哦!你还有很多种不同的可空玩法 2019-12-08
- 一个简单的方法:截取子类名称中不包含基类后缀的部分 2019-12-08
- 可集成到文件管理器,一句 PowerShell 脚本发布某个版本的所有 NuGet 包 2019-12-08
- 配置 legacyUnhandledExceptionPolicy 防止后台线程抛出的异常让程序崩溃退出 2019-11-28
- WPF 程序如何跨窗口/跨进程设置控件焦点 2019-11-27
- 解决关闭模态窗口后,父窗口居然失去焦点跑到了其他窗口的后面的问题 2019-11-05
- C#/.NET 当我们在写事件 += 和 -= 的时候,方法是如何转换成事件处理器的 2019-10-29
- 如何在 .NET 项目中开启不安全代码(以便启用 unsafe fixed 等关键字) 2019-10-29
- 不要在 C# 代码中写部分命名空间(要么不写,要么写全),否则会有源码兼容性问题 2019-10-29
- .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表 2019-10-22
- 解决 WPF 嵌套的子窗口在改变窗口大小的时候闪烁的问题 2019-10-22
- System.ComponentModel.Win32Exception (0x80004005): 无效的窗口句柄。 2019-10-22
- 使用 Direct3D11 的 OpenSharedResource 方法渲染来自其他进程/设备的共享资源(SharedHandle) 2019-10-22
- 将 Direct3D11 在 GPU 中的纹理(Texture2D)导出到内存(Map)或导出成图片文件 2019-10-22
- .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction) 2019-10-22
- WPF 高性能位图渲染 WriteableBitmap 及其高性能用法示例 2019-10-22
- .NET Framework 4.x 程序到底运行在哪个 CLR 版本之上 2019-10-16
- 使用 .editorconfig 配置 .NET/C# 项目的代码分析规则的严重程度 2019-10-12
- 什么是模态窗口?本文带你了解模态窗口的本质 2019-10-10
- 直击本质:WPF 框架是如何实现模态窗口的 2019-10-10
- .NET/C# 检测电脑上安装的 .NET Framework 的版本 2019-10-10
- Windows 系统上用 .NET/C# 查找所有窗口,并获得窗口的标题、位置、尺寸、最小化、可见性等各种状态 2019-10-10
- 在 WPF 程序中应用 Windows 10 真•亚克力效果 2019-10-10
- 使用 SetWindowCompositionAttribute 来控制程序的窗口边框和背景(可以做 Acrylic 亚克力效果、模糊效果、主题色效果等) 2019-10-10
- 推荐几款连字字体,在代码编辑器中启用连字字体(Visual Studio Code) 2019-09-27
- 如何在 Visual Studio 2019 中设置使用 .NET Core SDK 的预览版(全局生效) 2019-09-24
- WPF 程序如何移动焦点到其他控件 2019-09-19
- 使用 SetParent 制作父子窗口的时候,如何设置子窗口的窗口样式以避免抢走父窗口的焦点 2019-09-19
- .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件 2019-09-18
- .NET 设计一套高性能的弱事件机制 2019-09-18
- .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件) 2019-09-18
- C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思? 2019-09-17
- .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃 2019-09-12
- 如何在 WPF 中获取所有已经显式赋过值的依赖项属性 2019-09-12
- 在 WPF 中获取一个依赖对象的所有依赖项属性 2019-09-12
- 在使用 .NET Remoting 技术开发跨进程通信时可能遇到的各种异常 2019-09-05
- .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态 2019-09-05
- WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。 2019-09-02
- WPF 不要给 Window 类设置变换矩阵(应用篇) 2019-09-02
- C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 2019-08-29
- WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 2019-08-27
- WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 2019-08-27
- 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 2019-08-27
- System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 2019-08-14
- System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 2019-08-14
- System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 2019-08-14
- 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 2019-08-07
- 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 2019-08-07
- 好的框架需要好的 API 设计 —— API 设计的六个原则 2019-08-05
- 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 2019-08-04
- 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 2019-08-04
- 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 2019-08-04
- 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 2019-08-03
- 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 2019-08-01
- Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 2019-07-29
- The partial same C# namespace may cause source code compatibility issue 2019-07-27
- 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 2019-07-27
- 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 2019-07-27
- nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 2019-07-25
- 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 2019-07-25
- .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 2019-07-20
- The VisualBrush of WPF only refresh the visual but not the layout 2019-07-12
- WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 2019-07-12
- WPF 很少人知道的科技 2019-07-11
- 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 2019-07-10
- Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 2019-07-07
- 如何安装和准备 Visual Studio 扩展/插件开发环境 2019-07-07
- 如何快速创建 Visual Studio 代码片段? 2019-07-05
- .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 2019-07-04
- 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 2019-07-04
- .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 2019-07-04
- Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 2019-07-02
- 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 2019-07-02
- App will crash when using the when keyword in a catch expression 2019-07-02
- .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 2019-07-01
- 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 2019-06-30
- C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 2019-06-29
- 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 2019-06-29
- 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 2019-06-28
- .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 2019-06-28
- .NET 中让 Task 支持带超时的异步等待 2019-06-21
- .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 2019-06-17
- .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 2019-06-17
- .NET 的程序集加载上下文 2019-06-13
- WPF 程序的编译过程 2019-06-11
- 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 2019-06-11
- MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 2019-06-04
- 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 2019-05-31
- 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 2019-05-31
- .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 2019-05-28
- .NET/C# 的字符串暂存池 2019-05-28
- .NET/C# 避免调试器不小心提前计算本应延迟计算的值 2019-05-28
- WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 2019-05-23
- .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 2019-05-23
- WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 2019-05-22
- 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 2019-05-16
- Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 2019-05-15
- C# 8.0 中开启默认接口实现 2019-05-15
- 通过分析 WPF 的渲染脏区优化渲染性能 2019-05-13
- Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 2019-05-05
- 使用 EnumWindows 找到满足你要求的窗口 2019-04-30
- 安装和运行 .NET Core 版本的 PowerShell 2019-04-30
- XAML 很少人知道的科技 2019-04-30
- WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 2019-04-30
- 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 2019-04-29
- Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 2019-04-26
- Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 2019-04-26
- WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 2019-04-25
- MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 2019-04-24
- 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 2019-04-24
- 使用 7-Zip 的命令行版本来压缩和解压文件 2019-04-24
- C#/.NET 使用 git 命令行来操作 git 仓库 2019-04-21
- NullReferenceException,就不应该存在! 2019-04-16
- C# 跨设备前后端开发探索 2019-04-16
- 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 2019-04-12
- .NET/C# 项目如何优雅地设置条件编译符号? 2019-04-12
- .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 2019-04-12
- 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 2019-04-12
- Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 2019-04-12
- .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 2019-04-12
- 阻止某个 NuGet 包意外升级 2019-04-12
- Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 2019-04-12
- 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 2019-04-12
- 语义版本号(Semantic Versioning) 2019-04-12
- 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 2019-04-12
- .NET Core/Framework 创建委托以大幅度提高反射调用的性能 2019-04-04
- 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 2019-03-30
- WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 2019-03-29
- When WPF Commands update their CanExecute states? 2019-03-29
- C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 2019-03-26
- 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 2019-03-24
- C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 2019-03-24
- 制作一个极简的 .NET 客户端应用自安装或自更新程序 2019-03-22
- WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 2019-03-21
- 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 2019-03-20
- 如何创建一个基于 .NET Core 3 的 WPF 项目 2019-03-19
- Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 2019-03-19
- 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 2019-03-17
- 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 2019-03-15
- .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 2019-03-15
- 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 2019-03-15
- 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 2019-03-15
- 使用 Task.Wait()?立刻死锁(deadlock) 2019-03-15
- 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 2019-03-15
- C#/.NET 如何结束掉一个进程 2019-03-14
- 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 2019-03-14
- 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 2019-03-14
- .NET 中的轻量级线程安全 2019-03-14
- C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 2019-03-14
- 我收集的各种公有 NuGet 源 2019-03-12
- 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 2019-03-12
- 为 WPF 程序添加 Windows 跳转列表的支持 2019-03-10
- Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 2019-03-10
- .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 2019-03-10
- 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 2019-03-10
- 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 2019-03-10
- .NET/C# 获取一个正在运行的进程的命令行参数 2019-03-09
- WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 2019-03-09
- 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 2019-03-09
- 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 2019-03-09
- WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 2019-03-09
- .NET 中创建支持集合初始化器的类型 2019-03-09
- WPF 多线程 UI:设计一个异步加载 UI 的容器 2019-03-09
- WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 2019-03-09
- 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 2019-03-09
- 使用 Postman 调试 ASP.NET Core 开发的 API 2019-03-09
- 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 2019-03-09
- 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 2019-03-05
- C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 2019-03-05
- 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 2019-03-05
- 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 2019-03-04
- 如何为你的 Windows 应用程序关联一种或多种文件类型 2019-03-04
- 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 2019-03-04
- 如何在命令行中监听用户输入文本的改变? 2019-03-04
- 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 2019-03-04
- 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 2019-03-01
- 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 2019-03-01
- 在 MSBuild 编译项目时阻止输出所有的警告信息 2019-02-27
- 使用 Visual Studio 调试多进程的程序 2019-02-21
- .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 2019-02-19
- 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 2019-01-30
- ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 2019-01-30
- WPF's multi-threaded UI is not thread safe 2019-01-29
- WPF 支持的多线程 UI 并不是线程安全的 2019-01-29
- .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 2019-01-25
- C#/.NET 如何确认一个路径是否是合法的文件路径 2019-01-16
- .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 2019-01-10
- int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable
实例的真实类型 2019-01-08 - 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 2019-01-08
- C# 中委托实例的命名规则 2019-01-08
- 三值 bool? 进行与或运算后的结果 2019-01-06
- WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 2019-01-03
- .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 2019-01-01
- .NET 中使用 Mutex 进行跨越进程边界的同步 2018-12-30
- 谨慎使用 FileInfo.Exists 实例方法,而是使用 File.Exists 静态方法替代 2018-12-30
- C#/.NET 使用 CommandLineParser 来标准化地解析命令行 2018-12-30
- .NET 中什么样的类是可使用 await 异步等待的? 2018-12-23
- .NET 除了用 Task 之外,如何自己写一个可以 await 的对象? 2018-12-23
- 定义一组抽象的 Awaiter 的实现接口,你下次写自己的 await 可等待对象时将更加方便 2018-12-23
- 了解 .NET 的默认 TaskScheduler 和线程池(ThreadPool)设置,避免让 Task.Run 的性能急剧降低 2018-12-23
- 在 WPF/UWP 中实现一个可以用 await 异步等待 UI 交互操作的 Awaiter 2018-12-22
- .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter 2018-12-22
- .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件 2018-12-22
- 文件和文件夹不存在的时候,FileSystemWatcher 监听不到文件的改变?如果递归地监听就可以了 2018-12-20
- StyleCop 是什么,可以帮助团队带来什么价值? 2018-12-15
- 在 Visual Studio 中使用 EditorConfig 统一代码风格(含原生与插件) 2018-12-14
- .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间) 2018-12-14
- .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法) 2018-12-14
- .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions) 2018-12-14
- 在 WPF 中使用 x:Reference 2018-12-14
- UWP 轻量级样式定义(Lightweight Styling) 2018-12-14
- UWP 中的各种文件路径(用户、缓存、漫游、安装……) 2018-12-14
- 让控制台支持 ANSI 转义序列,输出下划线、修改颜色或其他控制 2018-12-14
- (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 2018-12-14
- .NET/C# 使窗口永不激活(No Activate 永不获得焦点) 2018-12-14
- Windows 10 应用创建模糊背景窗口的三种方法 2018-12-14
- 3 Ways to create a window with blurring background on Windows 10 2018-12-14
- 长期支持 LTS(Long-term Support)是怎样的一种支持方式 2018-12-14
- 在制作跨平台的 NuGet 工具包时,如何将工具(exe/dll)的所有依赖一并放入包中 2018-12-14
- 使用 LINQ to XML,.NET 让生成 XML 文件变得和直接写 XML 一样轻松 2018-12-14
- 如何使用 MSBuild Target(Exec)中的控制台输出 2018-12-14
- 如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文 2018-12-14
- 如何快速编写和调试 Emit 生成 IL 的代码 2018-12-14
- Roslyn 的确定性构建 2018-12-14
- 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 2018-12-14
- .NET Core 和 .NET Framework 中的 MEF2 2018-12-14
- C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 2018-12-14
- 异步任务中的重新进入(Reentrancy) 2018-12-14
- 用 AppContext 解决类库的更新兼容问题 2018-12-14
- 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 2018-12-14
- 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 2018-12-01
- 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 2018-11-28
- Win2D 中的游戏循环:CanvasAnimatedControl 2018-11-28
- 使用 Win2D 绘制带图片纹理的圆(或椭圆) 2018-11-28
- 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 2018-11-27
- 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 2018-11-27
- 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 2018-11-27
- 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 2018-11-12
- 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 2018-11-11
- 出让执行权:Task.Yield, Dispatcher.Yield 2018-10-29
- 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 2018-10-19
- WPF 中的 NameScope 2018-10-16
- 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 2018-10-15
- WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 2018-10-14
- 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 2018-10-05
- 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 2018-09-23
- .NET 命令行参数包含应用程序路径吗? 2018-09-13
- WPF 同一窗口内的多线程 UI(VisualTarget) 2018-09-05
- .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 2018-09-02
- .NET/C# 使用反射调用含 ref 或 out 参数的方法 2018-09-02
- .NET/C# 使用反射注册事件 2018-09-01
- .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 2018-09-01
- 屏幕上那个灰色带有数字的框是什么?看着好难受! 2018-09-01
- (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 2018-09-01
- 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 2018-09-01
- Automatically increase the semantic version using GitVersion 2018-09-01
- 使用 Emit 生成 IL 代码 2018-09-01
- 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 2018-09-01
- 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 2018-09-01
- .NET 中 GetProcess 相关方法的性能 2018-08-19
- C#/.NET 序列化和反序列化 YAML 元数据 2018-08-13
- C#/.NET 读取或修改文件的创建时间和修改时间 2018-08-12
- Good Framework Rely on Good Api —— Six API Design Principles 2018-08-12
- Introducing MSTestEnhancer to make unit test result easy to read 2018-08-12
- 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 2018-08-12
- 使用 C# 代码创建快捷方式文件 2018-08-11
- 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 2018-08-05
- WPF 应用完全模拟 UWP 的标题栏按钮 2018-08-05
- .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 2018-07-30
- .NET/C# 使用 Span
为字符串处理提升性能 2018-07-22 - 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 2018-07-21
- 理解 Roslyn 中的红绿树(Red-Green Trees) 2018-07-19
- Roslyn 语法树中的各种语法节点及每个节点的含义 2018-07-18
- .NET Standard 的管理策略 2018-07-08
- 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 2018-07-04
- 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 2018-07-02
- 语义耦合(Semantic Coupling) 2018-06-30
- XML 的 XPath 语法 2018-06-24
- C#/.NET 中推荐的 Dispose 模式的实现 2018-06-13
- 神器如 dnSpy,无需源码也能修改 .NET 程序 2018-05-22
- 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 2018-04-26
- 利用 TypeConverter,转换字符串和各种类型只需写一个函数 2018-04-23
- 分享一个算法,计算能在任何背景色上清晰显示的前景色 2018-02-20
- 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 2018-02-04
- .NET/C# 建议的异常处理原则 2018-02-04
- 有些异常堆栈中真没我们写的源码 2018-01-16
- 为什么委托的减法(- 或 -=)可能出现非预期的结果?(Delegate Subtraction Has Unpredictable Result) 2017-12-28
- 真的要比较 for 和 foreach 的性能吗?(内附性能比较的实测数据) 2017-12-07
- 使用 ExceptionDispatchInfo 捕捉并重新抛出异常 2017-10-27
- 如何组织一个同时面向 UWP/WPF/.Net Core 控制台的 C# 项目解决方案 2017-10-21
- UWP 和 WPF 不同,ListView 中绑定的集合修改顺序时,UI 的刷新规则 2017-10-20
- 试图在 Windows 10 上安装 .NET Framework 3.5 时提示错误 0x800F081F 2017-09-23
- Exception.Data 为异常添加更多调试信息 2017-09-12
- FileSystemWatcher 监视文件改变 2014-09-23
- FileShare 读取一个其它进程正在写的文件 2014-09-22
- CallerMemberName 2014-09-12