সি # সংকলক দ্বারা উত্পাদিত এমএসআইএল / সিআইএল আমি কীভাবে দেখতে পারি? কেন এটি সমাবেশ বলা হয়?


130

আমি নেট নেট # প্রোগ্রামিংয়ে নতুন আমি কয়েকটি বই অনুসরণ করছি বলা হয় এটি সরাসরি বাইনারি কোড (নেটিভ কোড) এ সংকলনের পরিবর্তে। উচ্চ স্তরের কোডটি মধ্যবর্তী ভাষায় রূপান্তরিত হয় (এমএসআইএল ওরফে সিআইএল নামে পরিচিত)। তবে আমি যখন সংকলন করি তখন আমি একটি এক্সি / ডিএল ফাইল পাই।

  1. এই এমএসআইএল / সিআইএল কি এই এক্স / ডিএল ফাইল অন্তর্ভুক্ত?
  2. আমি সেই মধ্যবর্তী ভাষার কোডটি দেখতে চাই। শুধু তার অস্তিত্ব অনুভব করতে। কিভাবে এটি দেখতে?
  3. তারা এই EXE / dll ফাইলটিকে কল করছে assembly। তারা কি বাইনারি কোড (নেটিভ কোড) ধারণকৃত এক্স / ডেল ফাইল থেকে এই পার্থক্য করার জন্য এই "অভিনব শব্দ" ব্যবহার করছেন?

উত্তর:


95
  1. হ্যাঁ, এটি আরও সঠিকভাবে পিই ফাইলের.text বিভাগে (পোর্টেবল এক্সিকিউটেবল = *। এক্সি বা * .ডিএল)। আরও তথ্য এখানে পাওয়া যাবে
  2. আইএলএসপিএস ব্যবহার করা সবচেয়ে ভাল পছন্দ (প্রতিচ্ছবি আর মুক্ত নয়)। এটি একটি ফ্রি বিচ্ছিন্নযোগ্য যা আপনার সমাবেশকে এমএসআইএলে বিচ্ছিন্ন করতে পারে তবে সি #, ভিবি (কিছুটা হলেও) ( .NET ফ্রেমওয়ার্ক এসডিকে আইএলডাসম রয়েছে, এটি অফিসিয়াল এমএসআইএল বিচ্ছিন্নকরণকারী।
  3. হ্যাঁ হ্যাঁ অ্যাসেম্বলি এমন একটি ফাইল যা এমএসআইএল কোড এবং সংশ্লিষ্ট মেটাডেটা ধারণ করে। এটি প্রতি সে পি পি ফাইলগুলিতে সীমাবদ্ধ নয়, তবে সমস্ত বর্তমান সিএলআর বাস্তবায়ন সেগুলি ব্যবহার করে।

আমি যদি সেই বিষয়েও একটি ভাল বইয়ের সুপারিশ করতে পারি তবে এটি সার্জ লিডিনের বিশেষজ্ঞ। নেট 2.0 আইএল এসেমব্লার। তিনিই সেই লোক, যিনি এমএসআইএল ডিজাইন করেছিলেন।


অপেক্ষা কর এটি .textযৌনমিলনে অবস্থিত নয় ? তা না হলে কী .textথাকে? এবং #আমার মনে হয়েছিল যে বিভাগগুলি দিয়ে শুরু হয়েছে তার নাম দিয়েছি .। সুতরাং souldn't এটা হতে.strings

আমি কৌতূহলী, কেন আইএলডাসম সুপারিশ করা হয় না? এটি কি কেবল (ভিজ্যুয়াল স্টুডিওর কয়েকটি সংস্করণ) অন্তর্ভুক্ত রয়েছে?
সিনজাই

2
উভয়েরই জায়গা রয়েছে তবে বেশিরভাগ (> 99.99%) ব্যবহারকারীদের জন্য আইএলএসপিএস সঠিক পছন্দ। আইএল কোডটি সি # ইস্পটে পুনরায় বিভক্ত করার ক্ষমতাটি দ্রুত নেভিগেট এবং ইঞ্জিনিয়ারিং অ্যাসেমব্লিগুলির জন্য অমূল্য। যদি আপনি এমন কিছু করছেন যা কাঁচা আইএল নির্গত করে (যেমন আপনি একটি সংকলক লিখছেন বা অ্যাসেম্বলি আইএল পুনর্লিখন করছেন, উদাহরণস্বরূপ মনো.সিসিল দিয়ে) তবে আইএলডাসম কাজে আসে কারণ এটি আপনাকে আইএল, টোকেন টেবিল ইত্যাদির আবার কাঁচা কাঠামো প্রদর্শন করতে পারে Again , বেশিরভাগ নন-আইএল বিশেষজ্ঞরা সেগুলি দ্বারা বিভ্রান্ত হবেন, সুতরাং আইএলএসপি সম্ভবত আপনার যা প্রয়োজন এবং প্রয়োজন।
জোহানেস রুডল্ফ

