fix(icon): persist application icons with complete fallback regressions - #171
Merged
Merged
Conversation
…hortcut overwrite
…and strengthen regressions - Fix valid Shell/PIDL virtual shortcuts (e.g. Recycle Bin) falsely identified as broken shortcuts by only treating shortcuts with non-existent rooted/file targets as broken - Preserve protection ensuring clearly invalid file targets do not overwrite existing valid snapshots - Isolate test projects build outputs via scratch/Directory.Build.props to eliminate apphost collisions between test_icon_cache and test_onboarding - Add cross-process cold boot snapshot verification across two independent OS processes - Add full action entity coverage using real temporary sample executables for PinIconsForConfig - Add dynamic plugin SVG registration, resolution, and revocation verification via PluginHost.Catalog
…ojects Scope BaseIntermediateOutputPath and BaseOutputPath overrides specifically to test_icon_cache and test_onboarding so other scratch utilities retain their default build layouts.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
概要与背景
变更内容与补强设计
有效 Shell/PIDL 快捷方式支持与红绿修复:
::{645FF040-5081-101B-9F08-00AA002F954E})因无标准 Win32 物理文件路径而被误判为失效快捷方式的问题;.exe后缀)且物理目标不存在时,才判定为失效;测试工程输出目录隔离:
scratch/Directory.Build.props中为test_icon_cache与test_onboarding两个工程限定独立的BaseIntermediateOutputPath与BaseOutputPath;apphost.exe导致的覆盖与相互干扰,其他scratch工具工程(Issue17Demo、IconGenerator)保持默认输出布局不变。跨独立 OS 进程冷启动验证:
--subproc-pin)生成物理快照;父进程物理删除源文件;子进程 2(--subproc-read,全新独立冷启动进程,内存缓存完全干净)成功从持久化快照恢复图标,断言有效尺寸且处于 Frozen 状态。全量配置动作入口真实样本覆盖:
PinIconsForConfig落盘快照、源文件删除后全部 10 个入口均能从快照恢复。插件 SVG 图标动态注册与解析验证:
PluginHost.Catalog.BeginSession注册插件矢量 SVG 图标并提交;IconHelper.GetSvgPathByKey解析结果与注册值完全一致,且撤销后正确清除。保留原有边界回归:
.lnk仍在时的哈希防覆盖与快照回退;验证记录
eb33c37807ebc2e170656600b4d314db03dd9a86(已干净合并最新 mainc90cfb5)dotnet build WinPieGestures/WinPieGestures.csproj -c Release --nologo-> 0 错误,0 警告git diff --check origin/main...HEAD-> 通过,无格式与换行问题scratch/test_icon_cache.ps1在独立临时沙箱中运行 -> 66 / 66 项全部 PASS交付声明