diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index b8afb79d..7189441d 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -128,9 +128,7 @@ jobs:
       uses: actions/upload-artifact@v4
       with:
         name: geode-installer-win
-        path: |
-          ./installer/windows/geode-installer-win.exe
-          ./installer/windows/GeodeUninstaller.exe
+        path: './installer/windows/geode-installer-win.exe'
 
     - name: Complete Build Debug Info
       uses: ./.github/actions/build-debug-info-post
@@ -337,9 +335,7 @@ jobs:
       - name: Zip Windows Artifacts
         uses: vimtor/action-zip@v1.2
         with:
-          files: >-
-            geode-win/XInput1_4.dll geode-win/Geode.dll geode-win/Geode.lib geode-win/Geode.pdb
-            geode-win/GeodeUpdater.exe geode-installer-win/GeodeUninstaller.exe
+          files: geode-win/XInput1_4.dll geode-win/Geode.dll geode-win/GeodeUpdater.exe geode-win/Geode.lib geode-win/Geode.pdb
           dest: geode-${{ steps.ref.outputs.hash }}-win.zip
 
       - name: Zip Android32 Artifacts
diff --git a/installer/windows/installer.nsi b/installer/windows/installer.nsi
index 6cb93087..0acb82f2 100644
--- a/installer/windows/installer.nsi
+++ b/installer/windows/installer.nsi
@@ -491,23 +491,6 @@ Section "steam_appid.txt"
 SectionEnd
 
 Function .onInit
-    # huge thanks to Anders for the reference !!
-    # https://forums.winamp.com/forum/developer-center/nsis-discussion/4633037-creating-an-uninstaller-in-compile-time?p=4633073#post4633073
-!ifdef GENERATE_UNINSTALLER
-    WriteUninstaller "${__FILEDIR__}\GeodeUninstaller.exe"
-    SetErrorLevel 0
-    Quit
-!else
-    ; get a temporary file path
-    !tempfile TMPINST
-    !delfile "${TMPINST}"
-
-    ; create and run the installer that just uses WriteUninstaller
-    !makensis "-DGENERATE_UNINSTALLER $\"${__FILE__}$\" $\"-XOutFile '${TMPINST}.exe'$\""
-    !system '"${TMPINST}.exe" /S'
-    !delfile "${TMPINST}.exe"
-!endif
-
     !insertmacro MUI_LANGDLL_DISPLAY
 
     IntOp $0 ${SF_SELECTED} | ${SF_RO}