3
বাহ, দ্রুত প্রতিক্রিয়া 7 বছর পরে! আমি আইএল নিয়ে খুব বেশি গণ্ডগোল করিনি, বা সমস্ত অপশন তুলনা করেছি (যার কারণে আমি প্রথম স্থানে জিজ্ঞাসা করছি), তবে লিনকিপ্যাডে কি এই ক্ষয়কারী বৈশিষ্ট্যটি নেই?
সিনজাই

আমি এটি ভিএস 2017 এ ইনস্টল করেছি, আইএলএসপিওয়াইতে কোডটি দেখার জন্য ক্লিক করলে কিছুই ঘটে না।
অনিরুদ্ধ গুপ্ত

46

সি # এর স্নিপেটের জন্য আইএল দেখার আমার পছন্দের একটি উপায় হ'ল ফ্রি লিনকিপ্যাড সরঞ্জামটি ব্যবহার করা । কিছু কোড প্রবেশ করানোর পরে এবং শীর্ষে "সি # স্টেটমেন্ট" বা ("সি # প্রোগ্রাম", যেটি স্যুট) বেছে নেওয়ার পরে, কোড এন্ট্রি অঞ্চলের নীচে "আইএল" বোতামটি ক্লিক করুন, এবং আপনি উত্পন্ন আইএল দেখতে পাবেন।

এর জন্য লিনকিউপ্যাড ব্যবহার করা ভিজ্যুয়াল স্টুডিও লোড করা বা কমান্ড লাইন থেকে সংকলক চালানো, তারপরে ILDASM লোড করা এবং টেক্সট সম্পাদকের সাহায্যে .il ফাইল খোলার চেয়ে অনেক বেশি সুবিধাজনক।


আর একটি ভাল সরঞ্জাম হ'ল রিফ্লেক্টরের জন্য স্নিপ্পি
টমাস

সুন্দর! আমি ভোট দিয়েছি তবে আপনাকে যদি কোনও কাস্টম ক্লাস অন্তর্ভুক্ত করতে হয় তবে এটি কিছুটা জটিল। তবুও, আমি সত্যিই এটি পছন্দ করি!
অ্যান্ড্রু স্টিৎজ 8'18

28

আপনি যদি অনলাইনে এটি চান তবে। নেট ফিডল দুর্দান্ত। কেবল আপনার কোডটি পেস্ট করুন এবং View ILউপরের ডানদিকে বিকল্পটি ক্লিক করুন ।


2
মনে হচ্ছে এখন ভেঙে গেছে।
লুক মোরার

@ নওফাল এখানেও ভেঙেছে। আমি এটি ব্যবহার করতাম।
aloisdg

তবুও আরও একটি অনলাইন সমাধান রয়েছে: শার্পলব.আইও । আরো তথ্যের জন্য এই উত্তর চেক করুন: stackoverflow.com/a/51457583/1248177
codidact.com থেকে সরানোর aloisdg

সমস্যাটি কী তা নিশ্চিত নয়, আমার পক্ষে ঠিক কাজ করে .. @ aloisdgmovingtocodidact.com। এই বলেছিল যে শার্পল্যাব.আইওও সুস্পষ্ট দেখাচ্ছে, দেখানোর জন্য ধন্যবাদ :)
নওফাল

16

আরেকটি বিকল্প: রিসার্চার ব্যবহার করুন

এখানে চিত্র বর্ণনা লিখুন উত্স / আইএল সিঙ্ক করা ভিউ: বাম নীল পটভূমি লাইনটি ডান আইএল ব্লকের সাথে সামঞ্জস্য করে

ভিজ্যুয়াল স্টুডিওতে:

  • রিসার্চার চয়ন করুন | উইন্ডোজ | আইএল ভিউয়ার
  • বা প্রসঙ্গ মেনু: নেভিগেট | আইএল কোড

