diff --git a/GazeWebSocketServer.sln b/GazeWebSocketServer.sln
index b754b70..c429ceb 100644
--- a/GazeWebSocketServer.sln
+++ b/GazeWebSocketServer.sln
@@ -7,20 +7,38 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GazeWebSocketServer", "Gaze
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TrackerBridge", "TrackerBridge\TrackerBridge.csproj", "{64D52257-ECA7-4F4D-A901-B14D544A1D0A}"
EndProject
+Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "MsiSetup", "MsiSetup\MsiSetup.wixproj", "{5A80ED30-7CA5-4A10-B2AB-7B3FE10FF56B}"
+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
{F8F11E64-7946-4054-8C27-F0FCAF967F1A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F8F11E64-7946-4054-8C27-F0FCAF967F1A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F8F11E64-7946-4054-8C27-F0FCAF967F1A}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {F8F11E64-7946-4054-8C27-F0FCAF967F1A}.Debug|x86.Build.0 = Debug|Any CPU
{F8F11E64-7946-4054-8C27-F0FCAF967F1A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F8F11E64-7946-4054-8C27-F0FCAF967F1A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {F8F11E64-7946-4054-8C27-F0FCAF967F1A}.Release|x86.ActiveCfg = Release|Any CPU
+ {F8F11E64-7946-4054-8C27-F0FCAF967F1A}.Release|x86.Build.0 = Release|Any CPU
{64D52257-ECA7-4F4D-A901-B14D544A1D0A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{64D52257-ECA7-4F4D-A901-B14D544A1D0A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {64D52257-ECA7-4F4D-A901-B14D544A1D0A}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {64D52257-ECA7-4F4D-A901-B14D544A1D0A}.Debug|x86.Build.0 = Debug|Any CPU
{64D52257-ECA7-4F4D-A901-B14D544A1D0A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{64D52257-ECA7-4F4D-A901-B14D544A1D0A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {64D52257-ECA7-4F4D-A901-B14D544A1D0A}.Release|x86.ActiveCfg = Release|Any CPU
+ {64D52257-ECA7-4F4D-A901-B14D544A1D0A}.Release|x86.Build.0 = Release|Any CPU
+ {5A80ED30-7CA5-4A10-B2AB-7B3FE10FF56B}.Debug|Any CPU.ActiveCfg = Debug|x86
+ {5A80ED30-7CA5-4A10-B2AB-7B3FE10FF56B}.Debug|x86.ActiveCfg = Debug|x86
+ {5A80ED30-7CA5-4A10-B2AB-7B3FE10FF56B}.Debug|x86.Build.0 = Debug|x86
+ {5A80ED30-7CA5-4A10-B2AB-7B3FE10FF56B}.Release|Any CPU.ActiveCfg = Release|x86
+ {5A80ED30-7CA5-4A10-B2AB-7B3FE10FF56B}.Release|x86.ActiveCfg = Release|x86
+ {5A80ED30-7CA5-4A10-B2AB-7B3FE10FF56B}.Release|x86.Build.0 = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/MsiSetup/MsiSetup.wax b/MsiSetup/MsiSetup.wax
new file mode 100644
index 0000000..af5619b
Binary files /dev/null and b/MsiSetup/MsiSetup.wax differ
diff --git a/MsiSetup/MsiSetup.wixproj b/MsiSetup/MsiSetup.wixproj
new file mode 100644
index 0000000..a23fa4e
--- /dev/null
+++ b/MsiSetup/MsiSetup.wixproj
@@ -0,0 +1,58 @@
+
+
+
+ Debug
+ x86
+ 3.10
+ 5a80ed30-7ca5-4a10-b2ab-7b3fe10ff56b
+ 2.0
+ GazeWSS
+ Package
+
+
+ bin\$(Configuration)\
+ obj\$(Configuration)\
+ Debug
+
+
+ bin\$(Configuration)\
+ obj\$(Configuration)\
+
+
+
+
+
+
+
+
+
+ GazeWebSocketServer
+ {f8f11e64-7946-4054-8c27-f0fcaf967f1a}
+ True
+ True
+ Binaries;Content;Satellites
+ INSTALLFOLDER
+
+
+ TrackerBridge
+ {64d52257-eca7-4f4d-a901-b14d544a1d0a}
+ True
+ True
+ Binaries;Content;Satellites
+ INSTALLFOLDER
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/MsiSetup/Product.wxs b/MsiSetup/Product.wxs
new file mode 100644
index 0000000..ddf1980
--- /dev/null
+++ b/MsiSetup/Product.wxs
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+