مثبّت Windows لتطبيق Go أو Rust (مترجَم من أي نظام تشغيل)
ترجم برنامج Go أو Rust لنظام Windows من أي نظام تشغيل، وضمّن أيقونة، وأخفِ نافذة الطرفية في التطبيقات الرسومية، وغلّف ملف .exe الواحد (مع أي موارد) في Setup.exe مع اختصارات وأداة إلغاء تثبيت.
آخر تحديث 31 أكتوبر 2026 · 3 دقائق قراءة
يُنتج كل من Go وRust ملف .exe واحدًا ثابت الربط لنظام Windows من جهاز Mac أو Linux، وهذا جزء كبير من جاذبيتهما لأدوات سطح المكتب. ومع ذلك، ما زال المستخدمون يتوقعون تثبيت ذلك الملف .exe بدلًا من إبقائه في مجلد التنزيلات. يستعرض هذا الدليل خيارات البناء المهمة وكيفية تحويل الملف الثنائي إلى Setup.exe من دون لمس Windows حتى يحين وقت الاختبار.
Go
قم بالترجمة المتقاطعة مع تحديد الهدف في متغيرات البيئة:
GOOS=windows GOARCH=amd64 go build -ldflags "-s -w" -o MyApp.exe .
- يزيل الخيار
-s -wجداول الرموز ومعلومات التنقيح، ما يقلّص حجم الملف الثنائي. - للتطبيقات الرسومية (Fyne أو Wails أو Walk أو webview)، أضف
-H windowsguiداخل-ldflagsحتى لا تُفتح نافذة طرفية:-ldflags "-s -w -H windowsgui". - اضبط
GOARCH=386لبناء 32 بت، وarm64لنظام Windows على ARM.
الأيقونة ومعلومات الإصدار. لا تملك Go طريقة مدمجة لتضمين أيقونة Windows. تُولّد أداة go-winres ملف موارد .syso من وصف JSON صغير وملف .ico الخاص بك؛ ضع ملف .syso في الحزمة وسيلتقطه go build تلقائيًا. من دونه، يعرض الملف .exe الأيقونة العامة، لكن اختصارات المثبّت ستستخدم مع ذلك الأيقونة التي ترفعها.
Rust
على Windows، يعمل الهدف الافتراضي:
cargo build --release
من macOS أو Linux، استهدف سلسلة أدوات GNU، التي تقوم بالترجمة المتقاطعة عند تثبيت MinGW:
rustup target add x86_64-pc-windows-gnu
cargo build --release --target x86_64-pc-windows-gnu
تمثّل cargo-xwin بديلًا يقوم بالترجمة المتقاطعة لهدف MSVC.
- للتطبيقات الرسومية، أضف
#![windows_subsystem = "windows"]في أعلىmain.rsلإخفاء نافذة الطرفية. - لتضمين أيقونة ومعلومات الإصدار، استخدم crate باسم
winresأوembed-resourceمنbuild.rsمع ملف.rcيشير إلىapp.ico. - اضبط
opt-level = "z"وlto = trueوstrip = trueفي ملف تعريف release للحصول على ملف ثنائي أصغر.
ما الذي ترفعه
ملف .exe واحد: ارفعه مباشرة إلى ExeTup؛ لا حاجة إلى ملف zip. يمنحه المثبّت مكانًا في Program Files (أو في مجلد المستخدم) مع اختصارات وأداة إلغاء تثبيت.
ملف .exe مع موارد (قالب إعدادات، أو موارد ويب لتطبيق webview، أو مجلد data/): اضغطها معًا في ملف zip بهيكل المجلدات الذي يتوقعه البرنامج أثناء التشغيل، ثم ارفع ملف zip. بدلًا من ذلك، ارفع الملف .exe وأضف الملفات الإضافية في خطوة «ملفات أخرى»؛ في الحالتين تُوضع بجوار البرنامج.
ثم أدخل الاسم والإصدار والناشر، واختر نطاق التثبيت والمعمارية، وارفع ملف .ico، وابدأ البناء. اختبر النتيجة على Windows؛ راجع خيارات الاختبار من دون جهاز Windows.
أدوات سطر الأوامر
صُممت المثبّتات لتطبيقات سطح المكتب، لكن أدوات سطر الأوامر تستفيد منها أيضًا: موقع معروف، وإدخال لإلغاء التثبيت، ونشر صامت باستخدام /S لفرق تقنية المعلومات. تنبيهان:
- لا يضيف المثبّت المجلد إلى
PATH. أخبر المستخدمين بمجلد التثبيت، أو اجعل الأداة تعرض إضافة نفسها عند التشغيل الأول. - تُوضع التثبيتات الخاصة بالمستخدم في
%LOCALAPPDATA%\Programs\MyApp، وهو مسار يمكن للمستخدمين الوصول إليه من دون صلاحيات المسؤول.
للأدوات الموجهة إلى المطورين، قد تناسب ملفات التعريف (manifests) الخاصة بـ winget أو scoop جمهورك أكثر من المثبّت؛ ويمكنها الإشارة إلى الملف .exe الموقّع نفسه.
ملاحظات
- الاستدلال في برامج مكافحة الفيروسات. الملفات الثنائية الحديثة غير الموقّعة وثابتة الربط من Go وRust تُطلق أحيانًا إنذارات الماسحات الاستدلالية. المثبّت الذي يضع البرنامج في Program Files يساعد قليلًا؛ أما توقيع الكود فيساعد كثيرًا. راجع دليل SmartScreen.
- لا بيئة تشغيل ولا متطلبات مسبقة. تربط كلتا اللغتين بيئة التشغيل داخل الملف الثنائي. يوزّع المثبّت الملف الثنائي كما هو.
- التحديثات. يستبدل المثبّت الجديد ذو رقم الإصدار الأعلى الملفات في مكانها.
الأسئلة الشائعة
هل يمكنني رفع ملف .exe فقط؟
نعم. يُقبل ملف .exe واحد بمفرده، ويوفّر المثبّت مع ذلك الاختصارات وأداة إلغاء التثبيت والإدخال في إعدادات Windows.
هل أحتاج إلى Windows لبناء المثبّت؟
لا. ابنِ الملف الثنائي على نظام التشغيل الخاص بك وارفعه، وسيترجم ExeTup المثبّت في السحابة. لا يلزم Windows إلا لاختبار النتيجة.
لماذا يفتح تطبيق Go الرسومي الخاص بي نافذة طرفية سوداء؟
ابنِ باستخدام -ldflags "-H windowsgui". في Rust، أضف #![windows_subsystem = "windows"] إلى main.rs.
كيف أضع أيقونتي على ملف .exe نفسه؟
ضمّنها كمورد Windows: go-winres لـ Go، وcrate باسم winres أو embed-resource لـ Rust. ارفع ملف .ico نفسه في ExeTup للمثبّت والاختصارات.
أدلة ذات صلة
- إنشاء مثبّت Windows على Mac أو Linuxخياراتك لبناء Setup.exe عندما تطوّر على macOS أو Linux، من التصريف المتقاطع عبر NSIS إلى بناء يتم بالكامل في المتصفح، وكيف تختبر النتيجة دون امتلاك حاسوب Windows.
- تحويل ملف .exe إلى مثبّت Windows (من exe إلى Setup.exe)كيف تحوّل ملف .exe عاديًا، أو مجلدًا يحتوي على ملف .exe، إلى مثبّت Windows حقيقي مع اختصارات وبرنامج إلغاء تثبيت، دون كتابة أي سكربت تثبيت.
- التثبيت الصامت لملف Setup.exe: مفتاح /S والمجلد المخصص والنشركيفية تشغيل Setup.exe مبني على NSIS بصمت باستخدام /S، واختيار المجلد عبر /D=، وإلغاء التثبيت بصمت، ونشر المثبّت عبر Intune أو PDQ أو سكربت.