Start working with wix
ADD
WalletWasabi.WindowsInstaller/Common.wxl
+<?xml version="1.0" encoding="utf-8"?>
+<WixLocalization Culture="en-us" xmlns="http://schemas.microsoft.com/wix/2006/localization">
+
+ <String Id="Company">zkSNACKs</String>
+
+ <String Id="Language">1033</String>
+
+ <String Id="Version">1.0.0.0</String>
+
+ <String Id="Description">Privacy focused, ZeroLink compliant Bitcoin wallet.</String>
+ <String Id="Keywords">bitcoin,cryptocurrency,blockchain,privacy,fungibility,anonymity</String>
+ <String Id="Comments">Easy Peasy Lemon Squeezey</String>
+
+</WixLocalization>

ADD
WalletWasabi.WindowsInstaller/Components.wxs
+<?xml version="1.0" encoding="UTF-8"?>
+<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
+ <Fragment>
+ <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
+ <!-- TODO: Remove the comments around this Component element and the ComponentRef below in order to add resources to this installer. -->
+ <!-- <Component Id="ProductComponent"> -->
+ <!-- TODO: Insert files, registry keys, and other resources here. -->
+ <!-- </Component> -->
+ </ComponentGroup>
+ </Fragment>
+</Wix>

ADD
WalletWasabi.WindowsInstaller/Directories.wxs
+<?xml version="1.0" encoding="UTF-8"?>
+<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
+ <Fragment>
+ <Directory Id="TARGETDIR" Name="SourceDir">
+ <Directory Id="ProgramFilesFolder">
+ <Directory Id="INSTALLFOLDER" Name="WalletWasabi.WindowsInstaller" />
+ </Directory>
+ </Directory>
+ </Fragment>
+</Wix>

ADD
WalletWasabi.WindowsInstaller/Product.wxs
+<?xml version="1.0" encoding="UTF-8"?>
+
+<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
+ <Product
+ Id="{A6DC3C45-5F3A-4664-A3C1-295060146597}"
+ Name="Wasabi"
+ Language="!(loc.Language)"
+ Version="!(loc.Version)"
+ Manufacturer="!(loc.Company)"
+ UpgradeCode="{D8E80773-D8CF-4031-B8B3-AA750AF0B413}">
+
+ <Package
+ InstallerVersion="200"
+ Compressed="yes"
+ InstallScope="perMachine"
+ Platform = "x64"
+ Manufacturer="!(loc.Company)"
+ Description="!(loc.Description)"
+ Keywords="!(loc.Keywords)"
+ Comments="!(loc.Comments)"
+ Languages="!(loc.Language)"/>
+
+ <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
+ <MediaTemplate
+ EmbedCab="yes"/>
+
+ <Feature Id="ProductFeature" Title="Wasabi" Level="1">
+ <ComponentGroupRef Id="ProductComponents" />
+ </Feature>
+ </Product>
+</Wix>

