আমাদের কি সংস্করণ নিয়ন্ত্রণে নুগেট প্যাকেজ ফোল্ডারটি অন্তর্ভুক্ত করা উচিত?


68

আমি জানতে চাই

সি # বা ভিবি.নেট প্রকল্পে আমাদের প্যাকেজ ফোল্ডারটি (আমার প্রকল্পের মূলটিতে নুগেট প্যাকেজ ফোল্ডারটি তৈরি করা হয়েছে যা নুপগিজ ফাইল এবং অন্যান্য সামগ্রী রয়েছে) আমাদের উত্স নিয়ন্ত্রণ সংগ্রহস্থলের (উদাহরণস্বরূপ গিট) অন্তর্ভুক্ত করা উচিত।


একেবারে হ্যাঁ , কারণ এই ফাইলগুলি আপনার কোডের অংশ এবং আপনার প্রকল্পগুলি সেগুলি ব্যতীত তৈরি করবে না।
শার্কি

আমি সময় আগে এসও তে একই প্রশ্ন জিজ্ঞাসা করেছি। : আপনি উত্তরের জন্য সেখানে সন্ধান করতে পারেন stackoverflow.com/questions/1710027/... :)
cwap

আমি অবাক হয়েছি কেন মাভেন বিশ্বের কেউ "কেন সংস্করণ নিয়ন্ত্রণে তৃতীয় পক্ষের লিবিসকে অন্তর্ভুক্ত করা উচিত" না জিজ্ঞাসা করবে? খুব দৃinc়প্রত্যয়ী না হলেও, libs প্রতিশ্রুতিবদ্ধ না করার জন্য কিছু শক্ত পাল্টা যুক্তি খুঁজে বের করুন।
হোং লং

উত্তর:


28

অনেক সময় কেটে গেছে, এবং নিউগেট বদলেছে, সুতরাং এখানে একটি নতুন উত্তর দেওয়া হল।

নিউগেট আর আপনার উত্স কাঠামোর ভিতরে প্যাকেজ ফোল্ডার তৈরি করে না। পরিবর্তে আপনার ব্যবহারকারী ডিরেক্টরিতে একটি %HOME%\.nuget\packagesনির্দিষ্ট রয়েছে ( নির্দিষ্ট হতে) যেখানে এটি ডাউনলোড করা সমস্ত প্যাকেজ রাখে এবং প্রকল্পগুলি কেবল এগুলিকে রেফার করে।

সুতরাং আজকের সহজ উত্তরটি হ'ল না, আপনার উচিত হবে না। আপনি যদি প্যাকেজগুলির বিষয়ে উদ্বিগ্ন হন যা আপনার অদৃশ্য হয়ে যায়, আপনার একটি স্থানীয় নিউগেট আয়না তৈরি করা উচিত যা আপনি আলাদাভাবে ব্যাক আপ করেন।


6
আমি ভিএস ২০১৫ এ আছি (বিবেচনা করুন যে আপনি এই উত্তরটি লেখার মাত্র 3 দিন আগে ভিএস2017 প্রকাশিত হয়েছে), এবং প্যাকেজ ফোল্ডারটি আমার সমাধানের মূলটিতে উপস্থিত রয়েছে। নিউজিট কীভাবে এবং কখন পরিবর্তিত হয়েছে সে সম্পর্কে আমি আগ্রহী।
তেজয় 21

নিউগেটটি সংস্করণ 3 এর সাথে পরিবর্তিত হয়েছে, যা ভিএস2015 সময়সীমার সময় ব্যান্ডের বাইরে প্রকাশিত হয়েছিল।
সেবাস্তিয়ান রেডল

আমি স্রেফ আমার কাজের কম্পিউটারে পরীক্ষা করেছি এবং প্যাকেজগুলি যেখানে আপনি উল্লেখ করেছেন। তবে আমার বাড়ির কম্পিউটারে তারা প্রকল্পের ডিরেক্টরিতে রয়েছে। উভয়ই ভিএস ২০১৫ (পেশাদার @ কর্ম, সম্প্রদায় @ হোম) এ রয়েছে এবং বাড়ির একটি খুব সাম্প্রতিক ইনস্টলেশন ... এটি আশ্চর্যের।
তেজয়

12
সবেমাত্র গত সপ্তাহে ভিএস 2017 ইনস্টল করা হয়েছে, গতকাল একটি নতুন প্রকল্প তৈরি করেছে এবং আমার প্রকল্পে একটি প্যাকেজ ডিরেক্টরি রয়েছে।
জেরেমি

