একাধিক প্রকল্পের সাথে সমাধানের জন্য নিউগেট


153

মনে করুন 3 টি প্রকল্পের সাথে আমার একটি সমাধান রয়েছে:

  • মূল
  • UI 'তে
  • টেস্ট

আমার ব্যবহৃত কিছু নিউগেট প্যাকেজ সমস্ত 3 টি প্রকল্পের জন্য প্রযোজ্য। কিছু কেবল ইউআই এবং টেস্টগুলিতে প্রয়োগ করবে, এবং কিছুগুলি কেবল টেস্টগুলিতে প্রয়োগ করবে (এন ইউনাইটের মতো)।

নিউগেট ব্যবহার করে এটি সেট আপ করার সঠিক উপায় কী ?

  1. আমার কোনও রেফারেন্সের প্রয়োজন হলে তিনটি প্রকল্পে "লাইব্রেরি প্যাকেজ রেফারেন্স" ব্যবহার করা উচিত?
  2. আমার যখন প্রথম প্যাকেজ প্রয়োজন তখন "লাইব্রেরি প্যাকেজ রেফারেন্স যুক্ত করুন" ব্যবহার করা উচিত এবং তারপরে ব্যবহারের জন্য অ্যাড রেফারেন্স-> ব্রাউজ ব্যবহার করব?

উভয় ক্ষেত্রেই আমার কতগুলি প্যাকেজ.কনফিগ ফাইল থাকা উচিত?

উত্তর:


239

যে কেউ এইজন্য হোঁচট খাচ্ছে, এখন নিম্নলিখিত বিকল্প রয়েছে:

আপনার সমাধানটি ডান-ক্লিক করুন> সমাধানের জন্য নিউগেট প্যাকেজগুলি পরিচালনা করুন ...

... বা:

সরঞ্জামসমূহ> গ্রন্থাগার প্যাকেজ পরিচালক> সমাধানের জন্য নিউগেট প্যাকেজগুলি পরিচালনা করুন ...

এবং আপনি যদি ইনস্টলড প্যাকেজগুলির ক্ষেত্রে যান তবে আপনি সমাধানের প্রতিটি প্রকল্প জুড়ে একটি প্যাকেজ 'পরিচালনা' করতে পারেন।


5
নির্দিষ্ট সংস্করণ সহ সলিউশনের জন্য প্যাকেজ ইনস্টল করতে চাইলে কী হয়। উইজার্ড আমাকে সেই বিকল্পটি দেয় না। কনসোলে আমি এটি এর মতো চালাতে পারি Install-Package RazorEngine -Version 3.3.0তবে এটি কেবল প্রকল্পের জন্য প্রয়োগ করা হবে যা কনসোল ড্রপডাউনতে নির্বাচিত is
ম্যাকিজলিসিসকে

এই ভিসুয়াল স্টুডিও 2010 সমর্থিত আমি শুধু এখানে একটি প্রশ্ন জিজ্ঞাসা - stackoverflow.com/questions/33163987/...
user2645830

আপনার যদি গুরুত্ব সহকারে কোনও বড় প্রকল্প থাকে তবে নির্ভরতা আপডেট করার জন্য আপনি কি সত্যই কোনও প্যাকেজ ম্যানেজারকে বিশ্বাস করবেন?
মিক 23

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

@ মিক, উল্লিখিত কথোপকথনের একীকরণ ট্যাবটি দেখুন ... আমি চাই!

76

একাধিক প্রকল্প লক্ষ্য করে কনসোল ব্যবহার করুন

Tools > Library Package Manager > Package Manager Console

তারপরে এই কমান্ডটি ব্যবহার করুন

Get-Project PROJECT-NAMES-WITH-COMMAS | Install-Package PACKAGENAME

উদাহরণ স্বরূপ

Get-Project Core,UI | Install-Package FluentDateTime