ADD
WalletWasabi.WindowsInstaller/WalletWasabi.WindowsInstaller.wixproj
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" InitialTargets="EnsureWixToolsetInstalled" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">x86</Platform>
+ <ProductVersion>3.10</ProductVersion>
+ <ProjectGuid>54654468-4f58-4253-84bd-6f53a8d3d2c4</ProjectGuid>
+ <SchemaVersion>2.0</SchemaVersion>
+ <OutputName>WalletWasabi.WindowsInstaller</OutputName>
+ <OutputType>Package</OutputType>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
+ <OutputPath>bin\$(Configuration)\</OutputPath>
+ <IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
+ <DefineConstants>Debug</DefineConstants>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
+ <OutputPath>bin\$(Configuration)\</OutputPath>
+ <IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
+ </PropertyGroup>
+ <ItemGroup>
+ <Compile Include="Components.wxs" />
+ <Compile Include="Directories.wxs" />
+ <Compile Include="Product.wxs" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\WalletWasabi.Gui\WalletWasabi.Gui.csproj">
+ <Name>WalletWasabi.Gui</Name>
+ <Project>{b007dc0f-8c86-439d-be3c-283218d8308b}</Project>
+ <Private>True</Private>
+ <DoNotHarvest>True</DoNotHarvest>
+ <RefProjectOutputGroups>Binaries;Content;Satellites</RefProjectOutputGroups>
+ <RefTargetDir>INSTALLFOLDER</RefTargetDir>
+ </ProjectReference>
+ </ItemGroup>
+ <ItemGroup>
+ <EmbeddedResource Include="Common.wxl" />
+ </ItemGroup>
+ <Import Project="$(WixTargetsPath)" Condition=" '$(WixTargetsPath)' != '' " />
+ <Import Project="$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets" Condition=" '$(WixTargetsPath)' == '' AND Exists('$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets') " />
+ <Target Name="EnsureWixToolsetInstalled" Condition=" '$(WixTargetsImported)' != 'true' ">
+ <Error Text="The WiX Toolset v3.11 (or newer) build tools must be installed to build this project. To download the WiX Toolset, see http://wixtoolset.org/releases/" />
+ </Target>
+ <!--
+ To modify your build process, add your task inside one of the targets below and uncomment it.
+ Other similar extension points exist, see Wix.targets.
+ <Target Name="BeforeBuild">
+ </Target>
+ <Target Name="AfterBuild">
+ </Target>
+ -->
+</Project>
\ No newline at end of file

