ভিজ্যুয়াল স্টুডিওতে পুনর্নির্মাণ এবং ক্লিন + বিল্ডের মধ্যে পার্থক্য


299

ভিজুয়াল স্টুডিও ২০০৮ সালে কেবল একটি পুনর্নির্মাণ এবং ক্লিন + বিল্ড করার মধ্যে পার্থক্য কী ? হয় ক্লিন + + বিল্ড বিভিন্ন তারপর করছেন ক্লিন + + পুনর্নির্মাণ ?


উত্তর:


308

পুনর্নির্মাণ = পরিষ্কার + বিল্ড (সাধারণত)

উল্লেখযোগ্য বিশদ:

  1. একটি বহু-প্রকল্পের সমাধানের জন্য, "পুনর্নির্মাণ সমাধান" একটি "ক্লিন" করে প্রতিটি প্রকল্পের জন্য "বিল্ড" করে (সম্ভবত সমান্তরালে)। যেখানে "বিল্ড সলিউশন" এর পরে একটি "ক্লিন সলিউশন" প্রথমে সমস্ত প্রকল্প পরিষ্কার করে (সম্ভবত সমান্তরালভাবে) এবং তারপরে সমস্ত প্রকল্পগুলি তৈরি করে (সম্ভবত সমান্তরালে)। আন্তঃ-প্রকল্পের নির্ভরতা যখন কার্যকর হয় তখন ইভেন্টগুলির ক্রমক্রমের এই পার্থক্যটি তাৎপর্যপূর্ণ হতে পারে।

  2. তিনটি ক্রিয়া এমএস বিল্ড লক্ষ্যমাত্রার সাথে মিলে যায়। সুতরাং কোনও প্রকল্প সম্পূর্ণ ভিন্ন কিছু করার জন্য পুনর্নির্মাণের ক্রিয়াকে ওভাররাইড করতে পারে।


2
সুতরাং আপনি বলছেন যে পুনর্নির্মাণ করা হয় ঠিক একই হিসাবে একটি ক্লিন একটি দ্বারা অনুসরণ বিল্ড ? এটি আমি যা ভেবেছিলাম সে রকম, তবে আমি নিশ্চিত ছিলাম না।
জিম ম্যাককিথ

43
পুনর্নির্মাণ ক্লিঞ্জ এবং পুনর্নির্মাণ ব্যতীত প্রতিটি প্রকল্প একে অপর এক করে। ক্লিন + বিল্ড তাদের সকলকে পরিষ্কার করে এবং তারপরে সেগুলি তৈরি করে। আপনি যদি দুর্ঘটনাক্রমে এটিকে ক্লিক করেন তবে বেশিরভাগ ক্ষেত্রেই পার্থক্য তৈরি হয় :)
ইউজিন

25
গ্যারান্টির অভাব ব্যতীত যে তারা একই। নীচে জারেডপারের উত্তরটি দেখুন যা আর্লের সাথে মিলিত পুরো চিত্র। যেহেতু পুনর্নির্মাণ প্রতিটি প্রকল্পের পরিবর্তে কাজ করে, আপনার নির্ভরতার তথ্য বিভ্রান্ত হলে আপনি "কর্নার কেস" রাখতে পারেন এবং আপনি পুরানো প্রকল্প এ এরপরে পুনর্নির্মাণ এ, তারপরে সি পুনর্নির্মাণ ইত্যাদি ব্যবহার করে বি এর আউট অফ অর্ডার বিল্ড প্রকল্প পেতে পারেন A সম্পূর্ণ সমাধান পরিচ্ছন্ন একটি সম্পূর্ণ সমাধান বিল্ড এর পরে এই পরিস্থিতিটি ধরে ফেলবে যখন কোনও পুনর্নির্মাণ হবে না। সুতরাং আপনি যত বেশি বিড়ম্বনা এবং ক্লান্ত হয়ে পড়েছেন তত বেশি আপনার ক্লিন টু বিল্ডের পক্ষে হওয়া উচিত।
জেসন হ্যারিসন

14
এটি সত্য নয়। আমার এমন একটি প্রকল্প রয়েছে যেখানে ক্লিন + বিল্ড সফল হয়েছে এবং পুনর্নির্মাণটি কম্পাইল ত্রুটিগুলি (বৃত্তাকার ফাইলের রেফারেন্স) ফিরিয়ে দিয়েছে। সুতরাং তারা 100% এক নয়।
ইয়াকভ এলিস

