ILSpy

ILSpy هو متصفح ومفكك تجميعات .NET مفتوح المصدر ويعمل عبر الأنظمة. تعمل واجهة سطح المكتب على Windows وLinux وmacOS (مبنية على Avalonia).
التنزيل: أحدث إصدار | أحدث بناء CI (master) | Microsoft Store (إصدارات RTM فقط)
واجهات المفكك
بالإضافة إلى واجهة سطح المكتب عبر الأنظمة ILSpy (القابلة للتنزيل عبر Releases، انظر أيضًا الإضافات)، تتوفر الواجهات الأخرى التالية:
- Visual Studio 2022/2026 يأتي مع دعم فك الترجمة لمفتاح F12 مفعّلاً افتراضيًا (باستخدام محركاتنا v8.2 و v9.1 على التوالي).
- إضافة Visual Studio 2022 الخاصة بنا سوق البرامج (تعمل أيضًا مع VS 2026)
- إضافة Visual Studio Code الخاصة بنا المستودع | سوق البرامج | open-vsx
- أداة dotnet الخاصة بنا لأنظمة Linux/Mac/Windows - اطّلع على ILSpyCmd في هذا المستودع | تثبيت أداة dotnet
- C# for Visual Studio Code يشتمل أيضًا على دعم فك الترجمة. لتفعيله، فعّل الإعداد "Enable Decompilation Support".
- في Visual Studio 2019، يجب عليك تمكين دعم F12 يدويًا. انتقل إلى Tools / Options / Text Editor / C# / Advanced وحدّد خيار "Enable navigation to decompiled source"
- حزم NuGet الخاصة بنا ICSharpCode.Decompiler و ILSpyX لمشاريعك الخاصة
- أوامر PowerShell الخاصة بنا PowerShell cmdlets لأنظمة Linux/Mac/Windows في هذا المستودع
الميزات
- فك الترجمة إلى C# (اطّلع على حالة دعم اللغة)
- فك ترجمة المشروع بأكمله
- الفتح من خلاصة NuGet، الفتح من عملية قيد التشغيل بالإضافة إلى القرص وGAC (نظام Windows فقط)
- البحث عن الأنواع/الأساليب/الخصائص (تعرّف على الخيارات)
- تنقّل قائم على الروابط التشعبية بين الأنواع/الأساليب/الخصائص، إشارات مرجعية
- تنقّل بين الأنواع الأساسية/المشتقة، سجل التصفح
- مستكشف بيانات التجميع الوصفية (جولة في الميزة)
- مفكك BAML إلى XAML، دعم !AvaloniaResources
- دعم ثنائيات ReadyToRun لـ.NET Core (راجع الدليل التعليمي)
- قابل للتوسيع عبر الإضافات
- ميزات إضافية في إصدارات DEBUG (للمطورين)
الترخيص
يتم توزيع ILSpy بموجب رخصة MIT. يرجى الاطلاع على وثيقة About للحصول على التفاصيل، وكذلك إشعارات الأطراف الثالثة للمكتبات مفتوحة المصدر المضمنة.
كيفية البناء
Windows:
- تأكد من تثبيت Windows PowerShell (الإصدار 5.0 على الأقل) أو PowerShell 7+.
- استنسخ مستودع ILSpy باستخدام git.
- نفّذ
git submodule update --init --recursive لتنزيل الوحدة الفرعية ILSpy-Tests (المستخدمة في بعض حالات الاختبار).
- ثبّت Visual Studio (الإصدار الموثق: 18.0/2026). تحتاج إلى مكونات عبء العمل التالية:
- عبء العمل ".NET Desktop Development". يتضمن عبء العمل هذا .NET Framework 4.8 SDK وحزمة استهداف .NET Framework 4.7.2، بالإضافة إلى .NET 10.0 SDK (يستهدف ILSpy.csproj .NET 10.0، لكن لدينا أيضًا مشاريع net472). تتطلب اختبارات الوحدة لدينا .NET 11.0 SDK.
- عبء العمل "Visual Studio extension development" (ملاحظة: ILSpy.VSExtensions.slnx منفصل عن ILSpy.sln وبالتالي فإن عبء العمل هذا اختياري)
- المكوّن الفردي "MSVC v143 - VS 2022 C++ x64/x86 build tools" (أو ما شابه)
- مجموعة أدوات VC++ اختيارية؛ إذا كانت موجودة، تُستخدم لـ
editbin.exe لتعديل حجم المكدس المستخدم بواسطة ILSpy.exe من 1MB إلى 16MB، لأن المفكك يستخدم بشكل كبير العودية (recursion)، حيث تؤدي أحجام المكدس الصغيرة إلى مشاكل في الأساليب شديدة التعقيد.
- افتح ILSpy.sln في Visual Studio.
- ستقوم استعادة حزم NuGet تلقائيًا بتنزيل تبعيات إضافية
- شغّل مشروع "ILSpy" لواجهة ILSpy
- استخدم "Test Explorer" في Visual Studio لعرض/تشغيل الاختبارات
- إذا كنت مهتمًا فقط بمجموعة فرعية معينة من ILSpy، يمكنك أيضًا استخدام
- ILSpy.Desktop.slnf: لواجهة Avalonia عبر الأنظمة واختباراتها
- ILSpy.XPlat.slnf: لواجهة سطر الأوامر عبر الأنظمة (ilspycmd) أو أوامر PowerShell
- ILSpy.VSExtensions.slnx: لإضافات Visual Studio
ملاحظة: يتضمن Visual Studio إصدارًا من .NET SDK يديره مثبّت Visual Studio - بمجرد التحديث، قد تتم ترقيته أيضًا.
يرجى ملاحظة أن ILSpy متوافق فقط مع .NET 11.0 SDK وسيرفض Visual Studio تحميل بعض المشاريع في الحل (وستفشل اختبارات الوحدة).
إذا حدثت هذه المشكلة، يرجى تثبيت .NET 11.0 SDK يدويًا من هنا.
Unix / Mac:
- تأكد من تثبيت .NET 10.0 SDK (للتشغيل) و .NET 11.0 SDK (للاختبارات).
- تأكد من تثبيت PowerShell (المعروف سابقًا باسم PowerShell Core)
- استنسخ المستودع باستخدام git.
- نفّذ
git submodule update --init --recursive لتنزيل الوحدة الفرعية ILSpy-Tests (المستخدمة في بعض حالات الاختبار).
- استخدم
dotnet build ILSpy.Desktop.slnf لبناء واجهة سطح المكتب عبر الأنظمة Avalonia؛ وشغّلها باستخدام dotnet run --project ILSpy.
- استخدم
dotnet build ILSpy.XPlat.slnf لبناء أداة سطر الأوامر فقط (ilspycmd) وأوامر PowerShell.
كيفية المساهمة
المساهمون الحاليون والسابقون المساهمون.
سياسة الخصوصية لـ ILSpy
لا يجمع ILSpy أي معلومات شخصية قابلة للتحديد (PII)، ولا يرسل ملفات المستخدم إلى خدمات الطرف الثالث.
لا يستخدم ILSpy أي خدمة APM (إدارة أداء التطبيقات) لجمع بيانات القياس عن بُعد أو المقاييس.