Upgrade to .NET 4.8, fix CI workflows, add tests#435
Open
niklas2233 wants to merge 11 commits into
Open
Conversation
- Upgrade all 17 C# projects from .NET 3.5/4.0 to .NET 4.8, eliminating the requirement to separately install the unmaintained .NET 3.5 runtime. .NET 4.8 ships pre-installed on Windows 10 (1903+) and Windows 11. - Update installer to require NETFRAMEWORK48 instead of NETFRAMEWORK35 - Update COM registration RuntimeVersion from v2.0.50727 to v4.0.30319 - Add WiX Burn bootstrapper (Bundle.wxs / Bundle.wixproj) that automatically downloads and installs .NET 4.8 from Microsoft if not already present, then installs QTTabBar — produces a single setup.exe for end users - Add graphify-out/ and .claude/ to .gitignore Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Replace MSHTML and SHDocVw COM references with assembly references to fix 64-bit MSBuild incompatibility (cannot resolve 32-bit type libraries) - Add System.Xaml reference (IComponentConnector moved from WindowsBase in .NET 4+) - Fix NotifyPropertyWeaver task: use AfterBuild with explicit TargetPath and References params (AfterCompile + no params fails on modern MSBuild) - Fix Installer.wxs: replace PropertyRef NETFRAMEWORK48 (undefined in NuGet WixNetFxExtension) with custom registry AppSearch; remove InstallerHelper binary/CustomActions (C++ not built, no toolchain) - Add Microsoft.mshtml.dll interop assembly from VS PublicAssemblies Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…rovements - Fix options dialog crash: add Dispatcher.UnhandledException handler and comprehensive try-catch in ThreadEntry() for .NET 4+ unhandled exception behavior - Fix empty options window: cache assemblies in AssemblyResolve handler to prevent Ricciolo.Controls.TreeListView from loading twice into incompatible LoadNeither contexts - Bars off by default: remove auto-ShowBrowserBar calls from AutoLoader.ActivateIt() - Installer: wire WIXUI_EXITDIALOGOPTIONALCHECKBOX to restart Explorer via three sequential actions (kill, wait, WixShellExec) for correct timing and de-elevation - Bump version to 1.5.6.2 across AssemblyInfo, QTUtility, Installer.wxs, Bundle.wxs - Update README for .NET 4.8, VS 2022, WiX 3.14 build instructions Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add @echo off, use start for non-blocking launch, and wait loop to confirm Explorer is running before exiting. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Build scripts: 01build_release.bat (VS2010), 02build_sonar.bat (hardcoded SonarQube token + VS2019), BUILD.txt (obsolete instructions) - Docs: CHANGES.txt (corrupted encoding), CONTRIBUTING.md (empty), TODOS.txt (original author notes), SECURITY.md (template with wrong versions) - CI: appveyor.yml (VS2015/2010, not used), _config.yml (GitHub Pages theme) - Binaries: Votive2010.vsix (WiX VS2010 extension), QTTabBar.doc (old Word doc), image.png (unused), url.txt (single URL) - Directories: InstallerMini/ (unused alternate installer), Test/ (empty test files) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Update QTTabBar.yml: trigger on master, action versions to v4/v2, add test run step with TRX results, fix artifact path - Fix ql.yml: switch to windows-latest, add MSBuild build step so CodeQL can actually analyze the compiled C# code - Add QTTabBar.Tests project with 30 MSTest tests covering BindAction enum contract and XmlSerializableFont round-trip serialization - Register QTTabBar.Tests in solution with full configuration mappings Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The full solution build fails on the runner because libMinHook and InstallerHelper use Platform Toolset v100 (VS 2010), which is not installed. The C# code all compiled fine. Fix: build QTTabBar.Tests (which pulls BandObjectLib, QTPluginLib, QTTabBar via project refs) and skip the native/installer projects entirely. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
When building QTTabBar.Tests.csproj without the .sln file, $(SolutionDir) is undefined so the NotifyPropertyWeaver task path resolves to *Undefined*. Pass SolutionDir explicitly from GITHUB_WORKSPACE to fix the post-build weaving step. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Required for the CodeQL action to upload SARIF results to GitHub Security tab. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
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.




Summary
windows-latestrunner (ubuntu can't build this .sln) and adds requiredsecurity-events: writepermissionBindActionenum ordinals (so refactors can't accidentally break saved user settings) andXmlSerializableFontSolutionDirundefined error when building.csprojdirectlyaction-gh-releaseto v2 (Node 24 compatible)CI status
All 31 tests pass on
windows-latest. CodeQL analysis runs cleanly. The original repo's CodeQL has been failing every week since at least February 2025 due to the ubuntu/MSBuild mismatch — this fixes that.🤖 Generated with Claude Code