উত্স কোড এবং আইএল এর সিঙ্ক করা ভিউ সমর্থন করে - যখন আপনি উত্সের কোনও বিবৃতিতে ক্লিক করেন, আইএলে সম্পর্কিত ব্লকটি হাইলাইট করা হয় (এবং বিপরীতে)। মাইক্রোসফ্ট বিকাশকারী নেটওয়ার্ক এবং আইসিএমএ স্ট্যান্ডার্ড স্পেসিফিকেশন থেকে "কমন ইন্টারমিডিয়েট ল্যাঙ্গুয়েজ (সিআইএল) নির্দেশ সেট" থেকে আইএল এর বর্ণনা প্রদর্শন করে।

দেখতে দেখার অন্তর্বর্তী ভাষা (আইএল) Resharper সহায়তা। উপরের ছবিটি রিশার্প হেল্পের।

ফ্রি বিকল্প হ'ল জেটব্রেইনস ডটপিক ব্যবহার করা

আরও দেখুন: "রিসার্পার এবং ডটপিকের সাথে ইন্টারমিডিয়েট ল্যাঙ্গুয়েজ (আইএল) এক্সপ্লোর করে", মার্টেন বালিয়াউউ, জানুয়ারী 19, 2017 - জেটব্রেইনস ব্লগ


ভুল করে আপনার উত্তরকে কমিয়ে দিয়েছে। এটিকে সম্পাদনা করুন যাতে আমি
উঁচুতে

রিসার্পারে আইএল ভিউয়ার দুর্দান্ত। যদি আপনি আইএল সিনট্যাক্সের উপরে মাউস করেন তবে এটি বর্ণনামূলক সরঞ্জামদণ্ডগুলি দেখায় যা প্রতিটি কীওয়ার্ড কী করছে তা ব্যাখ্যা করে। আইএল এ নতুন যারা তাদের জন্য দুর্দান্ত!
অবৈধব্রেইন এক্সসেপশন

12
  1. হ্যাঁ এটি সমাবেশে।
  2. আপনার .NET রিফ্লেক্টর বা আইএলডাসম দরকার
  3. সমাবেশ চেক আরও বিশদ এখানে

পিএস যেমন আপনি কয়েকটি বই অনুসরণ করছেন আমি আপনাকে সি # এর মাধ্যমে সিএলআর-এর অত্যন্ত সুপারিশ করব ।


11

আমি বিশ্বাস করি যে তাদের "সমাবেশগুলি" বলা হয় কারণ একটি সমাবেশ মডিউলগুলির একটি সেট, একটি ম্যানিফেস্ট দ্বারা একত্রিত

বহু-ফাইল সমাবেশ assembly
(সূত্র: মাইক্রোসফট.কম )

বিস্তারিত জানার জন্য এসেম্বলির বিষয়বস্তু দেখুন ।


9

Sharplab শার্পল্যাব একটি অনলাইন সরঞ্জাম, সাধারণ ব্যবহারের ক্ষেত্রে দুর্দান্ত। বামদিকে আপনার কোড টাইপ করুন, ডানদিকে আইএল প্রদর্শিত হবে।


সর্বকালের সেরা সরঞ্জাম +1
এমাদ

7

অনেক ক্ষেত্রে, .NET সমাবেশগুলি জাভা বাইটকোড প্যাকেজগুলির মতো।

  1. হ্যাঁ. এগুলিতে ম্যানিফাইস্ট এবং অন্যান্য ডেটা রয়েছে তবে সিআইএল এটি এক্স / ডিএল অংশ।
  2. আইএলডাসম বা রিফ্লেক্টর ব্যবহার করুন - বেশিরভাগ লোক রিফ্লেক্টর বলতেন, কারণ এটি অনেক বেশি শক্তিশালী। দু'জনেই আপনাকে দেখাবে যে সিআইএল উত্পাদিত হয়েছিল। উন্নত অনুভূতির জন্য উইকিপিডিয়ায় সমস্ত সিআইএল নির্দেশাবলীর একটি তালিকা রয়েছে (এটি সমাবেশের মতো)।
  3. আমার ধারণা এটি কোডের একটি সমাবেশ হিসাবে বোঝানো হয়েছে। দেশীয় থেকে আলাদা করার একটি ভাল উপায়।

7

আমি কেবলমাত্র সেরা সরঞ্জামটি অনুসন্ধান করতে কয়েক ঘন্টা ব্যয় করেছি যা আমাকে সরাসরি ভিজ্যুয়াল স্টুডিওর ভিতরে আইএল কোড দেখতে দেয়।

আমি এখনও অবধি একমাত্র সমাধানটি খুঁজে পেয়েছি হ'ল Msiler https://visualstudiogallery.msdn.microsoft.com/60fc53d4-e414-461b-a27c-3d5d2a53f637

