MSIX, Windows का नवीनतम पैकेजिंग फ़ॉर्मैट है। यह sandbox-आधारित तरीके से काम करता है, इसलिए registry या file association जैसे system बदलाव अलग-थलग रहते हैं, और uninstall करने पर कोई भी अवशेष नहीं बचता। MSIXBundle के जरिए x64, x86, ARM64 को एक ही फ़ाइल में भी रखा जा सकता है।

समस्या deployment की है।

MSIX को Store के बाहर install करने के लिए user को developer mode चालू करना पड़ता है, PowerShell खोलना पड़ता है, और certificate पर trust करना पड़ता है। डेवलपर के लिए यह सामान्य प्रक्रिया है, लेकिन आम user के लिए ये सब बड़े अवरोध हैं। Electron या Tauri से app बनाने पर भी कई frameworks MSIX packaging को support नहीं करते।

इसीलिए मैंने इसे बनाया। MSIX Installer Generator एक ऐसा टूल है जो MSIX packaging से लेकर double-click EXE installer generation तक सब कुछ एक साथ संभालता है।

इसकी शुरुआत कैसे हुई

शुरुआत में इस project का MSIX से कोई संबंध नहीं था।

मैं WinUI 3 से बने app को Store के बाहर distribute करने के लिए .atp नाम का अपना package format इस्तेमाल करने वाला एक installer framework बना रहा था। इसकी संरचना ऐसी थी कि 7z से compress करके installer को दिया जाता था, और registry registration या Start Menu shortcut creation जैसे काम installer संभालता था। साधारण EXE packaging के लिए यह काफ़ी अच्छी तरह काम भी कर रहा था।

इसी बीच अचानक ख़याल आया, "MSIX इस्तेमाल करें तो sandbox भी मिलती है, तो इससे installer बनाया जाए तो कैसा रहेगा?" मौजूदा .atp तरीका सुविधाजनक तो था, लेकिन आख़िरकार वह registry में सीधे लिखने और AppData में folder बनाने वाली पारंपरिक installation पद्धति ही थी, इसलिए साफ़ uninstall की गारंटी नहीं थी। MSIX इस्तेमाल करने पर Windows अपने आप sandbox isolation संभालता है, और delete करते समय कोई भी अवशेष नहीं छोड़ता।

इसलिए मैंने MSIX installation support जोड़ना शुरू किया, लेकिन करते-करते समस्या यह निकली कि certificate generation, manifest writing, और packaging—सब कुछ user को खुद करना पड़ता था। कई frameworks ऐसे भी हैं जो MSIX packaging को support ही नहीं करते। आख़िरकार packaging तक को automate करने वाला टूल बन गया, और अब यह MSIX packaging से लेकर EXE installer configuration तक सब कुछ एक साथ संभालने वाले रूप में आ गया है।

मैं कौन-सी समस्या हल करना चाहता था

MSIX से distribute करने पर user experience बहुत ख़राब था।

  • "developer mode चालू करें" → user घबरा जाता है
  • "PowerShell को administrator अधिकारों के साथ खोलकर command डालें" → और ज़्यादा घबरा जाता है
  • "certificate पर trust करें" → सबसे ज़्यादा घबरा जाता है

मैं पारंपरिक EXE installer की उस आसानी को, जिसमें बस double-click करने से काम पूरा हो जाता है, और MSIX के sandbox फ़ायदों को एक साथ पाना चाहता था।

MSIX Installer Generator क्या करता है

मोटे तौर पर यह दो काम करता है।

1. MSIX packaging

certificate generation, manifest writing, और build output packaging को GUI में संभालता है। Framework MSIX packaging को support न भी करे, तो सिर्फ़ build output folder बताना काफ़ी है। x64, ARM64 जैसी architecture-वार folders जोड़ने पर यह PE header पढ़कर उन्हें अपने आप पहचान लेता है, और single .msix या multi-architecture .msixbundle बना देता है।

2. EXE installer configuration

बने हुए MSIX को एक standalone EXE installer में बदल देता है, जो सिर्फ़ एक double-click से install हो जाता है। Sideloading के लिए ज़रूरी सभी प्रक्रियाएँ (certificate install, dependency handling आदि) installer खुद संभालता है। User के नज़रिए से बस installer download करके चलाना होता है, और काम ख़त्म। न PowerShell दिखता है, न developer mode, न certificate prompt।

CLI टूल भी उपलब्ध है

GUI के अलावा CLI टूल(aticmsixgen) भी NuGet पर उपलब्ध है। CI या AI automation workflows में command line से MSIX packaging और EXE configuration दोनों पूरे किए जा सकते हैं। यह NativeAOT से build किया गया runtime dependency-रहित single executable है।

dotnet tool install --global aticmsixgen  

certificate generation, manifest writing, MSIX packaging, और EXE configuration—सब कुछ CLI से किया जा सकता है।

ऐसे लोगों के लिए यह ख़ास तौर पर उपयोगी है

  • जो MSIX से distribute करना चाहते हैं, लेकिन sideloading प्रक्रिया उन्हें बोझिल लगती है
  • जो Electron, Tauri, WPF जैसे frameworks इस्तेमाल करते हैं, जिनमें MSIX packaging का built-in support नहीं है
  • जो x64, ARM64 जैसी कई architectures को एक ही installer में distribute करना चाहते हैं
  • जो CI में MSIX packaging और EXE configuration को automate करना चाहते हैं

लिंक

यह MIT license के तहत है, और feedback या issues GitHub पर छोड़ सकते हैं। चाहें तो Hindi में भी लिख सकते हैं।

अभी कोई टिप्पणी नहीं है.

अभी कोई टिप्पणी नहीं है.