mirror of
https://github.com/Difegue/Karen
synced 2025-01-09 04:18:58 +08:00
Start work on Wix#-powered installer
This commit is contained in:
parent
7b171a7da3
commit
aa50f931de
16
Karen.sln
16
Karen.sln
@ -5,16 +5,32 @@ VisualStudioVersion = 16.0.28803.352
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Karen", "Karen\Karen.csproj", "{F7F2AB44-366A-4787-B3C6-72DB7C790C8D}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Setup", "Setup\Setup.csproj", "{44555887-C439-470C-944D-8866EC3D7067}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Debug|x64 = Debug|x64
|
||||
Release|Any CPU = Release|Any CPU
|
||||
Release|x64 = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{F7F2AB44-366A-4787-B3C6-72DB7C790C8D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{F7F2AB44-366A-4787-B3C6-72DB7C790C8D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{F7F2AB44-366A-4787-B3C6-72DB7C790C8D}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{F7F2AB44-366A-4787-B3C6-72DB7C790C8D}.Debug|x64.Build.0 = Debug|x64
|
||||
{F7F2AB44-366A-4787-B3C6-72DB7C790C8D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{F7F2AB44-366A-4787-B3C6-72DB7C790C8D}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{F7F2AB44-366A-4787-B3C6-72DB7C790C8D}.Release|x64.ActiveCfg = Release|x64
|
||||
{F7F2AB44-366A-4787-B3C6-72DB7C790C8D}.Release|x64.Build.0 = Release|x64
|
||||
{44555887-C439-470C-944D-8866EC3D7067}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{44555887-C439-470C-944D-8866EC3D7067}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{44555887-C439-470C-944D-8866EC3D7067}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{44555887-C439-470C-944D-8866EC3D7067}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{44555887-C439-470C-944D-8866EC3D7067}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{44555887-C439-470C-944D-8866EC3D7067}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{44555887-C439-470C-944D-8866EC3D7067}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{44555887-C439-470C-944D-8866EC3D7067}.Release|x64.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
@ -78,15 +78,6 @@
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Emoji.Wpf, Version=0.0.0.18, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Emoji.Wpf.0.0.18-experimental\lib\net30\Emoji.Wpf.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Hardcodet.Wpf.TaskbarNotification, Version=1.0.5.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Hardcodet.NotifyIcon.Wpf.1.0.8\lib\net451\Hardcodet.Wpf.TaskbarNotification.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="HideConsoleOnCloseManaged, Version=1.0.1.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\HideConsoleOnClose.1.0.1\lib\net20\HideConsoleOnCloseManaged.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Drawing" />
|
||||
@ -100,12 +91,6 @@
|
||||
<Reference Include="System.Xaml">
|
||||
<RequiredTargetFramework>4.0</RequiredTargetFramework>
|
||||
</Reference>
|
||||
<Reference Include="Typography.GlyphLayout, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Emoji.Wpf.0.0.18-experimental\lib\net30\Typography.GlyphLayout.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Typography.OpenFont, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Emoji.Wpf.0.0.18-experimental\lib\net30\Typography.OpenFont.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="WindowsBase" />
|
||||
<Reference Include="PresentationCore" />
|
||||
<Reference Include="PresentationFramework" />
|
||||
@ -165,7 +150,6 @@
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
</EmbeddedResource>
|
||||
<None Include="packages.config" />
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
@ -195,12 +179,16 @@
|
||||
<Install>false</Install>
|
||||
</BootstrapperPackage>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Emoji.Wpf">
|
||||
<Version>0.0.18-experimental</Version>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Hardcodet.NotifyIcon.Wpf">
|
||||
<Version>1.0.8</Version>
|
||||
</PackageReference>
|
||||
<PackageReference Include="HideConsoleOnClose">
|
||||
<Version>1.0.1</Version>
|
||||
</PackageReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<Import Project="..\packages\HideConsoleOnClose.1.0.1\build\HideConsoleOnClose.targets" Condition="Exists('..\packages\HideConsoleOnClose.1.0.1\build\HideConsoleOnClose.targets')" />
|
||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||
<PropertyGroup>
|
||||
<ErrorText>Ce projet fait référence à des packages NuGet qui sont manquants sur cet ordinateur. Utilisez l'option de restauration des packages NuGet pour les télécharger. Pour plus d'informations, consultez http://go.microsoft.com/fwlink/?LinkID=322105. Le fichier manquant est : {0}.</ErrorText>
|
||||
</PropertyGroup>
|
||||
<Error Condition="!Exists('..\packages\HideConsoleOnClose.1.0.1\build\HideConsoleOnClose.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\HideConsoleOnClose.1.0.1\build\HideConsoleOnClose.targets'))" />
|
||||
</Target>
|
||||
</Project>
|
@ -1,6 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="Emoji.Wpf" version="0.0.18-experimental" targetFramework="net472" />
|
||||
<package id="Hardcodet.NotifyIcon.Wpf" version="1.0.8" targetFramework="net472" />
|
||||
<package id="HideConsoleOnClose" version="1.0.1" targetFramework="net472" />
|
||||
</packages>
|
6
Setup/App.config
Normal file
6
Setup/App.config
Normal file
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
|
||||
</startup>
|
||||
</configuration>
|
99
Setup/CustomDialog.Designer.cs
generated
Normal file
99
Setup/CustomDialog.Designer.cs
generated
Normal file
@ -0,0 +1,99 @@
|
||||
partial class CustomDialog
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.cancelBtn = new System.Windows.Forms.Button();
|
||||
this.nextBtn = new System.Windows.Forms.Button();
|
||||
this.backBtn = new System.Windows.Forms.Button();
|
||||
this.button1 = new System.Windows.Forms.Button();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// cancelBtn
|
||||
//
|
||||
this.cancelBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.cancelBtn.Location = new System.Drawing.Point(463, 298);
|
||||
this.cancelBtn.Name = "cancelBtn";
|
||||
this.cancelBtn.Size = new System.Drawing.Size(75, 23);
|
||||
this.cancelBtn.TabIndex = 8;
|
||||
this.cancelBtn.Text = "Cancel";
|
||||
this.cancelBtn.UseVisualStyleBackColor = true;
|
||||
this.cancelBtn.Click += new System.EventHandler(this.cancelBtn_Click);
|
||||
//
|
||||
// nextBtn
|
||||
//
|
||||
this.nextBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.nextBtn.Location = new System.Drawing.Point(367, 298);
|
||||
this.nextBtn.Name = "nextBtn";
|
||||
this.nextBtn.Size = new System.Drawing.Size(75, 23);
|
||||
this.nextBtn.TabIndex = 7;
|
||||
this.nextBtn.Text = "Next";
|
||||
this.nextBtn.UseVisualStyleBackColor = true;
|
||||
this.nextBtn.Click += new System.EventHandler(this.nextBtn_Click);
|
||||
//
|
||||
// backBtn
|
||||
//
|
||||
this.backBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.backBtn.Location = new System.Drawing.Point(286, 298);
|
||||
this.backBtn.Name = "backBtn";
|
||||
this.backBtn.Size = new System.Drawing.Size(75, 23);
|
||||
this.backBtn.TabIndex = 6;
|
||||
this.backBtn.Text = "Back";
|
||||
this.backBtn.UseVisualStyleBackColor = true;
|
||||
this.backBtn.Click += new System.EventHandler(this.backBtn_Click);
|
||||
//
|
||||
// button1
|
||||
//
|
||||
this.button1.Location = new System.Drawing.Point(135, 88);
|
||||
this.button1.Name = "button1";
|
||||
this.button1.Size = new System.Drawing.Size(75, 23);
|
||||
this.button1.TabIndex = 9;
|
||||
this.button1.Text = "Test";
|
||||
this.button1.UseVisualStyleBackColor = true;
|
||||
this.button1.Click += new System.EventHandler(this.button1_Click);
|
||||
//
|
||||
// EmptyDialog
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(560, 333);
|
||||
this.Controls.Add(this.button1);
|
||||
this.Controls.Add(this.cancelBtn);
|
||||
this.Controls.Add(this.nextBtn);
|
||||
this.Controls.Add(this.backBtn);
|
||||
this.Name = "CustomDialog";
|
||||
this.Text = "Custom CLR Dialog";
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.Button cancelBtn;
|
||||
private System.Windows.Forms.Button nextBtn;
|
||||
private System.Windows.Forms.Button backBtn;
|
||||
private System.Windows.Forms.Button button1;
|
||||
}
|
41
Setup/CustomDialog.cs
Normal file
41
Setup/CustomDialog.cs
Normal file
@ -0,0 +1,41 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Windows.Forms;
|
||||
using Microsoft.Deployment.WindowsInstaller;
|
||||
using WixSharp;
|
||||
using System.Diagnostics;
|
||||
|
||||
public partial class CustomDialog : WixCLRDialog
|
||||
{
|
||||
public CustomDialog()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
public CustomDialog(Session session)
|
||||
: base(session)
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
void backBtn_Click(object sender, EventArgs e)
|
||||
{
|
||||
MSIBack();
|
||||
|
||||
}
|
||||
|
||||
void nextBtn_Click(object sender, EventArgs e)
|
||||
{
|
||||
MSINext();
|
||||
}
|
||||
|
||||
void cancelBtn_Click(object sender, EventArgs e)
|
||||
{
|
||||
MSICancel();
|
||||
}
|
||||
|
||||
void button1_Click(object sender, EventArgs e)
|
||||
{
|
||||
MessageBox.Show("Test from Custon CLR Dialog", "Wix#");
|
||||
}
|
||||
}
|
120
Setup/CustomDialog.resx
Normal file
120
Setup/CustomDialog.resx
Normal file
@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
57
Setup/Program.cs
Normal file
57
Setup/Program.cs
Normal file
@ -0,0 +1,57 @@
|
||||
using System;
|
||||
using Microsoft.Deployment.WindowsInstaller;
|
||||
using WixSharp;
|
||||
using WixSharp.CommonTasks;
|
||||
using WixSharp.Controls;
|
||||
|
||||
namespace Setup
|
||||
{
|
||||
public class Program
|
||||
{
|
||||
static void Main()
|
||||
{
|
||||
// This project type has been superseded with the EmbeddedUI based "WixSharp Managed Setup - Custom Dialog"
|
||||
// project type. Which provides by far better final result and user experience.
|
||||
// However due to the Burn limitations (see this discussion: https://wixsharp.codeplex.com/discussions/645838)
|
||||
// currently "Custom CLR Dialog" is the only working option for having bootstrapper silent UI displaying
|
||||
// individual MSI packages UI implemented in managed code.
|
||||
|
||||
var project = new Project("MyProduct",
|
||||
new Dir(@"%AppData%\LANraragi",
|
||||
new Files(@"..\Karen\bin\x64\Release\*.*"),
|
||||
new ExeFileShortcut("Uninstall My Product",
|
||||
"[System64Folder]msiexec.exe",
|
||||
"/x [ProductCode]")));
|
||||
|
||||
project.GUID = new Guid("6fe30b47-2577-43ad-9095-1861ba25889b");
|
||||
project.Platform = Platform.x64;
|
||||
|
||||
// Check for x64 Windows 10
|
||||
project.LaunchConditions.Add(new LaunchCondition("VersionNT64","LANraragi for Windows can only be installed on a 64-bit Windows."));
|
||||
project.LaunchConditions.Add(new LaunchCondition("VersionNT>=\"603\"", "LANraragi for Windows can only be installed on Windows 10 and up."));
|
||||
|
||||
// Check for WSL
|
||||
var wslProp = new Property("WSLInstalled", "false");
|
||||
project.AddProperty(wslProp);
|
||||
project.LaunchConditions.Add(new LaunchCondition("WSLInstalled=\"true\"", "You must install the Windows Subsystem for Linux in order to use LANraragi for Windows. Check here: https://docs.microsoft.com/en-us/windows/wsl/install-win10"));
|
||||
|
||||
//Schedule custom dialog between InsallDirDlg and VerifyReadyDlg standard MSI dialogs.
|
||||
project.InjectClrDialog("ShowCustomDialog", NativeDialogs.InstallDirDlg, NativeDialogs.VerifyReadyDlg);
|
||||
//remove LicenceDlg
|
||||
project.RemoveDialogsBetween(NativeDialogs.WelcomeDlg, NativeDialogs.InstallDirDlg);
|
||||
//reference assembly that is needed by the custom dialog
|
||||
//project.DefaultRefAssemblies.Add(<External Asm Location>);
|
||||
|
||||
//project.SourceBaseDir = "<input dir path>";
|
||||
project.OutDir = "bin";
|
||||
|
||||
project.BuildMsi();
|
||||
}
|
||||
|
||||
[CustomAction]
|
||||
public static ActionResult ShowCustomDialog(Session session)
|
||||
{
|
||||
return WixCLRDialog.ShowAsMsiDialog(new CustomDialog(session));
|
||||
}
|
||||
}
|
||||
}
|
36
Setup/Properties/AssemblyInfo.cs
Normal file
36
Setup/Properties/AssemblyInfo.cs
Normal file
@ -0,0 +1,36 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("Setup")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("Setup")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2017")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("44555887-c439-470c-944d-8866ec3d7068")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
97
Setup/Setup.csproj
Normal file
97
Setup/Setup.csproj
Normal file
@ -0,0 +1,97 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{44555887-C439-470C-944D-8866EC3D7067}</ProjectGuid>
|
||||
<OutputType>Exe</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>Setup</RootNamespace>
|
||||
<AssemblyName>WixSharp Setup</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<NuGetPackageImportStamp></NuGetPackageImportStamp>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="BootstrapperCore, Version=3.0.0.0, Culture=neutral, PublicKeyToken=ce35f76fcda82bad, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\WixSharp.bin.1.13.2\lib\BootstrapperCore.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Deployment.WindowsInstaller, Version=3.0.0.0, Culture=neutral, PublicKeyToken=ce35f76fcda82bad, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\WixSharp.bin.1.13.2\lib\Microsoft.Deployment.WindowsInstaller.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="WixSharp, Version=1.13.2.0, Culture=neutral, PublicKeyToken=3775edd25acc43c2, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\WixSharp.bin.1.13.2\lib\WixSharp.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="WixSharp.Msi, Version=1.13.2.0, Culture=neutral, PublicKeyToken=3775edd25acc43c2, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\WixSharp.bin.1.13.2\lib\WixSharp.Msi.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="WixSharp.UI, Version=1.13.2.0, Culture=neutral, PublicKeyToken=3775edd25acc43c2, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\WixSharp.bin.1.13.2\lib\WixSharp.UI.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="CustomDialog.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="CustomDialog.Designer.cs">
|
||||
<DependentUpon>CustomDialog.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<None Include="wix\$(ProjectName).g.wxs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="App.config" />
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="CustomDialog.resx">
|
||||
<DependentUpon>CustomDialog.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<Import Project="..\packages\WixSharp.bin.1.13.2\build\WixSharp.bin.targets" Condition="Exists('..\packages\WixSharp.bin.1.13.2\build\WixSharp.bin.targets')" />
|
||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||
<PropertyGroup>
|
||||
<ErrorText>Ce projet fait référence à des packages NuGet qui sont manquants sur cet ordinateur. Utilisez l'option de restauration des packages NuGet pour les télécharger. Pour plus d'informations, consultez http://go.microsoft.com/fwlink/?LinkID=322105. Le fichier manquant est : {0}.</ErrorText>
|
||||
</PropertyGroup>
|
||||
<Error Condition="!Exists('..\packages\WixSharp.bin.1.13.2\build\WixSharp.bin.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\WixSharp.bin.1.13.2\build\WixSharp.bin.targets'))" />
|
||||
<Error Condition="!Exists('..\packages\WixSharp.1.13.2\build\WixSharp.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\WixSharp.1.13.2\build\WixSharp.targets'))" />
|
||||
</Target>
|
||||
<Import Project="..\packages\WixSharp.1.13.2\build\WixSharp.targets" Condition="Exists('..\packages\WixSharp.1.13.2\build\WixSharp.targets')" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
5
Setup/packages.config
Normal file
5
Setup/packages.config
Normal file
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="WixSharp" version="1.13.2" targetFramework="net40" />
|
||||
<package id="WixSharp.bin" version="1.13.2" targetFramework="net40" />
|
||||
</packages>
|
214
Setup/wix/Setup.g.wxs
Normal file
214
Setup/wix/Setup.g.wxs
Normal file
@ -0,0 +1,214 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
<auto-generated>
|
||||
This code was generated by WixSharp.
|
||||
Changes to this file will be lost if the code is regenerated.
|
||||
</auto-generated>
|
||||
-->
|
||||
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
|
||||
<Product Id="6fe30b47-2577-43ad-9095-1861ca25889c" Name="MyProduct" Language="1033" Codepage="Windows-1252" Version="1.0.0.0" UpgradeCode="6fe30b47-2577-43ad-9095-1861ba25889b" Manufacturer="Vincent">
|
||||
<Package InstallerVersion="200" Compressed="yes" Platform="x64" SummaryCodepage="Windows-1252" Languages="1033" />
|
||||
<Media Id="1" Cabinet="MyProduct.cab" EmbedCab="yes" />
|
||||
|
||||
<Condition Message="LANraragi for Windows can only be installed on a 64-bit Windows.">VersionNT64</Condition>
|
||||
<Condition Message="LANraragi for Windows can only be installed on Windows 10 and up."><![CDATA[VersionNT>="603"]]></Condition>
|
||||
<Condition Message="You must install the Windows Subsystem for Linux in order to use LANraragi for Windows. Check here: https://docs.microsoft.com/en-us/windows/wsl/install-win10">WSLInstalled="true"</Condition>
|
||||
|
||||
<Directory Id="TARGETDIR" Name="SourceDir">
|
||||
<Directory Id="AppDataFolder" Name="AppDataFolder">
|
||||
<Directory Id="INSTALLDIR" Name="LANraragi">
|
||||
|
||||
<Component Id="Component.Emoji.Wpf.dll_229897616" Guid="6fe30b47-2577-43ad-9095-1861a341051c" Win64="yes">
|
||||
<File Id="Emoji.Wpf.dll_229897616" Source="..\Karen\bin\x64\Release\Emoji.Wpf.dll" />
|
||||
|
||||
<RegistryKey Root="HKCU" Key="Software\WixSharp\Used">
|
||||
<RegistryValue Value="0" Type="string" KeyPath="yes" />
|
||||
</RegistryKey>
|
||||
</Component>
|
||||
|
||||
<Component Id="Component.Hardcodet.Wpf.TaskbarNotification.dll_1010392422" Guid="6fe30b47-2577-43ad-9095-1861179f98af" Win64="yes">
|
||||
<File Id="Hardcodet.Wpf.TaskbarNotification.dll_1010392422" Source="..\Karen\bin\x64\Release\Hardcodet.Wpf.TaskbarNotification.dll" />
|
||||
|
||||
<RegistryKey Root="HKCU" Key="Software\WixSharp\Used">
|
||||
<RegistryValue Value="0" Type="string" KeyPath="yes" />
|
||||
</RegistryKey>
|
||||
</Component>
|
||||
|
||||
<Component Id="Component.Hardcodet.Wpf.TaskbarNotification.pdb_508113084" Guid="6fe30b47-2577-43ad-9095-18619a76a676" Win64="yes">
|
||||
<File Id="Hardcodet.Wpf.TaskbarNotification.pdb_508113084" Source="..\Karen\bin\x64\Release\Hardcodet.Wpf.TaskbarNotification.pdb" />
|
||||
|
||||
<RegistryKey Root="HKCU" Key="Software\WixSharp\Used">
|
||||
<RegistryValue Value="0" Type="string" KeyPath="yes" />
|
||||
</RegistryKey>
|
||||
</Component>
|
||||
|
||||
<Component Id="Component.HideConsoleOnClose32.dll_1301435147" Guid="6fe30b47-2577-43ad-9095-1861614fc3ae" Win64="yes">
|
||||
<File Id="HideConsoleOnClose32.dll_1301435147" Source="..\Karen\bin\x64\Release\HideConsoleOnClose32.dll" />
|
||||
|
||||
<RegistryKey Root="HKCU" Key="Software\WixSharp\Used">
|
||||
<RegistryValue Value="0" Type="string" KeyPath="yes" />
|
||||
</RegistryKey>
|
||||
</Component>
|
||||
|
||||
<Component Id="Component.HideConsoleOnClose64.dll_1288720814" Guid="6fe30b47-2577-43ad-9095-1861dfd3d2f2" Win64="yes">
|
||||
<File Id="HideConsoleOnClose64.dll_1288720814" Source="..\Karen\bin\x64\Release\HideConsoleOnClose64.dll" />
|
||||
|
||||
<RegistryKey Root="HKCU" Key="Software\WixSharp\Used">
|
||||
<RegistryValue Value="0" Type="string" KeyPath="yes" />
|
||||
</RegistryKey>
|
||||
</Component>
|
||||
|
||||
<Component Id="Component.HideConsoleOnCloseManaged.dll_867210709" Guid="6fe30b47-2577-43ad-9095-1861664c631e" Win64="yes">
|
||||
<File Id="HideConsoleOnCloseManaged.dll_867210709" Source="..\Karen\bin\x64\Release\HideConsoleOnCloseManaged.dll" />
|
||||
|
||||
<RegistryKey Root="HKCU" Key="Software\WixSharp\Used">
|
||||
<RegistryValue Value="0" Type="string" KeyPath="yes" />
|
||||
</RegistryKey>
|
||||
</Component>
|
||||
|
||||
<Component Id="Component.Karen_Installer.ps1_1407539582" Guid="6fe30b47-2577-43ad-9095-186117baca43" Win64="yes">
|
||||
<File Id="Karen_Installer.ps1_1407539582" Source="..\Karen\bin\x64\Release\Karen-Installer.ps1" />
|
||||
|
||||
<RegistryKey Root="HKCU" Key="Software\WixSharp\Used">
|
||||
<RegistryValue Value="0" Type="string" KeyPath="yes" />
|
||||
</RegistryKey>
|
||||
</Component>
|
||||
|
||||
<Component Id="Component.Karen_Uninstaller.ps1_1629319376" Guid="6fe30b47-2577-43ad-9095-1861337018d5" Win64="yes">
|
||||
<File Id="Karen_Uninstaller.ps1_1629319376" Source="..\Karen\bin\x64\Release\Karen-Uninstaller.ps1" />
|
||||
|
||||
<RegistryKey Root="HKCU" Key="Software\WixSharp\Used">
|
||||
<RegistryValue Value="0" Type="string" KeyPath="yes" />
|
||||
</RegistryKey>
|
||||
</Component>
|
||||
|
||||
<Component Id="Component.Karen.exe_1188372425" Guid="6fe30b47-2577-43ad-9095-186162c7b539" Win64="yes">
|
||||
<File Id="Karen.exe_1188372425" Source="..\Karen\bin\x64\Release\Karen.exe" />
|
||||
|
||||
<RegistryKey Root="HKCU" Key="Software\WixSharp\Used">
|
||||
<RegistryValue Value="0" Type="string" KeyPath="yes" />
|
||||
</RegistryKey>
|
||||
</Component>
|
||||
|
||||
<Component Id="Component.Karen.exe.config_2118951197" Guid="6fe30b47-2577-43ad-9095-18614da5756d" Win64="yes">
|
||||
<File Id="Karen.exe.config_2118951197" Source="..\Karen\bin\x64\Release\Karen.exe.config" />
|
||||
|
||||
<RegistryKey Root="HKCU" Key="Software\WixSharp\Used">
|
||||
<RegistryValue Value="0" Type="string" KeyPath="yes" />
|
||||
</RegistryKey>
|
||||
</Component>
|
||||
|
||||
<Component Id="Component.Karen.pdb_785350063" Guid="6fe30b47-2577-43ad-9095-18611c4ecbfa" Win64="yes">
|
||||
<File Id="Karen.pdb_785350063" Source="..\Karen\bin\x64\Release\Karen.pdb" />
|
||||
|
||||
<RegistryKey Root="HKCU" Key="Software\WixSharp\Used">
|
||||
<RegistryValue Value="0" Type="string" KeyPath="yes" />
|
||||
</RegistryKey>
|
||||
</Component>
|
||||
|
||||
<Component Id="Component.Typography.GlyphLayout.dll_994343102" Guid="6fe30b47-2577-43ad-9095-1861d3cd3ca9" Win64="yes">
|
||||
<File Id="Typography.GlyphLayout.dll_994343102" Source="..\Karen\bin\x64\Release\Typography.GlyphLayout.dll" />
|
||||
|
||||
<RegistryKey Root="HKCU" Key="Software\WixSharp\Used">
|
||||
<RegistryValue Value="0" Type="string" KeyPath="yes" />
|
||||
</RegistryKey>
|
||||
</Component>
|
||||
|
||||
<Component Id="Component.Typography.OpenFont.dll_693950555" Guid="6fe30b47-2577-43ad-9095-18614ee0ab1d" Win64="yes">
|
||||
<File Id="Typography.OpenFont.dll_693950555" Source="..\Karen\bin\x64\Release\Typography.OpenFont.dll" />
|
||||
|
||||
<RegistryKey Root="HKCU" Key="Software\WixSharp\Used">
|
||||
<RegistryValue Value="0" Type="string" KeyPath="yes" />
|
||||
</RegistryKey>
|
||||
</Component>
|
||||
|
||||
<Component Id="Component.Uninstall_My_Product" Guid="6fe30b47-2577-43ad-9095-1861838d17e2" Win64="yes">
|
||||
<Shortcut Id="INSTALLDIR.Uninstall_My_Product" WorkingDirectory="System64Folder" Target="[System64Folder]msiexec.exe" Arguments="/x [ProductCode]" Name="Uninstall My Product.lnk" />
|
||||
|
||||
<CreateFolder />
|
||||
<RemoveFolder Id="INSTALLDIR" On="uninstall" />
|
||||
|
||||
<RegistryKey Root="HKCU" Key="Software\WixSharp\Used">
|
||||
<RegistryValue Value="0" Type="string" KeyPath="yes" />
|
||||
</RegistryKey>
|
||||
</Component>
|
||||
|
||||
</Directory>
|
||||
</Directory>
|
||||
</Directory>
|
||||
|
||||
<UI />
|
||||
|
||||
<UI>
|
||||
<TextStyle Id="WixUI_Font_Normal" FaceName="Tahoma" Size="8" Bold="no" Italic="no" Strike="no" Underline="no" />
|
||||
<TextStyle Id="WixUI_Font_Bigger" FaceName="Tahoma" Size="12" Bold="no" Italic="no" Strike="no" Underline="no" />
|
||||
<TextStyle Id="WixUI_Font_Title" FaceName="Tahoma" Size="9" Bold="yes" Italic="no" Strike="no" Underline="no" />
|
||||
|
||||
<Property Id="DefaultUIFont" Value="WixUI_Font_Normal" />
|
||||
<Property Id="WIXUI_INSTALLDIR" Value="INSTALLDIR" />
|
||||
<Property Id="PIDTemplate" Value="####-####-####-####" />
|
||||
<Property Id="ARPNOMODIFY" Value="1" />
|
||||
|
||||
<DialogRef Id="BrowseDlg" />
|
||||
<DialogRef Id="DiskCostDlg" />
|
||||
<DialogRef Id="ErrorDlg" />
|
||||
<DialogRef Id="FatalError" />
|
||||
<DialogRef Id="FilesInUse" />
|
||||
<DialogRef Id="MsiRMFilesInUse" />
|
||||
<DialogRef Id="PrepareDlg" />
|
||||
<DialogRef Id="ProgressDlg" />
|
||||
<DialogRef Id="ResumeDlg" />
|
||||
<DialogRef Id="UserExit" />
|
||||
|
||||
<Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="LicenseAgreementDlg" Order="1">1</Publish>
|
||||
<Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="InstallDirDlg" Order="5">1</Publish>
|
||||
<Publish Dialog="LicenseAgreementDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg">1</Publish>
|
||||
<Publish Dialog="LicenseAgreementDlg" Control="Next" Event="NewDialog" Value="InstallDirDlg">1</Publish>
|
||||
<Publish Dialog="InstallDirDlg" Control="Back" Event="NewDialog" Value="LicenseAgreementDlg" Order="1">1</Publish>
|
||||
<Publish Dialog="InstallDirDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg" Order="5">1</Publish>
|
||||
<Publish Dialog="InstallDirDlg" Control="Next" Event="SetTargetPath" Value="[WIXUI_INSTALLDIR]" Order="1">1</Publish>
|
||||
<Publish Dialog="InstallDirDlg" Control="Next" Event="DoAction" Value="ShowCustomDialog" Order="2">1</Publish>
|
||||
<Publish Dialog="InstallDirDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg" Order="3"> Custom_UI_Command = "next" </Publish>
|
||||
<Publish Dialog="InstallDirDlg" Control="Next" Event="EndDialog" Value="Exit" Order="2"> Custom_UI_Command = "abort" </Publish>
|
||||
<Publish Dialog="InstallDirDlg" Control="ChangeFolder" Value="[WIXUI_INSTALLDIR]" Property="_BrowseProperty" Order="1">1</Publish>
|
||||
<Publish Dialog="InstallDirDlg" Control="ChangeFolder" Event="SpawnDialog" Value="BrowseDlg" Order="2">1</Publish>
|
||||
<Publish Dialog="CustomizeDlg" Control="Back" Event="NewDialog" Value="InstallDirDlg">1</Publish>
|
||||
<Publish Dialog="CustomizeDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
|
||||
<Publish Dialog="MaintenanceWelcomeDlg" Control="Next" Event="NewDialog" Value="MaintenanceTypeDlg">1</Publish>
|
||||
<Publish Dialog="MaintenanceTypeDlg" Control="Back" Event="NewDialog" Value="MaintenanceWelcomeDlg">1</Publish>
|
||||
<Publish Dialog="MaintenanceTypeDlg" Control="RepairButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
|
||||
<Publish Dialog="MaintenanceTypeDlg" Control="RemoveButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
|
||||
<Publish Dialog="ExitDialog" Control="Finish" Event="EndDialog" Value="Return" Order="9999">1</Publish>
|
||||
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="DoAction" Value="ShowCustomDialog" Order="1">1</Publish>
|
||||
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="InstallDirDlg" Order="2"> Custom_UI_Command = "back" </Publish>
|
||||
</UI>
|
||||
|
||||
<CustomAction Id="ShowCustomDialog" BinaryKey="ShowCustomDialog_File" DllEntry="ShowCustomDialog" Return="check" Execute="immediate" />
|
||||
|
||||
<Binary Id="ShowCustomDialog_File" SourceFile="bin\%this%.CA.dll" />
|
||||
|
||||
<UIRef Id="WixUI_Common" />
|
||||
<UIRef Id="WixUI_ErrorProgressText" />
|
||||
|
||||
<Property Id="WSLInstalled" Value="false" />
|
||||
|
||||
<Feature Id="Complete" Title="Complete" Absent="allow" Level="1">
|
||||
<ComponentRef Id="Component.Emoji.Wpf.dll_229897616" />
|
||||
<ComponentRef Id="Component.Hardcodet.Wpf.TaskbarNotification.dll_1010392422" />
|
||||
<ComponentRef Id="Component.Hardcodet.Wpf.TaskbarNotification.pdb_508113084" />
|
||||
<ComponentRef Id="Component.HideConsoleOnClose32.dll_1301435147" />
|
||||
<ComponentRef Id="Component.HideConsoleOnClose64.dll_1288720814" />
|
||||
<ComponentRef Id="Component.HideConsoleOnCloseManaged.dll_867210709" />
|
||||
<ComponentRef Id="Component.Karen_Installer.ps1_1407539582" />
|
||||
<ComponentRef Id="Component.Karen_Uninstaller.ps1_1629319376" />
|
||||
<ComponentRef Id="Component.Karen.exe_1188372425" />
|
||||
<ComponentRef Id="Component.Karen.exe.config_2118951197" />
|
||||
<ComponentRef Id="Component.Karen.pdb_785350063" />
|
||||
<ComponentRef Id="Component.Typography.GlyphLayout.dll_994343102" />
|
||||
<ComponentRef Id="Component.Typography.OpenFont.dll_693950555" />
|
||||
<ComponentRef Id="Component.Uninstall_My_Product" />
|
||||
</Feature>
|
||||
|
||||
</Product>
|
||||
</Wix>
|
||||
|
Loading…
Reference in New Issue
Block a user