বিল্ড সলিউশন, পুনর্নির্মাণ সমাধান এবং ভিজ্যুয়াল স্টুডিওতে পরিষ্কার সমাধানের মধ্যে পার্থক্য কী?
এই প্রতিটি ব্যবহার করার উপযুক্ত সময় কখন?
বিল্ড সলিউশন, পুনর্নির্মাণ সমাধান এবং ভিজ্যুয়াল স্টুডিওতে পরিষ্কার সমাধানের মধ্যে পার্থক্য কী?
এই প্রতিটি ব্যবহার করার উপযুক্ত সময় কখন?
উত্তর:
(লিঙ্কগুলি devenv.exe কমান্ড লাইন সুইচগুলির হয়, তবে তারা মেনু আইটেমগুলির মতো একই করে))
.gitignore
ফাইল থাকা সহজ । তবে উত্তর হিসাবে, ক্লিন সবসময় আমার অভিজ্ঞতায় একটি বিশেষভাবে পুরো কাজ করে না।
সমাধান তৈরি করুন: কোড ফাইল (DLL এবং EXE) সংকলন করা হয়েছে যা পরিবর্তন করা হয়েছে are
পুনর্নির্মাণ: কোডটি পরিবর্তিত হয়েছে কি না তা নির্বিশেষে সমস্ত সংকলিত ফাইল মুছে ফেলে এবং তাদের আবার সংকলন করে।
পরিষ্কার সমাধান: সমস্ত সংকলিত ফাইল (DLL এবং EXE ফাইল) মুছে ফেলে।
আপনি এই ইউটিউব ভিডিওটি দেখতে পারবেন ( ভিজ্যুয়াল স্টুডিও বিল্ড বনাম রিবিল্ড বনাম ক্লিন (উত্তর সহ সি # সাক্ষাত্কারের প্রশ্ন) ) যেখানে আমি পার্থক্যগুলি প্রদর্শিত করেছি এবং নীচে ভিজ্যুয়াল উপস্থাপনা যা আপনাকে আরও বিশদে বিশ্লেষণ করতে সহায়তা করবে।
পুনর্নির্মাণ বনাম (ক্লিন + বিল্ড) এর মধ্যে পার্থক্য, কারণ এটিকে ঘিরে কিছুটা বিভ্রান্তি রয়েছে বলে মনে হয়:
পার্থক্য হ'ল প্রতিটি প্রকল্পের জন্য বিল্ড এবং ক্লিন সিকোয়েন্সটি ঘটে। আসুন ধরা যাক আপনার সমাধানটিতে দুটি প্রকল্প রয়েছে, "প্রোজ 1" এবং "প্রজ 2"। আপনি যদি পুনর্নির্মাণটি করেন তবে এটি "proj1", "proj1" এর জন্য সংকলিত ফাইলগুলি মুছে ফেলুন এবং মুছে ফেলবে। এরপরে এটি দ্বিতীয় প্রকল্প "প্রজ 2" নেবে, "প্রজ 2" এর জন্য পরিষ্কার সংকলিত ফাইল এবং "প্রজ 2" সংকলন করবে।
তবে আপনি যদি একটি "ক্লিন" এবং বিল্ড করেন তবে এটি প্রথমে "প্রোজ 1" এবং "প্রজ 2" এর জন্য সমস্ত সংকলিত ফাইল মুছে ফেলবে এবং তারপরে এটি "প্রোজ 1" প্রথমে "প্রোজ 2" তৈরি করবে।
এই লিঙ্ক থেকে নেওয়া :
বিল্ডের অর্থ সর্বশেষ বিল্ডের পর থেকে পরিবর্তিত কেবলমাত্র উত্স ফাইলগুলি সংকলন এবং লিঙ্ক করা, অন্যদিকে পুনর্নির্মাণের অর্থ সমস্ত উত্স ফাইলগুলি পরিবর্তন হয়েছে কিনা তা নির্বিশেষে সংকলন এবং লিঙ্ক করে। বিল্ড করা সাধারণ কাজ এবং দ্রুত। কখনও কখনও প্রকল্প লক্ষ্য উপাদানগুলির সংস্করণগুলি সিঙ্কের বাইরে চলে যেতে পারে এবং বিল্ডটিকে সফল করতে পুনর্নির্মাণ করা প্রয়োজনীয়। অনুশীলনে, আপনাকে কখনই পরিষ্কার করার দরকার নেই।
সলিউশন তৈরি করুন - ফাইলগুলি পরিবর্তন করে এমন কোনও সমাবেশ তৈরি করে। যদি কোনও সমাবেশে কোনও পরিবর্তন না হয়, তবে এটি পুনর্নির্মাণ করা হবে না। কোনও মধ্যবর্তী ফাইল মুছবে না।
সর্বাধিক ব্যবহৃত হয়।
পুনর্নির্মাণ সমাধান - পরিবর্তনগুলি নির্বিশেষে সমস্ত অ্যাসেমব্লিকে পুনর্নির্মাণ করে তবে মধ্যবর্তী ফাইলগুলি ছেড়ে দেয়।
আপনি যখন লক্ষ্য করেন যে ভিজ্যুয়াল স্টুডিও সর্বশেষ সমাবেশে আপনার পরিবর্তনগুলি অন্তর্ভুক্ত করে না। কখনও কখনও ভিজ্যুয়াল স্টুডিও ভুল করে।
পরিষ্কার সমাধান - সমস্ত মধ্যবর্তী ফাইল মুছুন।
অন্য সমস্ত ব্যর্থ হয়ে গেলে এবং আপনাকে সমস্ত কিছু পরিষ্কার করে নতুন করে শুরু করা দরকার Used
আমি কেবল বিল্ডটি অনুসরণ করে প্রথমে ক্লিন সম্পাদন হিসাবে পুনর্নির্মাণের কথা ভাবি। সম্ভবত আমি ভুল ... মন্তব্য?
file reference
পরিবর্তে আপনার সমাধানে কোনও প্রকল্প যুক্ত করার কারণে এটি ঘটেছে project reference
কারণ প্রকল্প বিল্ড অর্ডারটি এটির আগে কোনও নির্দিষ্ট প্রকল্পটি নির্মাণ করতে হবে তা স্বীকৃতি দেয়নি এবং সমাবেশ চলাকালীন যেখানে এটি হওয়া উচিত ছিল সেখানে উপস্থিত ছিল না didn't গড়ে তুলতে?
সলিউশন তৈরি করুন - ফাইলগুলি পরিবর্তন করে এমন কোনও সমাবেশ তৈরি করে। যদি কোনও সমাবেশে কোনও পরিবর্তন না হয়, তবে এটি পুনর্নির্মাণ করা হবে না। কোনও মধ্যবর্তী ফাইল মুছবে না।
পুনর্নির্মাণের সমাধানটি পরিষ্কার হয়ে যাবে এবং এরপরে এর আগে যা কিছু করা হয়েছিল তা উপেক্ষা করে সমাধানটি স্ক্র্যাচ থেকে তৈরি করবে
ক্লিন সলিউশন বিন / অবজেক্ট ডিরেক্টরি থেকে সমস্ত সংকলিত ফাইল (যেমন, এক্সই এবং ডিএলএল) মুছে ফেলবে।
বিল্ড সলিউশন পরিবর্তন হয়েছে এমন সমাধানে যে কোনও প্রকল্প তৈরি করবে। পুনর্নির্মাণ সমস্ত প্রকল্পগুলি নির্বিশেষে যাই হোক না কেন, পরিষ্কার সমাধানটি পরবর্তী বিল্ড সম্পূর্ণ হয়েছে তা নিশ্চিত করে সমস্ত অস্থায়ী ফাইলগুলি সরিয়ে দেয়।
সমাধান তৈরি করুন - আপনার অ্যাপ্লিকেশনটিকে এমন কোনও প্রকল্পের সংখ্যা তৈরির সাথে তৈরি করবে যাতে কোনও ফাইল পরিবর্তন হয়। এবং এটি কোনও বিদ্যমান বাইনারি ফাইল সাফ করে না এবং কেবল বিন বা আইজেক্ট ফোল্ডারে আপডেট হওয়া সমাবেশগুলি প্রতিস্থাপন করে।
সমাধান পুনর্নির্মাণ - পুনর্নির্মাণ সমাধান আপনার সম্পূর্ণ অ্যাপ্লিকেশনটি বিল্ডিংয়ের সাথে তৈরি করবে সমস্ত প্রকল্পগুলি সাফ করার সাথে আপনার সমাধানে উপলব্ধ। বিল্ডিংয়ের আগে এটি বাইনারি ফাইলগুলি বিন এবং আইজেক্ট ফোল্ডার থেকে সমস্ত ক্লিয়ার করে।
ক্লিন সলিউশন - ক্লিন সলিউশনটি কেবল বাইনারি ফাইলগুলি বিন এবং আইজেক্ট ফোল্ডার থেকে সাফ করে।
সমাধান তৈরি করুন
এটি একটি ইনক্রিমেন্টাল বিল্ড সম্পাদন করবে। অন্য কথায় এটি কেবল কোড ফাইলগুলি তৈরি করবে যা পরিবর্তিত হয়েছে। যদি তারা পরিবর্তন না করে তবে এই ফাইলগুলি স্পর্শ করা হবে না।
সমাধান পুনর্নির্মাণ
এটি বর্তমানে সমস্ত সংকলিত ফাইল মুছে ফেলবে (যেমন, এক্সি এবং ডিএলএল) এবং ফাইলটিতে কোড পরিবর্তন আছে কিনা তা নির্বিশেষে সবকিছুই স্ক্র্যাচ থেকে তৈরি করবে।
সমাধান সমাধান মেনু
এই মেনুটি বিন / অবজেক্ট ডিরেক্টরি থেকে সমস্ত সংকলিত ফাইল (অর্থাত্, এক্সই ও ডিএলএল) মুছে ফেলবে।
পুনর্নির্মাণ = ক্লিন + বিল্ড
আমার মনে হচ্ছে যে একটি বড় বিষয় লোকেরা ছাড়ছে তা হ'ল বিল্ড এবং ক্লিন উভয় কাজ যা আপনার প্রকল্প / সমাধানের ভিজ্যুয়াল স্টুডিওর জ্ঞানের ভিত্তিতে সম্পাদিত হয়। আমি প্রচুর অভিযোগ দেখতে পাচ্ছি যে ক্লিন কাজ করে না বা বাকী ফাইলগুলিকে ছেড়ে দেয় বা বিশ্বাসযোগ্য হয় না, যখন বাস্তবে, আপনি যে কারণে বিশ্বাস করেন না এটি আসলে এটি আরও বিশ্বাসযোগ্য করে তোলে।
ক্লিন কেবলমাত্র ভিজুয়াল স্টুডিও বা সংকলকরা বাস্তবে তৈরি করা ফাইল এবং / অথবা ডিরেক্টরিগুলি সরিয়ে ফেলবে। যদি আপনি নিজের ফাইল বা ফাইল / ফোল্ডার কাঠামো বাইরের সরঞ্জাম বা উত্স থেকে তৈরি হয়ে থাকেন তবে ভিজ্যুয়াল স্টুডিওগুলি "তাদের উপস্থিতি জানেন না" এবং তাই তাদের স্পর্শ করা উচিত নয়।
আপনি কী কল্পনা করতে পারেন যে ক্লিন অপারেশনটি মূলত একটি "ডেল *। *" সম্পাদন করে? এটি বিপর্যয়কর হতে পারে।
বিল্ড পরিবর্তিত বা প্রয়োজনীয় প্রকল্পগুলির জন্য একটি সংকলন সম্পাদন করে।
পুনর্নির্মাণটি পরিবর্তন বা প্রয়োজনীয় কী তা বিবেচনা না করে একটি সংকলন সম্পাদন করে।
ক্লিন অতীতে এটি তৈরি করা ফাইল / ফোল্ডারগুলি সরিয়ে দেয়, তবে প্রাথমিকভাবে এটির কিছুই করার ছিল না।
আমি আশা করি এটি কিছুটা বিস্তৃত এবং সহায়তা করবে।
আমি এএ ফাঁকা সমাধান আছে BuildRebuildClean
এবং তিনটি বর্গ গ্রন্থাগার Models
, Repository
, Notification
।
আমি ব্যবহার Models
এবং Repository
এ Notification
বর্গ গ্রন্থাগার।
তারপর:
Models
গ্রন্থাগার প্রকল্পে যদি কিছু কোড সংশোধন করে তবে বিল্ড সলিউশন। নীচের স্ক্রিন শটে, ডিএলএল এর টাইম স্ট্যাম্প দেখুন, এক্সই আপডেট করা হয়েছে Models
এবং Notification
লাইব্রেরি।BuildRebuildClean
। এটি যা করে তা হ'ল সমস্ত সমাবেশগুলি, এক্সইগুলি এবং পুনরায় সংকলিত ফাইলগুলিকে মুছে ফেলা।আমি যতটুকু জানি ক্লিনটি কীভাবে "পরিষ্কার করে" ব্যবহার করে তা করে না - আমি যদি কোনও সমাধান পরিষ্কার করি তবে আমি আশা করব যে এটি ওজেট এবং বিন ফাইল / ফোল্ডারগুলি মুছে ফেলবে যেমন এটি তৈরি করে তা হ'ল উত্সের একটি তাজা চেকআউট। আমার অভিজ্ঞতায় যদিও আমি প্রায়শই এমন সময় পাই যেখানে ক্লিন অ্যান্ড বিল্ড বা পুনর্নির্মাণটি উত্সটিতে এখনও অদ্ভুত ত্রুটি তৈরি করে যা সংকলন করার জন্য জানা ছিল এবং যা প্রয়োজন তা বিন / অবজেক্ট ফোল্ডারগুলির একটি ম্যানুয়াল মুছে ফেলা হয়, তবে এটি তৈরি করবে।
বিল্ড সলিউশন কেবল সেই প্রকল্পগুলি তৈরি করে যা সমাধানে পরিবর্তিত হয়েছে, এবং যেসব অ্যাসেমব্লিশগুলি পরিবর্তিত হয়নি তাদের কার্যকর করে না,
পুনর্নির্মাণটি প্রথম সমাধানগুলি থেকে সমস্ত অ্যাসেম্বলিকে পরিষ্কার করে এবং তারপরে পরিবর্তনগুলি নির্বিশেষে পুরো সমাধানটি তৈরি করে।
পরিষ্কার, সহজভাবে সমাধান পরিষ্কার।
এটি কেবল "বিল্ড সলিউশন" বিকল্প সম্পর্কিত।
আমি ভিজ্যুয়াল স্টুডিওর সত্যিকারের সমাধানগুলি পরিষ্কার করতে অক্ষমতায় সম্পূর্ণ বিরক্ত হয়েছি এবং এই ছোট্ট সরঞ্জামটি লিখেছি যা এটি আপনার পক্ষে করবে।
প্রথমে আপনার সমাধানটি ভিএস-এ বন্ধ করুন এবং এর ফোল্ডারটি উইন্ডোজ এক্সপ্লোরার থেকে এই অ্যাপ্লিকেশনটিতে বা এর আইকনে টেনে আনুন। এর উইন্ডোর নীচে অবস্থিত সেটিংটির উপর নির্ভর করে এটি অতিরিক্ত জিনিসগুলিও সরিয়ে ফেলতে পারে, আপনি যদি নিজের সমাধানটি গিটহাবটিতে ম্যানুয়ালি আপলোড করতে বা অন্য কারও সাথে ভাগ করে নেওয়ার চেষ্টা করেন তবে তা সহায়তা করবে:
সংক্ষেপে, এটি সমস্ত "ডিবাগ" ফোল্ডার, ইন্টেলিসেন্স এবং অন্যান্য ক্যাশে রাখবে যা ভিএস আপনার জন্য পুনর্ব্যবহার বিনটিতে পুনর্নির্মাণ করতে পারে।