2
হতে পারে যেহেতু এই পোস্টের জিনিসগুলি পরিবর্তিত হয়েছে, তবে কেন পুনর্নির্মাণটি (আর নেই?) পরিষ্কার + বিল্ড স্ট্যাকওভারফ্লো.com
ডেভ

163

আর্লটি সঠিক যে 99% সময় পুনর্নির্মাণ = ক্লিন + বিল্ড।

তবে এগুলি এক হওয়ার নিশ্চয়তা নেই। 3 টি ক্রিয়া (পুনর্নির্মাণ, নির্মাণ, পরিষ্কার) বিভিন্ন এমএস বিল্ড লক্ষ্যকে উপস্থাপন করে। যার প্রত্যেকটিই কাস্টম ক্রিয়াকলাপ করতে যে কোনও প্রকল্পের ফাইল দ্বারা ওভাররাইড করা যায়। সুতরাং কারও পক্ষে পরিষ্কার + বিল্ড (বা সেগুলি সম্পূর্ণরূপে অপসারণ) শুরু করার আগে বিভিন্ন ক্রিয়া পুনর্নির্মাণের পক্ষে ওভাররাইড করা সম্পূর্ণভাবে সম্ভব।

খুব একটা কর্নার কেস কিন্তু মন্তব্য আলোচনার কারণে এটিকে নির্দেশ করছে।


যদি আপনি বিল্ড ক্রিয়াগুলি যুক্ত করেন যা .dll ফাইলগুলিকে একটি নতুন স্থানে নিয়ে যায় তবে আপনি কেবল পুনর্নির্মাণের মাধ্যমে 'খারাপ' বিল্ড ফলাফল পেতে পারেন। আপনি যদি কোনও ভিবি.net এবং সি # প্রকল্পের মিশ্রণ করেন তবে আরও খারাপ হয়ে যায়, ভাঙ্গা ফর্ম ডিজাইনার এবং কোনও কার্যকারিতা নেই।
কোডিংবার্ডফিল্ড

+1 টি নোট এছাড়াও পুনর্নির্মাণ আচরণ নির্ভরতা থেকে সম্মান সঙ্গে ভাষাতে সামঞ্জস্যপূর্ণ হবে বলে মনে হচ্ছে না: stackoverflow.com/questions/12163080/...
lesscode

1
99% সময়টি অত্যধিক মাত্রায় বিবেচিত।
ছড়া

57

আসুন ডিফল্ট ক্লিন অ্যান্ড বিল্ড বাস্তবায়নের ক্ষেত্রে ডিফল্ট পুনর্নির্মাণ বাস্তবায়নটি সংজ্ঞায়িত করা যাক:

  1. প্রতি প্রকল্প: পুনর্নির্মাণ প্রকল্প = পরিষ্কার প্রকল্প + বিল্ড প্রকল্প।

  2. প্রতি সমাধান: স্লান পুনর্নির্মাণ = স্লানে ফোরচ প্রকল্প (ক্লিন প্রকল্প + বিল্ড প্রকল্প)।

নোট করুন যে মৃত্যুদন্ড কার্যকর করার ক্রমের মধ্যে পার্থক্যের কারণে, পুনর্নির্মাণ স্লান (ক্লিন স্লান + বিল্ড স্লান) = (স্লান ক্লিন প্রজেক্টে ফরচ প্রকল্প) + (স্লান বিল্ড প্রজেক্টে ফরচ প্রকল্প)) এছাড়াও, এই "foreach" একযোগে সম্পাদন করতে পারে, তাই দুটি পরিস্থিতিতে দুটি কাজ একই সাথে চালানোর অনুমতি দেওয়া হয়।

বলুন আপনার কাছে এমন একটি স্লান রয়েছে যাতে প্রোজ 1, প্রোজ 2 এবং প্রোজ 3 রয়েছে।

  • পুনর্নির্মাণ স্লেন = (ক্লিন প্রজ 1 + বিল্ড প্রজ 1) এবং (ক্লিন প্রজ 2+ বিল্ড প্রজ 2) এবং (ক্লিন প্রজ 3+ বিল্ড প্রজ 3)

  • ক্লিন স্লেন + বিল্ড স্লেন = (ক্লিন প্রোজ 1 এবং ক্লিন প্রজ 2 এবং ক্লিন প্রজ 3) + (প্রজ 1 তৈরি করুন এবং প্রজ 2 তৈরি করুন এবং প্রজ 3 তৈরি করুন)

