From 7379a3dc3bec2a0a66300f3e3ba330ea598162a3 Mon Sep 17 00:00:00 2001 From: Eric Ogden Date: Fri, 24 Jul 2026 09:54:49 -0700 Subject: [PATCH 1/5] feat: add base WIX MSI installer project --- Installer-Wix/ExampleComponents.wxs | 9 +++++++++ Installer-Wix/Folders.wxs | 7 +++++++ Installer-Wix/Installer-Wix.wixproj | 2 ++ Installer-Wix/Package.en-us.wxl | 8 ++++++++ Installer-Wix/Package.wxs | 9 +++++++++ 5 files changed, 35 insertions(+) create mode 100644 Installer-Wix/ExampleComponents.wxs create mode 100644 Installer-Wix/Folders.wxs create mode 100644 Installer-Wix/Installer-Wix.wixproj create mode 100644 Installer-Wix/Package.en-us.wxl create mode 100644 Installer-Wix/Package.wxs diff --git a/Installer-Wix/ExampleComponents.wxs b/Installer-Wix/ExampleComponents.wxs new file mode 100644 index 0000000..4ddb9b0 --- /dev/null +++ b/Installer-Wix/ExampleComponents.wxs @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/Installer-Wix/Folders.wxs b/Installer-Wix/Folders.wxs new file mode 100644 index 0000000..eaa4246 --- /dev/null +++ b/Installer-Wix/Folders.wxs @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Installer-Wix/Installer-Wix.wixproj b/Installer-Wix/Installer-Wix.wixproj new file mode 100644 index 0000000..edbf60f --- /dev/null +++ b/Installer-Wix/Installer-Wix.wixproj @@ -0,0 +1,2 @@ + + diff --git a/Installer-Wix/Package.en-us.wxl b/Installer-Wix/Package.en-us.wxl new file mode 100644 index 0000000..7fa02fa --- /dev/null +++ b/Installer-Wix/Package.en-us.wxl @@ -0,0 +1,8 @@ + + + + + + diff --git a/Installer-Wix/Package.wxs b/Installer-Wix/Package.wxs new file mode 100644 index 0000000..becf87a --- /dev/null +++ b/Installer-Wix/Package.wxs @@ -0,0 +1,9 @@ + + + + + + + + + From 606fb78b75875d40e963f480f0b3b8c7d8b72abe Mon Sep 17 00:00:00 2001 From: Eric Ogden Date: Fri, 24 Jul 2026 12:03:52 -0700 Subject: [PATCH 2/5] feat: convert installer to WiX MSI (Installer-Wix) Replace the legacy Visual Studio setup project (Installer/Installer.vdproj) with a WiX Toolset v7 MSI in Installer-Wix/. - Reuse the old UpgradeCode so the WiX MSI upgrades existing installs - Harvest the app build output via (pdbs excluded); install to Program Files\SiCo\Task Separator 11 - Desktop + Start Menu shortcuts (per-user, ICE57-clean) - Require the .NET 6 Desktop Runtime via a netfx launch condition - Remove the old vdproj; add Installer-Wix to the solution Build with Visual Studio / MSBuild.exe (the app's COM reference is not supported by "dotnet build"). Co-Authored-By: Claude Opus 4.8 --- Installer-Wix/AppComponents.wxs | 67 +++ Installer-Wix/ExampleComponents.wxs | 9 - Installer-Wix/Folders.wxs | 13 +- Installer-Wix/Installer-Wix.wixproj | 21 +- Installer-Wix/Package.en-us.wxl | 2 + Installer-Wix/Package.wxs | 55 +- Installer/Installer.vdproj | 779 ---------------------------- TaskSplitter11.sln | 42 +- 8 files changed, 188 insertions(+), 800 deletions(-) create mode 100644 Installer-Wix/AppComponents.wxs delete mode 100644 Installer-Wix/ExampleComponents.wxs delete mode 100644 Installer/Installer.vdproj diff --git a/Installer-Wix/AppComponents.wxs b/Installer-Wix/AppComponents.wxs new file mode 100644 index 0000000..111a992 --- /dev/null +++ b/Installer-Wix/AppComponents.wxs @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Installer-Wix/ExampleComponents.wxs b/Installer-Wix/ExampleComponents.wxs deleted file mode 100644 index 4ddb9b0..0000000 --- a/Installer-Wix/ExampleComponents.wxs +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/Installer-Wix/Folders.wxs b/Installer-Wix/Folders.wxs index eaa4246..c318569 100644 --- a/Installer-Wix/Folders.wxs +++ b/Installer-Wix/Folders.wxs @@ -1,7 +1,18 @@ + - + + + + + + + diff --git a/Installer-Wix/Installer-Wix.wixproj b/Installer-Wix/Installer-Wix.wixproj index edbf60f..6224455 100644 --- a/Installer-Wix/Installer-Wix.wixproj +++ b/Installer-Wix/Installer-Wix.wixproj @@ -1,2 +1,21 @@ - + + + + + + + + + + + + diff --git a/Installer-Wix/Package.en-us.wxl b/Installer-Wix/Package.en-us.wxl index 7fa02fa..5cccbc8 100644 --- a/Installer-Wix/Package.en-us.wxl +++ b/Installer-Wix/Package.en-us.wxl @@ -5,4 +5,6 @@ This file contains the declaration of all the localizable strings. + + diff --git a/Installer-Wix/Package.wxs b/Installer-Wix/Package.wxs index becf87a..3caaeaf 100644 --- a/Installer-Wix/Package.wxs +++ b/Installer-Wix/Package.wxs @@ -1,9 +1,56 @@ - - + + + + + - - + + + + + + + + + + + + diff --git a/Installer/Installer.vdproj b/Installer/Installer.vdproj deleted file mode 100644 index 041b072..0000000 --- a/Installer/Installer.vdproj +++ /dev/null @@ -1,779 +0,0 @@ -"DeployProject" -{ -"VSVersion" = "3:800" -"ProjectType" = "8:{978C614F-708E-4E1A-B201-565925725DBA}" -"IsWebType" = "8:FALSE" -"ProjectName" = "8:Installer" -"LanguageId" = "3:1033" -"CodePage" = "3:1252" -"UILanguageId" = "3:1033" -"SccProjectName" = "8:" -"SccLocalPath" = "8:" -"SccAuxPath" = "8:" -"SccProvider" = "8:" - "Hierarchy" - { - "Entry" - { - "MsmKey" = "8:_17CBAA1275BC49BCB84FFD88E0DFB83B" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_9B4F8478905B40D2A5F104F2481D6F29" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - } - "Configurations" - { - "Debug" - { - "DisplayName" = "8:Debug" - "IsDebugOnly" = "11:TRUE" - "IsReleaseOnly" = "11:FALSE" - "OutputFilename" = "8:Debug\\Installer.msi" - "PackageFilesAs" = "3:2" - "PackageFileSize" = "3:-2147483648" - "CabType" = "3:1" - "Compression" = "3:2" - "SignOutput" = "11:FALSE" - "CertificateFile" = "8:" - "PrivateKeyFile" = "8:" - "TimeStampServer" = "8:" - "InstallerBootstrapper" = "3:2" - "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}" - { - "Enabled" = "11:TRUE" - "PromptEnabled" = "11:TRUE" - "PrerequisitesLocation" = "2:1" - "Url" = "8:" - "ComponentsUrl" = "8:" - "Items" - { - "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:.NETFramework,Version=v4.7.2" - { - "Name" = "8:Microsoft .NET Framework 4.7.2 (x86 and x64)" - "ProductCode" = "8:.NETFramework,Version=v4.7.2" - } - } - } - } - "Release" - { - "DisplayName" = "8:Release" - "IsDebugOnly" = "11:FALSE" - "IsReleaseOnly" = "11:TRUE" - "OutputFilename" = "8:Release\\TaskSeparator11.msi" - "PackageFilesAs" = "3:2" - "PackageFileSize" = "3:-2147483648" - "CabType" = "3:1" - "Compression" = "3:2" - "SignOutput" = "11:FALSE" - "CertificateFile" = "8:" - "PrivateKeyFile" = "8:" - "TimeStampServer" = "8:" - "InstallerBootstrapper" = "3:2" - "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}" - { - "Enabled" = "11:TRUE" - "PromptEnabled" = "11:TRUE" - "PrerequisitesLocation" = "2:1" - "Url" = "8:" - "ComponentsUrl" = "8:" - "Items" - { - "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:.NETFramework,Version=v4.7.2" - { - "Name" = "8:Microsoft .NET Framework 4.7.2 (x86 and x64)" - "ProductCode" = "8:.NETFramework,Version=v4.7.2" - } - } - } - } - } - "Deployable" - { - "CustomAction" - { - } - "DefaultFeature" - { - "Name" = "8:DefaultFeature" - "Title" = "8:" - "Description" = "8:" - } - "ExternalPersistence" - { - "LaunchCondition" - { - "{A06ECF26-33A3-4562-8140-9B0E340D4F24}:_C30E53B537F84673BF78CFC3A36BFEB7" - { - "Name" = "8:.NET Core" - "Message" = "8:[VSDNETCOREMSG]" - "AllowLaterVersions" = "11:FALSE" - "InstallUrl" = "8:https://dotnet.microsoft.com/download/dotnet-core/[NetCoreVerMajorDotMinor]" - "IsNETCore" = "11:TRUE" - "Architecture" = "2:0" - "Runtime" = "2:0" - } - } - } - "File" - { - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_9B4F8478905B40D2A5F104F2481D6F29" - { - "SourcePath" = "8:..\\TaskSplitter11\\icons\\icons8-taskbar-96.ico" - "TargetName" = "8:icons8-taskbar-96.ico" - "Tag" = "8:" - "Folder" = "8:_C28DAC9F82D54A01885C0E27F99A46DA" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - } - "FileType" - { - } - "Folder" - { - "{1525181F-901A-416C-8A58-119130FE478E}:_5F975A398B914097BC8E3DE8FA982357" - { - "Name" = "8:#1916" - "AlwaysCreate" = "11:FALSE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Property" = "8:DesktopFolder" - "Folders" - { - } - } - "{1525181F-901A-416C-8A58-119130FE478E}:_BED292E58F0947AA9EBD0D726B72C7FF" - { - "Name" = "8:#1919" - "AlwaysCreate" = "11:FALSE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Property" = "8:ProgramMenuFolder" - "Folders" - { - } - } - "{3C67513D-01DD-4637-8A68-80971EB9504F}:_C28DAC9F82D54A01885C0E27F99A46DA" - { - "DefaultLocation" = "8:[ProgramFilesFolder][Manufacturer]\\[ProductName]" - "Name" = "8:#1925" - "AlwaysCreate" = "11:FALSE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Property" = "8:TARGETDIR" - "Folders" - { - } - } - } - "LaunchCondition" - { - } - "Locator" - { - } - "MsiBootstrapper" - { - "LangId" = "3:1033" - "RequiresElevation" = "11:FALSE" - } - "Product" - { - "Name" = "8:Microsoft Visual Studio" - "ProductName" = "8:Task Separator 11" - "ProductCode" = "8:{B6B6AD0B-917B-45E3-8275-23F8FA3AAF87}" - "PackageCode" = "8:{0D956657-0FE5-45C3-8C7B-8D0B2C8A5B01}" - "UpgradeCode" = "8:{BB2FFC59-BD81-4C0C-A847-1D88E7052BE7}" - "AspNetVersion" = "8:4.0.30319.0" - "RestartWWWService" = "11:FALSE" - "RemovePreviousVersions" = "11:FALSE" - "DetectNewerInstalledVersion" = "11:TRUE" - "InstallAllUsers" = "11:TRUE" - "ProductVersion" = "8:1.0.2" - "Manufacturer" = "8:SiCo" - "ARPHELPTELEPHONE" = "8:" - "ARPHELPLINK" = "8:" - "Title" = "8:Task Separator 11" - "Subject" = "8:" - "ARPCONTACT" = "8:Drummer_si" - "Keywords" = "8:" - "ARPCOMMENTS" = "8:" - "ARPURLINFOABOUT" = "8:" - "ARPPRODUCTICON" = "8:" - "ARPIconIndex" = "3:0" - "SearchPath" = "8:" - "UseSystemSearchPath" = "11:TRUE" - "TargetPlatform" = "3:0" - "PreBuildEvent" = "8:" - "PostBuildEvent" = "8:" - "RunPostBuildEvent" = "3:1" - } - "Registry" - { - "HKLM" - { - "Keys" - { - "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_B151EA7A0A284EA793A6E3B66A13BB10" - { - "Name" = "8:Software" - "Condition" = "8:" - "AlwaysCreate" = "11:FALSE" - "DeleteAtUninstall" = "11:FALSE" - "Transitive" = "11:FALSE" - "Keys" - { - "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_9BF62D1C167E4620BC6C853A21352E02" - { - "Name" = "8:[Manufacturer]" - "Condition" = "8:" - "AlwaysCreate" = "11:FALSE" - "DeleteAtUninstall" = "11:FALSE" - "Transitive" = "11:FALSE" - "Keys" - { - } - "Values" - { - } - } - } - "Values" - { - } - } - } - } - "HKCU" - { - "Keys" - { - "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_538332200DC34479A2F73CFFEE5FC9EB" - { - "Name" = "8:Software" - "Condition" = "8:" - "AlwaysCreate" = "11:FALSE" - "DeleteAtUninstall" = "11:FALSE" - "Transitive" = "11:FALSE" - "Keys" - { - "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_D95B8418223A4246BDA5BE0877975F7A" - { - "Name" = "8:[Manufacturer]" - "Condition" = "8:" - "AlwaysCreate" = "11:FALSE" - "DeleteAtUninstall" = "11:FALSE" - "Transitive" = "11:FALSE" - "Keys" - { - } - "Values" - { - } - } - } - "Values" - { - } - } - } - } - "HKCR" - { - "Keys" - { - } - } - "HKU" - { - "Keys" - { - } - } - "HKPU" - { - "Keys" - { - } - } - } - "Sequences" - { - } - "Shortcut" - { - "{970C0BB2-C7D0-45D7-ABFA-7EC378858BC0}:_17DEED2792A146B8B965D370239987F2" - { - "Name" = "8:Task Separator 11" - "Arguments" = "8:" - "Description" = "8:" - "ShowCmd" = "3:1" - "IconIndex" = "3:0" - "Transitive" = "11:FALSE" - "Target" = "8:_17CBAA1275BC49BCB84FFD88E0DFB83B" - "Folder" = "8:_5F975A398B914097BC8E3DE8FA982357" - "WorkingFolder" = "8:_C28DAC9F82D54A01885C0E27F99A46DA" - "Icon" = "8:_9B4F8478905B40D2A5F104F2481D6F29" - "Feature" = "8:" - } - "{970C0BB2-C7D0-45D7-ABFA-7EC378858BC0}:_47D6E655BEA84629BB7D63FAF58AF175" - { - "Name" = "8:Task Separator 11" - "Arguments" = "8:" - "Description" = "8:" - "ShowCmd" = "3:1" - "IconIndex" = "3:0" - "Transitive" = "11:FALSE" - "Target" = "8:_17CBAA1275BC49BCB84FFD88E0DFB83B" - "Folder" = "8:_BED292E58F0947AA9EBD0D726B72C7FF" - "WorkingFolder" = "8:_C28DAC9F82D54A01885C0E27F99A46DA" - "Icon" = "8:_9B4F8478905B40D2A5F104F2481D6F29" - "Feature" = "8:" - } - } - "UserInterface" - { - "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_38DE9F6EE08A4036AC0A08BAADF61620" - { - "Name" = "8:#1900" - "Sequence" = "3:2" - "Attributes" = "3:1" - "Dialogs" - { - "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_057E441FE90A42FF9E08CA19FBDCBB2C" - { - "Sequence" = "3:100" - "DisplayName" = "8:Welcome" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdAdminWelcomeDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - "CopyrightWarning" - { - "Name" = "8:CopyrightWarning" - "DisplayName" = "8:#1002" - "Description" = "8:#1102" - "Type" = "3:3" - "ContextData" = "8:" - "Attributes" = "3:0" - "Setting" = "3:1" - "Value" = "8:#1202" - "DefaultValue" = "8:#1202" - "UsePlugInResources" = "11:TRUE" - } - "Welcome" - { - "Name" = "8:Welcome" - "DisplayName" = "8:#1003" - "Description" = "8:#1103" - "Type" = "3:3" - "ContextData" = "8:" - "Attributes" = "3:0" - "Setting" = "3:1" - "Value" = "8:#1203" - "DefaultValue" = "8:#1203" - "UsePlugInResources" = "11:TRUE" - } - } - } - "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_2D6C1A4642DC4D30B75B21FEE82779E3" - { - "Sequence" = "3:200" - "DisplayName" = "8:Installation Folder" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdAdminFolderDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - } - } - "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_37A0CCCE0DC241AFB4AED44B62CB5187" - { - "Sequence" = "3:300" - "DisplayName" = "8:Confirm Installation" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdAdminConfirmDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - } - } - } - } - "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_3ECD0D57345C48A695868B5A82AD7CF8" - { - "UseDynamicProperties" = "11:FALSE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdUserInterface.wim" - } - "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_7846628A2E4741D6B29FAE9BC53B1F05" - { - "UseDynamicProperties" = "11:FALSE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdBasicDialogs.wim" - } - "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_7B0EB8354915465C9EA229B63B9B9E41" - { - "Name" = "8:#1901" - "Sequence" = "3:1" - "Attributes" = "3:2" - "Dialogs" - { - "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_4E5AF8A1F9514C1F9F81D0C150DA393F" - { - "Sequence" = "3:100" - "DisplayName" = "8:Progress" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdProgressDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - "ShowProgress" - { - "Name" = "8:ShowProgress" - "DisplayName" = "8:#1009" - "Description" = "8:#1109" - "Type" = "3:5" - "ContextData" = "8:1;True=1;False=0" - "Attributes" = "3:0" - "Setting" = "3:0" - "Value" = "3:1" - "DefaultValue" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - } - } - } - } - "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_7B42D01E9F52455B9C9A0786E7E1E95A" - { - "Name" = "8:#1901" - "Sequence" = "3:2" - "Attributes" = "3:2" - "Dialogs" - { - "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_D58B0A281A444937919F44D1BAE29EE3" - { - "Sequence" = "3:100" - "DisplayName" = "8:Progress" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdAdminProgressDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - "ShowProgress" - { - "Name" = "8:ShowProgress" - "DisplayName" = "8:#1009" - "Description" = "8:#1109" - "Type" = "3:5" - "ContextData" = "8:1;True=1;False=0" - "Attributes" = "3:0" - "Setting" = "3:0" - "Value" = "3:1" - "DefaultValue" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - } - } - } - } - "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_B35C6852E2904B468F919FC200C1546F" - { - "Name" = "8:#1902" - "Sequence" = "3:2" - "Attributes" = "3:3" - "Dialogs" - { - "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_4F6ACE00DA5D4F428E41B3C763A2F97E" - { - "Sequence" = "3:100" - "DisplayName" = "8:Finished" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdAdminFinishedDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - } - } - } - } - "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_DC46ED3707134E1FAF5B4D0652FB611F" - { - "Name" = "8:#1902" - "Sequence" = "3:1" - "Attributes" = "3:3" - "Dialogs" - { - "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_BCDF464E4494446D89F60969DFBC8555" - { - "Sequence" = "3:100" - "DisplayName" = "8:Finished" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdFinishedDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - "UpdateText" - { - "Name" = "8:UpdateText" - "DisplayName" = "8:#1058" - "Description" = "8:#1158" - "Type" = "3:15" - "ContextData" = "8:" - "Attributes" = "3:0" - "Setting" = "3:1" - "Value" = "8:#1258" - "DefaultValue" = "8:#1258" - "UsePlugInResources" = "11:TRUE" - } - } - } - } - } - "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_FB3C8D56C6904A5287F4A0F9B9983B7E" - { - "Name" = "8:#1900" - "Sequence" = "3:1" - "Attributes" = "3:1" - "Dialogs" - { - "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_386A759EF87D48C2BDC3B54B6AB01D31" - { - "Sequence" = "3:200" - "DisplayName" = "8:Installation Folder" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdFolderDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - "InstallAllUsersVisible" - { - "Name" = "8:InstallAllUsersVisible" - "DisplayName" = "8:#1059" - "Description" = "8:#1159" - "Type" = "3:5" - "ContextData" = "8:1;True=1;False=0" - "Attributes" = "3:0" - "Setting" = "3:0" - "Value" = "3:1" - "DefaultValue" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - } - } - "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_8D986C01A41E4890B16EA03D0A7B2F4A" - { - "Sequence" = "3:300" - "DisplayName" = "8:Confirm Installation" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdConfirmDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - } - } - "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_DD0CAE9874B24127B6377685AA5F4A47" - { - "Sequence" = "3:100" - "DisplayName" = "8:Welcome" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdWelcomeDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - "CopyrightWarning" - { - "Name" = "8:CopyrightWarning" - "DisplayName" = "8:#1002" - "Description" = "8:#1102" - "Type" = "3:3" - "ContextData" = "8:" - "Attributes" = "3:0" - "Setting" = "3:1" - "Value" = "8:#1202" - "DefaultValue" = "8:#1202" - "UsePlugInResources" = "11:TRUE" - } - "Welcome" - { - "Name" = "8:Welcome" - "DisplayName" = "8:#1003" - "Description" = "8:#1103" - "Type" = "3:3" - "ContextData" = "8:" - "Attributes" = "3:0" - "Setting" = "3:1" - "Value" = "8:#1203" - "DefaultValue" = "8:#1203" - "UsePlugInResources" = "11:TRUE" - } - } - } - } - } - } - "MergeModule" - { - } - "ProjectOutput" - { - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_17CBAA1275BC49BCB84FFD88E0DFB83B" - { - "SourcePath" = "8:..\\TaskSplitter11\\obj\\Release\\net6.0-windows\\apphost.exe" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C28DAC9F82D54A01885C0E27F99A46DA" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:PublishItems" - "OutputProjectGuid" = "8:{1BB6B6E8-2B89-4C0C-B8FA-16096401B733}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - } - } -} diff --git a/TaskSplitter11.sln b/TaskSplitter11.sln index 2299b12..5679529 100644 --- a/TaskSplitter11.sln +++ b/TaskSplitter11.sln @@ -1,36 +1,66 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.4.33110.190 +# Visual Studio Version 18 +VisualStudioVersion = 18.8.12021.73 stable MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TaskSplitter11", "TaskSplitter11\TaskSplitter11.csproj", "{1BB6B6E8-2B89-4C0C-B8FA-16096401B733}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Splitter", "Splitter\Splitter.csproj", "{D88803DC-E794-4653-B76F-A5A7C42235D5}" EndProject -Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "Installer", "Installer\Installer.vdproj", "{C1AB077D-77F6-4238-9413-A8C879F4D00D}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{CD6EEF27-01A7-4952-9181-CD24D8276686}" ProjectSection(SolutionItems) = preProject readme.md = readme.md taskbar-split.png = taskbar-split.png EndProjectSection EndProject +Project("{B7DD6F7E-DEF8-4E67-B5B7-07EF123DB6F0}") = "Installer-Wix", "Installer-Wix\Installer-Wix.wixproj", "{82FDE7A6-F93A-446C-A5F5-36853FC3CB76}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {1BB6B6E8-2B89-4C0C-B8FA-16096401B733}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {1BB6B6E8-2B89-4C0C-B8FA-16096401B733}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1BB6B6E8-2B89-4C0C-B8FA-16096401B733}.Debug|x64.ActiveCfg = Debug|Any CPU + {1BB6B6E8-2B89-4C0C-B8FA-16096401B733}.Debug|x64.Build.0 = Debug|Any CPU + {1BB6B6E8-2B89-4C0C-B8FA-16096401B733}.Debug|x86.ActiveCfg = Debug|Any CPU + {1BB6B6E8-2B89-4C0C-B8FA-16096401B733}.Debug|x86.Build.0 = Debug|Any CPU {1BB6B6E8-2B89-4C0C-B8FA-16096401B733}.Release|Any CPU.ActiveCfg = Release|Any CPU {1BB6B6E8-2B89-4C0C-B8FA-16096401B733}.Release|Any CPU.Build.0 = Release|Any CPU + {1BB6B6E8-2B89-4C0C-B8FA-16096401B733}.Release|x64.ActiveCfg = Release|Any CPU + {1BB6B6E8-2B89-4C0C-B8FA-16096401B733}.Release|x64.Build.0 = Release|Any CPU + {1BB6B6E8-2B89-4C0C-B8FA-16096401B733}.Release|x86.ActiveCfg = Release|Any CPU + {1BB6B6E8-2B89-4C0C-B8FA-16096401B733}.Release|x86.Build.0 = Release|Any CPU {D88803DC-E794-4653-B76F-A5A7C42235D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D88803DC-E794-4653-B76F-A5A7C42235D5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D88803DC-E794-4653-B76F-A5A7C42235D5}.Debug|x64.ActiveCfg = Debug|Any CPU + {D88803DC-E794-4653-B76F-A5A7C42235D5}.Debug|x64.Build.0 = Debug|Any CPU + {D88803DC-E794-4653-B76F-A5A7C42235D5}.Debug|x86.ActiveCfg = Debug|Any CPU + {D88803DC-E794-4653-B76F-A5A7C42235D5}.Debug|x86.Build.0 = Debug|Any CPU {D88803DC-E794-4653-B76F-A5A7C42235D5}.Release|Any CPU.ActiveCfg = Release|Any CPU {D88803DC-E794-4653-B76F-A5A7C42235D5}.Release|Any CPU.Build.0 = Release|Any CPU - {C1AB077D-77F6-4238-9413-A8C879F4D00D}.Debug|Any CPU.ActiveCfg = Debug - {C1AB077D-77F6-4238-9413-A8C879F4D00D}.Release|Any CPU.ActiveCfg = Release + {D88803DC-E794-4653-B76F-A5A7C42235D5}.Release|x64.ActiveCfg = Release|Any CPU + {D88803DC-E794-4653-B76F-A5A7C42235D5}.Release|x64.Build.0 = Release|Any CPU + {D88803DC-E794-4653-B76F-A5A7C42235D5}.Release|x86.ActiveCfg = Release|Any CPU + {D88803DC-E794-4653-B76F-A5A7C42235D5}.Release|x86.Build.0 = Release|Any CPU + {82FDE7A6-F93A-446C-A5F5-36853FC3CB76}.Debug|Any CPU.ActiveCfg = Debug|x64 + {82FDE7A6-F93A-446C-A5F5-36853FC3CB76}.Debug|Any CPU.Build.0 = Debug|x64 + {82FDE7A6-F93A-446C-A5F5-36853FC3CB76}.Debug|x64.ActiveCfg = Debug|Any CPU + {82FDE7A6-F93A-446C-A5F5-36853FC3CB76}.Debug|x64.Build.0 = Debug|Any CPU + {82FDE7A6-F93A-446C-A5F5-36853FC3CB76}.Debug|x86.ActiveCfg = Debug|Any CPU + {82FDE7A6-F93A-446C-A5F5-36853FC3CB76}.Debug|x86.Build.0 = Debug|Any CPU + {82FDE7A6-F93A-446C-A5F5-36853FC3CB76}.Release|Any CPU.ActiveCfg = Release|Any CPU + {82FDE7A6-F93A-446C-A5F5-36853FC3CB76}.Release|Any CPU.Build.0 = Release|Any CPU + {82FDE7A6-F93A-446C-A5F5-36853FC3CB76}.Release|x64.ActiveCfg = Release|Any CPU + {82FDE7A6-F93A-446C-A5F5-36853FC3CB76}.Release|x64.Build.0 = Release|Any CPU + {82FDE7A6-F93A-446C-A5F5-36853FC3CB76}.Release|x86.ActiveCfg = Release|Any CPU + {82FDE7A6-F93A-446C-A5F5-36853FC3CB76}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE From caad59991293a29e6cdebdbd2d2123b33ee4178b Mon Sep 17 00:00:00 2001 From: Eric Ogden Date: Fri, 24 Jul 2026 13:58:56 -0700 Subject: [PATCH 3/5] build: retarget app to .NET 10 and drop dead COM reference - Retarget TaskSplitter11 and Splitter from EOL net6.0-windows to net10.0-windows (LTS) - Remove the unused IWshRuntimeLibrary COM reference (shortcuts use WindowsShortcutFactory); the whole solution, including the WiX MSI, now builds with plain "dotnet build" - Update the installer's .NET Desktop Runtime launch condition from 6.0 to 10.0 Co-Authored-By: Claude Opus 4.8 --- Installer-Wix/Installer-Wix.wixproj | 4 ---- Installer-Wix/Package.en-us.wxl | 2 +- Installer-Wix/Package.wxs | 6 +++--- Splitter/Splitter.csproj | 2 +- TaskSplitter11/MainForm.cs | 4 +--- TaskSplitter11/TaskSplitter11.csproj | 14 +------------- 6 files changed, 7 insertions(+), 25 deletions(-) diff --git a/Installer-Wix/Installer-Wix.wixproj b/Installer-Wix/Installer-Wix.wixproj index 6224455..bdcf579 100644 --- a/Installer-Wix/Installer-Wix.wixproj +++ b/Installer-Wix/Installer-Wix.wixproj @@ -4,10 +4,6 @@ Reference the application project so it is built first and its output directory is exposed to the WiX preprocessor as $(var.TaskSplitter11.TargetDir) (used by the harvest in AppComponents.wxs). - - NOTE: TaskSplitter11 has a COM reference (IWshRuntimeLibrary), whose ResolveComReference - task only runs under .NET Framework MSBuild. Build this installer from Visual Studio or - with MSBuild.exe, NOT with "dotnet build". --> diff --git a/Installer-Wix/Package.en-us.wxl b/Installer-Wix/Package.en-us.wxl index 5cccbc8..fd15c8d 100644 --- a/Installer-Wix/Package.en-us.wxl +++ b/Installer-Wix/Package.en-us.wxl @@ -5,6 +5,6 @@ This file contains the declaration of all the localizable strings. - + diff --git a/Installer-Wix/Package.wxs b/Installer-Wix/Package.wxs index 3caaeaf..92254cd 100644 --- a/Installer-Wix/Package.wxs +++ b/Installer-Wix/Package.wxs @@ -26,9 +26,9 @@