এটি বেশ ভাল কাজ করে!

অন্যথায় দ্বিতীয় সেরা সমাধান, তবে ভিজ্যুয়াল স্টুডিও একীকরণ ব্যতীত হ'ল জেটব্রেইনস ডটপিক, যা সৎ হওয়ার পক্ষে দুর্দান্ত।


5

আমি জানি এটি একটি পুরানো প্রশ্ন, এবং আমি উপরের যে কোনও সরঞ্জাম পছন্দ করব। যাইহোক, একটি চিম্টিতে, কমপক্ষে সংস্করণ 2005 সাল থেকে ভিজ্যুয়াল স্টুডিও সহ বাক্সটিতে একটি এমএসআইএল ভিউয়ার রয়েছে।

সরঞ্জামটির নামকরণ করা হয়েছে ildasm.exeএবং এটি ডিফল্ট ভিজ্যুয়াল স্টুডিও ইনস্টলেশনের পরে নিম্নলিখিত ফোল্ডারে অবস্থিত:

ভিজ্যুয়াল স্টুডিও 2005 "C:\Program Files (x86)\Microsoft Visual Studio 8\SDK\v2.0\Bin\ildasm.exe"

ভিজ্যুয়াল স্টুডিও 2008 " C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\ildasm.exe"

ভিজ্যুয়াল স্টুডিও 2010 " C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\ildasm.exe"

আরও তথ্যের জন্য, দেখুন: এমএসডিএন লাইব্রেরিতে " কীভাবে: এসেম্বলির বিষয়বস্তুগুলি দেখুন "।


2

আমার অভিজ্ঞতা থেকে আইএল সম্পর্কিত জ্ঞানের সেরা উত্স হ'ল অ্যান্ড্রু ট্রয়লসেন "প্রো সি # এবং। নেট প্ল্যাটফর্ম"। তৃতীয় সংস্করণ থেকে শুরু করে তিনি কীভাবে আইএল বুঝতে এবং এমনকি আপনার নিজের কোড লিখতে এবং আইএলএসএম ব্যবহার করতে পারেন সে সম্পর্কে সত্যই অসামান্য অধ্যায় (প্রায় 50 পৃষ্ঠাগুলি) রয়েছে। .NET ওয়ার্ল্ডে একাধিক উত্তরাধিকার রয়েছে কিনা তা খতিয়ে দেখতে আমি এই তথ্যটি নিযুক্ত করেছি। এছাড়াও আপনি আইএল-তে খুব আকর্ষণীয় কিছু বৈশিষ্ট্য নিযুক্ত করার চেষ্টা করতে পারেন (যেমন ব্যতিক্রমগুলির ফিল্টারিং যা কেবল ভিবিতে উপস্থিত রয়েছে তবে সি # তে নেই)।

আমি এই অধ্যায়টি পড়ার জন্য অত্যন্ত পরামর্শ দিচ্ছি।

অবশেষে, .NET রিফ্লেক্টর হ'ল সমাবেশগুলির আইএল কোড অনুসন্ধানের জন্য একটি এন্টারপ্রাইজ স্ট্যান্ডার্ড এবং রিখটারের বইটি অবশ্যই "অবশ্যই পড়তে হবে" স্টাফ তবে উপরে উল্লিখিত অন্যান্য বই থেকে আপনি সত্যিই দরকারী জিনিস প্রকাশ করতে পারেন :)

হ্যাঁ,। নেট বিশ্বের প্রতিটি সমাবেশে কিছু আইএল কোড রয়েছে (ম্যানিফেস্টের পাশাপাশি) যা প্রতিচ্ছবি বা আইএলডাসমের মাধ্যমে দেখা যেতে পারে। আরও বেশি, রিফ্লেক্টর আপনাকে সি # এবং ভিবি অপ্টিমাইজড কোড প্রদর্শন করতে পারে। এর অর্থ হ'ল যে কোনও ব্যক্তি কোনও সমাবেশের উত্স কোডটি দেখতে পেতেন এবং এজন্য বাণিজ্যিক পণ্যগুলিতে অবসেসিটর ব্যবহার করা হয়।


2

আমি আপনাকে মধ্যবর্তী ভাষা দেখতে চাই, টেলিরিক থেকে JustDecompile ডাউনলোড করার চেষ্টা করুন (যা বর্তমানে নিখরচায়, যদিও সাইন আপ প্রয়োজন) requires

আপনার ডিএলএলে টানুন এবং ILশীর্ষে ড্রপ ডাউন বাক্স থেকে চয়ন করুন !


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.