+ এর অর্থ সিরিয়াল, এবং মানে সমকালীন।

সুতরাং যদি প্রকল্প নির্ভরতা সঠিকভাবে কনফিগার করা না থাকে তবে এমন একটি সম্ভাবনা রয়েছে যে আপনি পুনর্নির্মাণ স্লান সম্পাদন করার সময়, আপনার কিছু প্রকল্প বাসি bষধের সাথে লিঙ্ক করে। এটি কারণ যে সমস্ত নির্মাতাকে প্রথম বিল্ড শুরুর আগে শেষ করার গ্যারান্টি নেই। আপনি যদি ক্লিন স্লেন + বিল্ড স্লান সম্পাদন করেন তবে তারা একটি লিঙ্ক ত্রুটি দেয় এবং আপনাকে অবিলম্বে তা জানাতে দেয়, পরিবর্তে আপনাকে অভিনব আচরণের সাথে একটি অ্যাপ্লিকেশন দেয়।


7
এটি একটি সবচেয়ে সঠিক উত্তর, যেহেতু এটি ব্যাখ্যা করে যে কেন কখনও কখনও আমি পুনর্নির্মাণ করতে পারি নি তবে পরিষ্কার করতে সক্ষম হয়েছিল + বিল্ড build
তোয়ান এনগুইন

11

Http://www.cs.tufts.edu/r/ographicics/resources/vs_getting_st সূত্র / vs_getting_st সূত্র: htm থেকে , (কেবল এটি গুগলড):

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

বিল্ড বা পুনর্নির্মাণ সমাধান আপনার সলিউশনে সমস্ত প্রকল্পগুলি তৈরি বা পুনর্নির্মাণ করে, যখন বিল্ড বা পুনর্নির্মাণ স্টার্টআপ প্রকল্পটি নির্মাণ বা পুনর্নির্মাণ করে, উপরের স্ক্রিন শটটিতে "হ্যালো"। স্টার্টআপ প্রকল্পটি সেট করতে, সমাধান এক্সপ্লোরার ট্যাবে কাঙ্ক্ষিত প্রকল্পের নামের উপর ডান ক্লিক করুন এবং স্টার্টআপ প্রকল্প হিসাবে সেট নির্বাচন করুন। প্রকল্পের নামটি এখন সাহসের সাথে দেখা যাচ্ছে। যেহেতু হোম ওয়ার্ক সলিউশনগুলি সাধারণত একটি প্রকল্প থাকে তাই বিল্ড বা পুনর্নির্মাণ সমাধান কার্যকরভাবে বিল্ড বা পুনর্নির্মাণের সমান is

বর্তমানে সম্পাদিত উত্স ফাইলটি সংকলন করুন। আপনার বাকী উত্স ফাইলগুলি অসম্পূর্ণ অবস্থায় রয়েছে যা পুরো প্রকল্পটির সফল নির্মাণকে বাধা দিতে পারে তাড়াতাড়ি ত্রুটিগুলি পরীক্ষা করার জন্য দরকারী। Ctrl-F7 হ'ল সংকলনের শর্টকাট কী।


টান এনগুইনের মতো, আমিও অভিজ্ঞতা পেয়েছি যে কখনও কখনও ক্লিন + বিল্ড সলিউশন সফল হয় যেখানে কোনও পুনর্নির্মাণ সমাধান ব্যর্থ হয় (সম্ভবত আন্তঃ-প্রকল্পের নির্ভরতার কারণে), তাই এই উত্তরটি বিভ্রান্তিকর, কমপক্ষে 2018-এ
জোন কোম্বস

4

থেকে এই ব্লগ পোস্টে যা লেখক হিসেবে যুক্ত এই প্রশ্নে একটি মন্তব্য :

আসলে না!!! তারা সমান নয়।

পার্থক্যটি ক্রম প্রকল্পগুলিতে পরিষ্কার এবং বিল্ড হয়। ধরা যাক আমাদের একটি সমাধানে দুটি প্রকল্প রয়েছে। পরিষ্কার এবং তারপরে বিল্ড উভয় প্রকল্পের জন্য পরিচ্ছন্ন সঞ্চালন করবে এবং তারপরে বিল্ডটি পৃথকভাবে ঘটবে যখন পুনর্নির্মাণ প্রকল্প এ পাবেন এবং পরিষ্কার হবে এবং তারপরে বিল্ডটি নির্মাণের পরে বি পরিষ্কার হবে এবং তারপরে বিল্ড ইত্যাদি হবে।

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