4
+1: কমপক্ষে বর্তমান নুগেট সংস্করণটি সহ, আমি এখনও "সলিউশনের জন্য নিউগেট প্যাকেজগুলি পরিচালনা করুন" ডায়ালগের চেয়েও এই পদ্ধতিটিকে পছন্দ করি কারণ আমাদের সমাধানটি সত্যই বড় and
Yodan Tauber

21

এই মিষ্টি চুক্তি আমার পক্ষে কাজ করে:

PM> Get-Project -all | where {$_.Name -match "Songhay.Silverlight" -and
    $_.Name -notmatch "ApplicationLoader" -and $_.Name -notmatch ".Xml"}
    | ForEach-Object {Install-Package MvvmLight -project $_.Name}

2
এভাবেই করা হয়! উদাহরণস্বরূপ, যদি আপনি কোনও সমাধানে আপনার সমস্ত প্রকল্পের জন্য json.net এর সমস্ত সংস্করণ তালিকা করতে চান তবে এটি চেষ্টা করে দেখুন:Get-Project -all | ForEach-Object {Get-Package -ProjectName $_.Name -Filter Newtonsoft.Json}
jonypony3

1
@ অ্যাডওয়ার্ডমিশুরিয়াস খুব ভাল কমান্ড তবে এটি প্যাকেজের নামের সাথে সঠিক মিল পাবে না। নির্ভুল ম্যাচের জন্য এখানে কিছুটা আপডেট হয়েছেGet-Project -all | ForEach-Object {Get-Package -ProjectName $_.Name -filter PACKAGE_NAME} | where-object { $_.id -eq 'PACKAGE_NAME' }
ডার্ক_কানাইট

12

আপনি যদি একাধিক সমাধান জুড়ে একটি প্যাকেজ ইনস্টল করতে চান তবে আমি এটি করার জন্য একটি কার্যকর পাওয়ারশেল স্ক্রিপ্ট লিখেছি, এখানে দেখুন

এমনকি আপনি Get-Project -Allকমান্ডটি ফিল্টার করতে পারেন এবং প্রকল্প তালিকার একটি উপ-সেটকে লক্ষ্য করতে পারেন ।


8

আপনার সমাধানে প্রতিটি প্রকল্পে আপনার সমস্ত বাহ্যিক গ্রন্থাগারের জন্য "লাইব্রেরি প্যাকেজ রেফারেন্স যুক্ত করুন" ব্যবহার করা উচিত। আপনি প্রতি প্রকল্পে একটি প্যাকেজস কনফিগ দিয়ে শেষ করবেন।

তবে, আপনি কেবল একবার প্যাকেজটি ডাউনলোড করবেন এবং আপনার অন্যান্য সমস্ত প্রকল্পের জন্য স্থানীয়ভাবে সেগুলি পুনরায় ব্যবহার করুন।


4
দ্রষ্টব্য: আপনি যদি সমস্ত গ্রন্থাগার প্যাকেজ আপডেট না করেন তবে আপনি একই সমাবেশের 3 টি ভিন্ন সংস্করণ দিয়ে শেষ করবেন with .NET 3 টি বিভিন্ন সংস্করণে কাজ করতে পারে যদি তারা GAC এ থাকে বা বিভিন্ন নামের সাথে থাকে। তবে কারণ তাদের একই নাম থাকবে। পুরানো সংস্করণটি নতুন সংস্করণে অনুলিপি করা হওয়ায় আপনি অ-ব্যবসা বিল্ডগুলি শেষ করবেন।
গ্রাফিক

2

ইন প্যাকেজ ম্যানেজার কনসোল আপনি নিম্নলিখিত লিখতে পারেন কমান্ড :

Get-Project -all | ForEach-Object {Get-Package -ProjectName $_.Name -filter 
PACKAGE_NAME} | where-object { $_.id -eq 'PACKAGE_NAME' } | Install-Package 
PACKAGE_NAME -Version VERSION

আপনি সেই আদেশটি ইনস্টল বা আপডেট করার জন্যও ব্যবহার করতে পারেন (আপডেট-প্যাকেজ)

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