ڈاٹ فسکیٹر میں سسٹم.XML نام کی جگہ میں کلاسیں استعمال کرنے والی اسمبلیوں کو ختم کرنے سے بچیں جو غلطیوں کا سبب بنیں گی۔
علامات کی جانچ پڑتال
ایک نیا پروجیکٹ بنائیں۔ یہ ونڈوز فارم یا ڈبلیو پی ایف ہو سکتا ہے، لیکن یہاں ہم ڈبلیو پی ایف ایپلی کیشن بنا رہے ہیں۔
ان کلاسوں کو استعمال کرنے کے لیے کوڈ لکھیں جو سسٹم.ایکس ایم ایل نیم اسپیس سے تعلق رکھتی ہیں۔ یہاں ہم "ایکس ایم ایل دستاویز" اور "ایکس ایم ایل نوڈ" کی کلاسیں درج ذیل استعمال کرتے ہیں۔
using System.Windows;
using System.Xml;
namespace DotfuscatorTest
{
<summary>MainWindow.xaml の相互作用ロジック</;summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
XmlDocument doc = new XmlDocument();
doc.LoadXml("<a></a>");
XmlNode node = doc.FirstChild;
}
}
}
تعمیر کرنے کے بعد مینیو میں موجود ٹولز میں سے "پری ایمپمینٹیڈو ڈاٹفسکیٹر اینڈ اینالیٹکس" منتخب کریں اور اسے لانچ کریں۔
آپ کی بنائی ہوئی .exe مسل شامل کریں اور اسے بنائیں۔
پھر، درج ذیل نقص پیغام ظاہر ہوتا ہے اور تعمیر ناکام ہو جاتی ہے۔
یہ ایک منتظم ماڈیول نہیں ہے (ج:\پروگرام مسلیں (٪86)\حوالہ اسمبلیاں\Mmtmt\فریم ورک\سلورلائٹ\وی4.0\پروفائل\ونڈوز فون71\جا\نظام.ایکس ایم ایل.dll). نقص بنائیں۔
میں نے یہ جاننے کی کوشش کی کہ اس غلطی کی وجہ کیا ہے، لیکن مجھے اس کا واضح جواب نہیں مل سکا۔ اس بات کو مدنظر رکھتے ہوئے کہ انگریزی سائٹ پر کوئی معلومات نہیں ہیں اور سسٹم.ایکس ایم ایل.dll راستے میں "این" ہے، آپ اندازہ لگا سکتے ہیں کہ یہ انگریزی ماحول کے علاوہ ایک منفرد غلطی ہے۔
ورک اراؤنڈڈسمنٹ
اگرچہ یہ پروجیکٹ ونڈوز کلائنٹ سسٹم.ایکس ایم ایل .dll کا حوالہ دیتا ہے، جب آپ ڈاٹفسکیٹر کے ساتھ تعمیر کرتے ہیں، یہ ونڈوز فون سسٹم ڈاٹ ایکس ایم ایل میں اسمبلی کا حوالہ دیتا ہے.dll لہذا ہم نے مقامی طور پر زبردستی سسٹم.ایکس ایم ایل نقل کیا.dll میں اس کا حوالہ دے کر غلطیوں کی تعمیر سے بچنا چاہوں گا۔
پروجیکٹ کے حوالہ جات کھولیں، دائیں کلک نظام.ایکس ملی لیٹر، اور خواص کا انتخاب کریں۔
مقامی نقل میں شے کو صحیح میں تبدیل کریں۔
جب آپ اس حالت میں تعمیر کرتے ہیں، "سسٹم.ایکس ایم ایل.dll" .exe فائل کے ساتھ مل کر آؤٹ پٹ ہوتا ہے۔
ڈاٹفسکیٹر کھولیں اور اسمبلی کے ساتھ "سسٹم.ایکس ایم ایل.dll" شامل کریں جو آپ ختم کرنا چاہتے ہیں۔ یہ اسمبلی کو اس لئے روکتا ہے تاکہ یہ نصب فریم ورک کے ڈی ایل ایل کا حوالہ نہ دے اور مقامی ڈی ایل ایل کو دیکھے۔
نوٹ کریں کہ سسٹم.ایکس ایم ایل.dll پراپرٹی لائبریری موڈ چیک کرتا ہے۔ اس چیک کے بغیر سسٹم.ایکس ایم ایل.dll کو بھی ختم کیا جاسکتا ہے، اور اس کے حوالہ جات والے طبقاتی نام تبدیل ہو سکتے ہیں۔ یقینا، اگر کلاس کا نام تبدیل ہو جاتا ہے، تو آپ عام طور پر ایپلی کیشن شروع نہیں کر سکیں گے۔
اگر آپ اس ریاست میں تعمیر کریں گے تو یہ کامیابی سے مکمل ہوگا۔
آپ یقین کر سکتے ہیں کہ اوبفسکیٹڈ ایپلی کیشن بغیر کسی پریشانی کے خود ہی لانچ ہوتی ہے۔
یہاں پیش کیا گیا مواد کسی حد تک مشکل طریقے سے ایک کام ہے، لہذا ہم اس بات کی ضمانت نہیں دے سکتے کہ یہ ان اسمبلیوں کے لئے بھی موثر ہوگا جو اس کے مطابق تعمیر کی گئی ہیں۔ یہاں تک کہ اگر تعمیر کامیاب ہے اور شروع کیا جا سکتا ہے, اس امکان سے انکار نہیں ہے کہ یہ ایک مخصوص عمل انجام دیتے وقت گر جائے گا, تو براہ مہربانی رہائی سے پہلے آپریشن کو ٹھیک سے چیک کریں.
یہاں تک کہ اگر یہ سسٹم.ایکس ایم ایل نیم اسپیس تک محدود نہیں ہے، اوبفسکیشن ایک حساس خصوصیت ہے جسے آپ کو اس بات کو یقینی بنانے کی ضرورت ہے کہ مستقل مزاجی برقرار رہے۔ خاص طور پر، عکاسی کا استعمال کرتے وقت، میں/او سے متعلق چیزیں جیسے فائل آئی/او اور بیرونی اے پی آئی کے ساتھ تعامل متاثر ہونے کا امکان ہے، لہذا محتاط رہیں۔