Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
67 changes: 67 additions & 0 deletions Installer-Wix/AppComponents.wxs
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">

<!--
Application payload.

Harvested from the TaskSplitter11 build output ($(var.TaskSplitter11.TargetDir)),
which contains:
TaskSplitter11.exe / .dll / .deps.json / .runtimeconfig.json (the app)
Splitter.exe / .dll / .deps.json / .runtimeconfig.json (copied to the
user's Documents
at runtime)
WindowsShortcutFactory.dll (shortcut creation)
Shortcuts\ReadMe.txt (placeholder folder)

Debug symbols (*.pdb) are excluded. The subdirectory structure (Shortcuts\) is
recreated automatically under INSTALLFOLDER.
-->
<Fragment>
<ComponentGroup Id="ApplicationFiles" Directory="INSTALLFOLDER">
<Files Include="$(var.TaskSplitter11.TargetDir)**">
<Exclude Files="$(var.TaskSplitter11.TargetDir)**.pdb" />
</Files>
</ComponentGroup>
</Fragment>

<!--
Desktop + Start Menu shortcuts to the main executable (both were present in the old
.vdproj). These are non-advertised shortcuts pointing at the installed exe. Each lives
in its own component keyed by a per-user (HKCU) registry value.

The HKCU keypath makes each shortcut per-user (installed for the user running setup),
which is the standard WiX shortcut pattern and satisfies ICE57. DesktopFolder and
ProgramMenuFolder therefore resolve to the current user's profile rather than the
"All Users" profile the old .vdproj used.
-->
<Fragment>
<ComponentGroup Id="ApplicationShortcuts">
<Component Id="StartMenuShortcut" Directory="ProgramMenuFolder">
<Shortcut Id="StartMenuShortcut"
Name="Task Separator 11"
Target="[INSTALLFOLDER]TaskSplitter11.exe"
WorkingDirectory="INSTALLFOLDER"
Icon="AppIcon.ico" />
<RegistryValue Root="HKCU"
Key="Software\SiCo\Task Separator 11"
Name="StartMenuShortcut"
Type="integer"
Value="1"
KeyPath="yes" />
</Component>

<Component Id="DesktopShortcut" Directory="DesktopFolder">
<Shortcut Id="DesktopShortcut"
Name="Task Separator 11"
Target="[INSTALLFOLDER]TaskSplitter11.exe"
WorkingDirectory="INSTALLFOLDER"
Icon="AppIcon.ico" />
<RegistryValue Root="HKCU"
Key="Software\SiCo\Task Separator 11"
Name="DesktopShortcut"
Type="integer"
Value="1"
KeyPath="yes" />
</Component>
</ComponentGroup>
</Fragment>
</Wix>
18 changes: 18 additions & 0 deletions Installer-Wix/Folders.wxs
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
<Fragment>
<!--
Install location: Program Files\SiCo\Task Separator 11
(matches the old .vdproj default of [ProgramFilesFolder][Manufacturer]\[ProductName]).
ProgramFiles6432Folder resolves to the native "Program Files" for the package platform.
-->
<StandardDirectory Id="ProgramFiles6432Folder">
<Directory Id="ManufacturerFolder" Name="!(bind.Property.Manufacturer)">
<Directory Id="INSTALLFOLDER" Name="!(bind.Property.ProductName)" />
</Directory>
</StandardDirectory>

<!-- Shortcut destinations -->
<StandardDirectory Id="ProgramMenuFolder" />
<StandardDirectory Id="DesktopFolder" />
</Fragment>
</Wix>
17 changes: 17 additions & 0 deletions Installer-Wix/Installer-Wix.wixproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<Project Sdk="WixToolset.Sdk/7.0.0">

<!--
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
<Files> harvest in AppComponents.wxs).
-->
<ItemGroup>
<ProjectReference Include="..\TaskSplitter11\TaskSplitter11.csproj" />
</ItemGroup>

<!-- Provides netfx:DotNetCompatibilityCheck (the .NET Desktop Runtime launch condition). -->
<ItemGroup>
<PackageReference Include="WixToolset.Netfx.wixext" Version="7.0.0" />
</ItemGroup>

</Project>
10 changes: 10 additions & 0 deletions Installer-Wix/Package.en-us.wxl
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<!--
This file contains the declaration of all the localizable strings.
-->
<WixLocalization xmlns="http://wixtoolset.org/schemas/v4/wxl" Culture="en-US">

<String Id="DowngradeError" Value="A newer version of [ProductName] is already installed." />

<String Id="DotNetRuntimeMissing" Value="[ProductName] requires the .NET Desktop Runtime 10.0 (x64). Please install it from https://dotnet.microsoft.com/download/dotnet/10.0 and then run this installer again." />

</WixLocalization>
56 changes: 56 additions & 0 deletions Installer-Wix/Package.wxs
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"
xmlns:netfx="http://wixtoolset.org/schemas/v4/wxs/netfx">

<!--
Task Separator 11 installer.

Converted from the legacy Visual Studio setup project (Installer\Installer.vdproj).
The UpgradeCode below is intentionally the SAME GUID the old .vdproj used, so this
package is recognised as a major upgrade of any existing Task Separator 11 install
(rather than installing side-by-side).

Notes:
* ProductCode is deliberately not set, so a fresh one is generated on every build.
Combined with <MajorUpgrade/> this gives proper "uninstall old, install new"
upgrade behaviour.
* WiX v6 prefers Package/@Id over @UpgradeCode for brand new products, but we keep
@UpgradeCode here to stay compatible with the already-shipped .vdproj installer.
-->
<Package
Name="Task Separator 11"
Manufacturer="SiCo"
Version="1.0.2"
UpgradeCode="BB2FFC59-BD81-4C0C-A847-1D88E7052BE7"
Scope="perMachine">

<MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />

<!--
Require the .NET Desktop Runtime that the app targets (net10.0-windows).
The check sets DOTNETRUNTIMECHECK to "0" when a compatible runtime is found.
RollForward="minor" keeps it within major 10 (any 10.x), matching the app's own
default roll-forward behaviour - so we don't let setup succeed on a machine where
the app would still fail to launch. Platform x64 covers the AnyCPU app running
64-bit (the case for effectively all modern Windows).
-->
<netfx:DotNetCompatibilityCheck
Property="DOTNETRUNTIMECHECK"
RuntimeType="desktop"
Platform="x64"
Version="10.0.0"
RollForward="minor" />
<Launch
Condition="Installed OR DOTNETRUNTIMECHECK = &quot;0&quot;"
Message="!(loc.DotNetRuntimeMissing)" />

<!-- Add/Remove Programs metadata carried over from the old setup project -->
<Icon Id="AppIcon.ico" SourceFile="..\TaskSplitter11\icons\icons8-taskbar-96.ico" />
<Property Id="ARPPRODUCTICON" Value="AppIcon.ico" />
<Property Id="ARPCONTACT" Value="Drummer_si" />

<Feature Id="Main" Title="Task Separator 11" Level="1">
<ComponentGroupRef Id="ApplicationFiles" />
<ComponentGroupRef Id="ApplicationShortcuts" />
</Feature>
</Package>
</Wix>
Loading