2
আপনি সিআইয়ের জন্য কী করবেন? আপনি কি এটি সমস্ত নুগেট প্যাকেজগুলি বারবার ডাউনলোড করেন? (টিবিএইচ: আমি, আমি নিজেই আমার মতামতটি সম্পর্কে খুব অস্পষ্ট)
টোমর ডব্লিউ

50

এটা নির্ভর করে.

পরীক্ষা করে দেখুন বার্ট ভ্যান ইনজেন Schenau এর উত্তর যদি এটা উপেক্ষা করার সম্ভব তা নির্ধারণ করতে packagesএ সব ফোল্ডার।

মূলত: হ্যাঁ, নুগেট এমনভাবে নকশা করা হয়েছে যাতে আপনি packagesফোল্ডারটি উপেক্ষা করতে পারেন এবং অনুপস্থিত না থাকলে নুগেট ইন্টারনেট থেকে সমস্ত কিছু টেনে আনবে।

তবে আপনি কি এড়িয়ে যাবেন? আমি বলি: এটি নির্ভর করে।
আইএমও এটি "প্যাকেজ সংগ্রহস্থল উপলব্ধ না হলে আমরা কাজ চালিয়ে যেতে পারি কি" এর প্রশ্ন (এটি অস্থায়ীভাবে বা স্থায়ীভাবে হোক)

আমার ব্যক্তিগত ওএসএস প্রকল্পগুলির জন্য, আমি packagesফোল্ডারটি তাদের সমস্তটিতে উপেক্ষা করেছি।
যখন nuget.org অফলাইনে থাকবে, আমি কেবল অপেক্ষা করব এবং অন্য দিন চালিয়ে যাব।

তবে এটি কাজের ক্ষেত্রে অন্যরকম।
অবশ্যই, আপনার সম্ভবত কিছু মেশিনে স্থানীয়ভাবে প্যাকেজগুলি রয়েছে, তবে আপনার বিল্ডগুলি যখন ভেঙে যাচ্ছে তখন ঝামেলা করার মতো কিছু জায়গা সাশ্রয় করছেন কারণ আপনার বিল্ড সার্ভারটি nuget.org এ পৌঁছাতে পারে না?

আমরা স্থির করেছিলাম যে স্থানটি সস্তা এবং আমরা ঝামেলা চাই না, সে কারণেই আমরা packagesফোল্ডারটিকে উত্স নিয়ন্ত্রণে প্রতিশ্রুতিবদ্ধ করছি।


1
কতবার nuget.org অনুপলব্ধ?
বার্তোসজ

4
সম্ভবত খুব প্রায়ই না। তবে সম্ভবত আমার উচিত ছিল "অফলাইনে" পরিবর্তে "পৌঁছনীয়"। কয়েক বছর আগে, আমাদের কর্মক্ষেত্রে একটি ঘটনা ঘটেছিল যেখানে একটি খননকারীর ঘটনাক্রমে আমাদের বিল্ডিংয়ের জন্য ইন্টারনেট কেবলটি কেটে দেয়। মেরামতের জন্য এক দিনেরও বেশি সময় নিয়েছে। আমরা যদি nuget.org এর উপর নির্ভর করে থাকি তবে আমরা আমাদের প্রকল্পগুলি তৈরি করতে পারতাম না। (হ্যাঁ, আমি জানি, আজকাল নুগেট স্থানীয়ভাবে প্যাকেজগুলি ক্যাশে করে ... তবে ফিরে আসে না)
খ্রিস্টান স্পেচট

আমি বলব যখন আপনি প্যাকেজ ফোল্ডারটি চেক ইন করেন না তখন বিল্ড সময়গুলি আরও দীর্ঘ হয় কারণ এটি প্যাকেজ পুনরুদ্ধারের সময় প্যাকেজ পুনরুদ্ধার করতে বিল্ড সময় ব্যয় করে।
অ্যারোনএলএস

29

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

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


20
আমি যুক্ত করব যে আপনার প্রকল্পে ব্যবহৃত তৃতীয় পক্ষের কোডের কোনও সংস্করণ নিরাপদে সঞ্চিত রাখা উচিত, যদি তৃতীয় পক্ষের প্রকল্পটি সরিয়ে দেওয়া হয়, এটি হোস্টিং সাইটটি চলে গেছে ইত্যাদি কাজ করার জন্য একটি ভাল জায়গা আপনার সংস্করণ নিয়ন্ত্রণের ভাণ্ডারে রয়েছে । এটি আপনাকে যদি প্রয়োজন হয় তবে সেই কোডটির পূর্ববর্তী সংস্করণে রোলব্যাক করারও সুযোগ দেয়।
বেন্ট করুন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.