MODIFY
WalletWasabi.sln
WalletWasabi.sln
@@ -40,58 +40,112 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AvalonStudio.Shell.Extensib
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AvalonStudio.Shell", "WalletWasabi.Dependencies\AvalonStudio.Shell\src\AvalonStudio.Shell\AvalonStudio.Shell.csproj", "{137F0B24-7A4C-4D80-9218-43CA71793004}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WalletWasabi.Packager", "WalletWasabi.Packager\WalletWasabi.Packager.csproj", "{8BE916A0-1F3F-4757-BAD9-BFBAB8EAC3C2}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WalletWasabi.Packager", "WalletWasabi.Packager\WalletWasabi.Packager.csproj", "{8BE916A0-1F3F-4757-BAD9-BFBAB8EAC3C2}"
+EndProject
+Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "WalletWasabi.WindowsInstaller", "WalletWasabi.WindowsInstaller\WalletWasabi.WindowsInstaller.wixproj", "{54654468-4F58-4253-84BD-6F53A8D3D2C4}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
+ Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
+ Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{A378E063-1660-472F-9CB2-0A3E96A56A63}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A378E063-1660-472F-9CB2-0A3E96A56A63}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A378E063-1660-472F-9CB2-0A3E96A56A63}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {A378E063-1660-472F-9CB2-0A3E96A56A63}.Debug|x86.Build.0 = Debug|Any CPU
{A378E063-1660-472F-9CB2-0A3E96A56A63}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A378E063-1660-472F-9CB2-0A3E96A56A63}.Release|Any CPU.Build.0 = Release|Any CPU
+ {A378E063-1660-472F-9CB2-0A3E96A56A63}.Release|x86.ActiveCfg = Release|Any CPU
+ {A378E063-1660-472F-9CB2-0A3E96A56A63}.Release|x86.Build.0 = Release|Any CPU
{50BDFA09-7575-4EEE-B733-D41B65B06D00}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{50BDFA09-7575-4EEE-B733-D41B65B06D00}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {50BDFA09-7575-4EEE-B733-D41B65B06D00}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {50BDFA09-7575-4EEE-B733-D41B65B06D00}.Debug|x86.Build.0 = Debug|Any CPU
{50BDFA09-7575-4EEE-B733-D41B65B06D00}.Release|Any CPU.ActiveCfg = Release|Any CPU
{50BDFA09-7575-4EEE-B733-D41B65B06D00}.Release|Any CPU.Build.0 = Release|Any CPU
+ {50BDFA09-7575-4EEE-B733-D41B65B06D00}.Release|x86.ActiveCfg = Release|Any CPU
+ {50BDFA09-7575-4EEE-B733-D41B65B06D00}.Release|x86.Build.0 = Release|Any CPU
{526AC796-6CC0-4ADA-9A7E-C12267719A1A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{526AC796-6CC0-4ADA-9A7E-C12267719A1A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {526AC796-6CC0-4ADA-9A7E-C12267719A1A}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {526AC796-6CC0-4ADA-9A7E-C12267719A1A}.Debug|x86.Build.0 = Debug|Any CPU
{526AC796-6CC0-4ADA-9A7E-C12267719A1A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{526AC796-6CC0-4ADA-9A7E-C12267719A1A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {526AC796-6CC0-4ADA-9A7E-C12267719A1A}.Release|x86.ActiveCfg = Release|Any CPU
+ {526AC796-6CC0-4ADA-9A7E-C12267719A1A}.Release|x86.Build.0 = Release|Any CPU
{B007DC0F-8C86-439D-BE3C-283218D8308B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B007DC0F-8C86-439D-BE3C-283218D8308B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B007DC0F-8C86-439D-BE3C-283218D8308B}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {B007DC0F-8C86-439D-BE3C-283218D8308B}.Debug|x86.Build.0 = Debug|Any CPU
{B007DC0F-8C86-439D-BE3C-283218D8308B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B007DC0F-8C86-439D-BE3C-283218D8308B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B007DC0F-8C86-439D-BE3C-283218D8308B}.Release|x86.ActiveCfg = Release|Any CPU
+ {B007DC0F-8C86-439D-BE3C-283218D8308B}.Release|x86.Build.0 = Release|Any CPU
{982B6A08-B082-4499-AD2A-148F6E0D78FA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{982B6A08-B082-4499-AD2A-148F6E0D78FA}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {982B6A08-B082-4499-AD2A-148F6E0D78FA}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {982B6A08-B082-4499-AD2A-148F6E0D78FA}.Debug|x86.Build.0 = Debug|Any CPU
{982B6A08-B082-4499-AD2A-148F6E0D78FA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{982B6A08-B082-4499-AD2A-148F6E0D78FA}.Release|Any CPU.Build.0 = Release|Any CPU
+ {982B6A08-B082-4499-AD2A-148F6E0D78FA}.Release|x86.ActiveCfg = Release|Any CPU
+ {982B6A08-B082-4499-AD2A-148F6E0D78FA}.Release|x86.Build.0 = Release|Any CPU
{2F57A7D4-37DB-4A8C-9CC4-A103979984C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2F57A7D4-37DB-4A8C-9CC4-A103979984C5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2F57A7D4-37DB-4A8C-9CC4-A103979984C5}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {2F57A7D4-37DB-4A8C-9CC4-A103979984C5}.Debug|x86.Build.0 = Debug|Any CPU
{2F57A7D4-37DB-4A8C-9CC4-A103979984C5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2F57A7D4-37DB-4A8C-9CC4-A103979984C5}.Release|Any CPU.Build.0 = Release|Any CPU
+ {2F57A7D4-37DB-4A8C-9CC4-A103979984C5}.Release|x86.ActiveCfg = Release|Any CPU
+ {2F57A7D4-37DB-4A8C-9CC4-A103979984C5}.Release|x86.Build.0 = Release|Any CPU
{8DFA8B3F-5958-4F96-972F-BD403222BD1C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8DFA8B3F-5958-4F96-972F-BD403222BD1C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8DFA8B3F-5958-4F96-972F-BD403222BD1C}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {8DFA8B3F-5958-4F96-972F-BD403222BD1C}.Debug|x86.Build.0 = Debug|Any CPU
{8DFA8B3F-5958-4F96-972F-BD403222BD1C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8DFA8B3F-5958-4F96-972F-BD403222BD1C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {8DFA8B3F-5958-4F96-972F-BD403222BD1C}.Release|x86.ActiveCfg = Release|Any CPU
+ {8DFA8B3F-5958-4F96-972F-BD403222BD1C}.Release|x86.Build.0 = Release|Any CPU
{EFC84E8A-5674-43D0-9EC6-25497CA68CF3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EFC84E8A-5674-43D0-9EC6-25497CA68CF3}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {EFC84E8A-5674-43D0-9EC6-25497CA68CF3}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {EFC84E8A-5674-43D0-9EC6-25497CA68CF3}.Debug|x86.Build.0 = Debug|Any CPU
{EFC84E8A-5674-43D0-9EC6-25497CA68CF3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EFC84E8A-5674-43D0-9EC6-25497CA68CF3}.Release|Any CPU.Build.0 = Release|Any CPU
+ {EFC84E8A-5674-43D0-9EC6-25497CA68CF3}.Release|x86.ActiveCfg = Release|Any CPU
+ {EFC84E8A-5674-43D0-9EC6-25497CA68CF3}.Release|x86.Build.0 = Release|Any CPU
{74C919FA-3EC1-49FE-B8B6-A8BF2173470D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{74C919FA-3EC1-49FE-B8B6-A8BF2173470D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {74C919FA-3EC1-49FE-B8B6-A8BF2173470D}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {74C919FA-3EC1-49FE-B8B6-A8BF2173470D}.Debug|x86.Build.0 = Debug|Any CPU
{74C919FA-3EC1-49FE-B8B6-A8BF2173470D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{74C919FA-3EC1-49FE-B8B6-A8BF2173470D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {74C919FA-3EC1-49FE-B8B6-A8BF2173470D}.Release|x86.ActiveCfg = Release|Any CPU
+ {74C919FA-3EC1-49FE-B8B6-A8BF2173470D}.Release|x86.Build.0 = Release|Any CPU
{137F0B24-7A4C-4D80-9218-43CA71793004}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{137F0B24-7A4C-4D80-9218-43CA71793004}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {137F0B24-7A4C-4D80-9218-43CA71793004}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {137F0B24-7A4C-4D80-9218-43CA71793004}.Debug|x86.Build.0 = Debug|Any CPU
{137F0B24-7A4C-4D80-9218-43CA71793004}.Release|Any CPU.ActiveCfg = Release|Any CPU
{137F0B24-7A4C-4D80-9218-43CA71793004}.Release|Any CPU.Build.0 = Release|Any CPU
+ {137F0B24-7A4C-4D80-9218-43CA71793004}.Release|x86.ActiveCfg = Release|Any CPU
+ {137F0B24-7A4C-4D80-9218-43CA71793004}.Release|x86.Build.0 = Release|Any CPU
{8BE916A0-1F3F-4757-BAD9-BFBAB8EAC3C2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8BE916A0-1F3F-4757-BAD9-BFBAB8EAC3C2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8BE916A0-1F3F-4757-BAD9-BFBAB8EAC3C2}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {8BE916A0-1F3F-4757-BAD9-BFBAB8EAC3C2}.Debug|x86.Build.0 = Debug|Any CPU
{8BE916A0-1F3F-4757-BAD9-BFBAB8EAC3C2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8BE916A0-1F3F-4757-BAD9-BFBAB8EAC3C2}.Release|Any CPU.Build.0 = Release|Any CPU
+ {8BE916A0-1F3F-4757-BAD9-BFBAB8EAC3C2}.Release|x86.ActiveCfg = Release|Any CPU
+ {8BE916A0-1F3F-4757-BAD9-BFBAB8EAC3C2}.Release|x86.Build.0 = Release|Any CPU
+ {54654468-4F58-4253-84BD-6F53A8D3D2C4}.Debug|Any CPU.ActiveCfg = Debug|x86
+ {54654468-4F58-4253-84BD-6F53A8D3D2C4}.Debug|x86.ActiveCfg = Debug|x86
+ {54654468-4F58-4253-84BD-6F53A8D3D2C4}.Debug|x86.Build.0 = Debug|x86
+ {54654468-4F58-4253-84BD-6F53A8D3D2C4}.Release|Any CPU.ActiveCfg = Release|x86
+ {54654468-4F58-4253-84BD-6F53A8D3D2C4}.Release|x86.ActiveCfg = Release|x86
+ {54654468-4F58-4253-84BD-6F53A8D3D2C4}.Release|x86.Build.0 = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

Start working with wix