আমি কীভাবে প্যাকেজস কনফিগের সমস্ত প্যাকেজ ইনস্টল / আপডেট করতে নিউগেট পাব?


673

এটিতে একাধিক প্রকল্পের সাথে আমার একটি সমাধান রয়েছে। তৃতীয় পক্ষের উল্লেখগুলির বেশিরভাগ অনুপস্থিত, তবুও packages.configপ্রতিটি প্রকল্পের জন্য ফাইল রয়েছে । প্রয়োজনীয় সমস্ত প্যাকেজ ইনস্টল / আপডেট করতে আমি কীভাবে নুগেট পাব? প্রতিটি প্রকল্পের জন্য কমান্ড লাইনের মাধ্যমে এটি করা দরকার?


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

2
সর্বশেষ NuGet 2.5 রিলিজের সাথে এখন প্যাকেজ পরিচালকের মধ্যে একটি "আপডেট করুন" বোতামটি হল: docs.nuget.org/docs/release-notes/...
এরিক Schierboom

টুইটারে এই থ্রেডটি এখন উপলভ্য হিসাবে আপডেট করা উচিত
কার্ল Cassar

সম্পর্কিত প্রকল্প: chocolatey.org
জয়ান

1
সন্ধানকারীদের সুবিধার জন্য, ভিএস ২০১৩-তে, আপনি সঠিকভাবে সমাধানটি ক্লিক করতে পারেন এবং 'নিউগেট প্যাকেজ রিস্টোর সক্ষম করুন' চয়ন করতে পারেন। তারপরে বিল্ড করুন।
হকিজে

উত্তর:


870

আপনি আপনার প্যাকেজগুলি পুনরুদ্ধার করতে nuget.exe ব্যবহার করতে পারেন বা নুগেট ২.7, বা তার উপরের সাথে ইনস্টল করা আপনি কেবল ভিজ্যুয়াল স্টুডিওতে আপনার সমাধানটি সঙ্কলন করতে পারেন, যা হারিয়ে যাওয়া প্যাকেজগুলি পুনরুদ্ধার করবে।

নিউগেট.এক্সির জন্য আপনি প্রতিটি প্রকল্পের জন্য নিম্নলিখিত কমান্ডটি চালাতে পারেন।

nuget install packages.config

অথবা নিউগেট 2.7 দিয়ে আপনি কমান্ড লাইনটি ব্যবহার করে সমাধানের সমস্ত প্যাকেজ পুনরুদ্ধার করতে পারেন

nuget restore YourSolution.sln

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

নুগেট ২.7 এবং তারপরে, ভিজুয়াল স্টুডিওগুলি আপনার সমাধানটি তৈরি করার সময় অদৃশ্য নুগেট প্যাকেজগুলি পুনরুদ্ধার করবে যাতে অনুগেট.এক্সি ব্যবহার করার দরকার নেই।

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

কমান্ড লাইন থেকে আপনি সমাধানে প্যাকেজগুলি nuget.org থেকে উপলব্ধ সর্বশেষ সংস্করণে আপডেট করতে পারেন।

nuget update YourSolution.sln

নোট করুন যে এটি কোনও নিউগেট প্যাকেজে কোনও পাওয়ারশেল স্ক্রিপ্ট চালাবে না।

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

Update-Package

আপনি এটিকে একটি প্রকল্পের মধ্যেও সীমাবদ্ধ রাখতে পারেন।

Update-Package -Project YourProjectName

আপনি যদি পূর্বের ইনস্টল করা একই সংস্করণগুলিতে প্যাকেজগুলি পুনরায় ইনস্টল করতে চান তবে আপনি কমান্ড -reinstallদিয়ে যুক্তিটি ব্যবহার করতে পারেন Update-Package

Update-Package -reinstall

আপনি এটিকে একটি প্রকল্পের মধ্যেও সীমাবদ্ধ রাখতে পারেন।

Update-Package -reinstall -Project YourProjectName

-reinstallবিকল্প প্রথম আনইনস্টল এবং তারপর একটি প্রকল্পে ফিরে আবার প্যাকেজটি ইনস্টল হবে।

অথবা, আপনি Manage Packagesডায়ালগটি ব্যবহার করে প্যাকেজগুলি আপডেট করতে পারেন ।

আপডেট:

  • 2013/07/10 - নিউগেট ২.7 এ নুগেট পুনরুদ্ধার সম্পর্কিত তথ্য সহ আপডেট হয়েছে
  • 2014/07/06 - ভিজ্যুয়াল স্টুডিওতে স্বয়ংক্রিয় প্যাকেজ পুনরুদ্ধার সম্পর্কিত তথ্যের সাথে আপডেট হয়েছে এবং নুগেটে অন্যান্য পরিবর্তনগুলির সাথে উত্তরটি আপডেট এনেছে।
  • 2014/11/21 - সম্পর্কিত তথ্য সহ আপডেট হয়েছে-reinstall

15
এটি করার জন্য ভিজ্যুয়াল স্টুডিওতে কিছু সাধারণ কমান্ড রয়েছে? সমাধানের জন্য আমি অটো-রিস্টোর সক্ষম করেছি তবে "বিল্ড" তবুও রেফারেন্স হারিয়ে যাওয়ার কারণে আমাকে পেলাম প্রচুর ত্রুটি (প্যাকেজগুলি প্যাকেজগুলি কনফিগ থেকে পুনরুদ্ধার করা হয়নি)।
বোরেক বার্নার্ড

1
নুগেট পাওয়ার সরঞ্জাম - github.com/davidfowl/NuGetPowerTools এর মতো কিছু ইনস্টল না করে আমি এটি ভাবি না । তবে এটি আপনার ইতিমধ্যে স্বতঃ-পুনরুদ্ধার হিসাবে মূলত একই জিনিস করবে।
ম্যাট ওয়ার্ড

2
এটি সাধারণভাবে প্যাকেজগুলি ইনস্টল করার জন্য কাজ করে, কেবল তাদের "পুনরুদ্ধার" করার জন্য নয় (কোনও বড় প্রযুক্তিগত পার্থক্য নেই, যেমন ইনস্টলটি পুনরায় ইনস্টল করা; তবে এটি সেই লোকদের মধ্যে সীমাবদ্ধ নয় যারা সমাধান প্যাকেজ পুনরুদ্ধার বৈশিষ্ট্যটি ব্যবহার করতে চান)। যাইহোক, আপনাকে এই উদ্দেশ্যে একটি পরিবেশের ভেরিয়েবল সক্ষম করুনNNGGetPackageRestore সেট করতে হবে। "নুগেট ইনস্টল প্যাকেজ.কনফিগ" এর আগে কল করার আগে আমি এটি আমার psake স্ক্রিপ্টে সেট করেছি: v env: सक्षमNuGetPackageRestore = "সত্য"। এটি মেশিন-বিস্তৃত ভেরিয়েবলগুলি (এবং সম্ভবত অন্যান্য বিল্ডগুলি) প্রভাবিত না করে পিএস প্রক্রিয়া এবং এটির প্রসেসগুলির জন্য প্রযোজ্য।
গ্যালাক্টর

পুনরুদ্ধার ইনস্টল করার মত এক নয়। কমান্ড লাইন থেকে একটি প্যাকেজ ইনস্টল করা আপনার প্রকল্পের পরিবর্তন করবে না তাই সমাবেশের উল্লেখগুলির মতো জিনিস যুক্ত করা হবে না।
ম্যাট ওয়ার্ড

3
সমাধানের সন্ধানের জন্য আমি অবশ্যই কমপক্ষে এক ঘন্টা ব্যয় করেছি এবং অবশেষে এটি ছিলUpdate-Package -reinstall -Project ProjectName
উইজ

528

বর্তমান সমাধানের সমস্ত প্রকল্পে সমস্ত প্যাকেজ পুনরায় ইনস্টল করুন:

Update-Package -Reinstall

বর্তমান সমাধানের বিশেষ প্রকল্পে সমস্ত প্যাকেজ পুনরায় ইনস্টল করুন ( অখণ্ডতা এবং ashes999 এর জন্য ধন্যবাদ ):

Update-Package -ProjectName 'YourProjectNameGoesHere' -Reinstall

60
আমি মনে করি এটিই ওপি চেয়েছিল এবং অন্য সমস্ত সমাধানের চেয়ে সহজতর উপায় ...
জামিনটো

4
এই মুহুর্তের অপশনটি যদি আপনার এখনই ডানদিকে কাজ করার প্রয়োজন হয়।
ক্রিস

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

7
এটি এই প্রশ্নের উত্তর হওয়া উচিত, স্বীকৃত উত্তরটি কাজ করে তবে এটি বিশেষত প্রশ্নের উত্তর দেয়। যা প্রয়োজন তা হবার জন্য +1।
ক্রিস্তান

10
এমনকি আপনি -IgnoreD dependferences স্যুইচ যোগ করতে চাইতে পারেন। আমার একটি আপডেট-প্যাকেজ ব্যর্থ হয়েছে কারণ আমার ব্যবহৃত প্যাকেজগুলির মধ্যে একটির নির্ভরতা আমার প্যাকেজ
ম্যাথিয়াস ফ্যালকনবার্গ

167

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

PM> Install-Package NuGetPowerTools
PM> Enable-PackageRestore

এর পরে, আপনি যখন আপনার সমাধানটি তৈরি করবেন তখন প্যাকেজগুলি অনুপস্থিত থাকলে স্বয়ংক্রিয়ভাবে ইনস্টল হয়ে যাবে।

হালনাগাদ:

এই কার্যকারিতাটি নিউজেট ১.6 এ ভিজ্যুয়াল স্টুডিও একীকরণের সাথে অন্তর্নির্মিত হয়েছে যাতে আপনার এমনকি নিউগেটপাওয়ারটুলগুলি ইনস্টল করতে হবে না বা কমান্ডগুলি টাইপ করতে হবে না। আপনাকে যা করতে হবে তা হ'ল

সলিউশন এক্সপ্লোরারের সলিউশন নোডটিতে ডান ক্লিক করুন এবং নিউগেট প্যাকেজ পুনরুদ্ধার সক্ষম করুন নির্বাচন করুন।

আরও তথ্যের জন্য এই নিবন্ধটি পড়ুন ।


6
এখানে আপডেট হওয়া উত্তরটি বেশিরভাগ মানুষের পক্ষে সেরা সমাধান হতে চলেছে কারণ তাদের কাছে nuget.exe থাকবে না (তবে ভিজ্যুয়াল স্টুডিওতে নুগেট ইনস্টল থাকবে)।
টড থমসন

1
তবে প্যাকেজটি পুনরুদ্ধার করুন আসলে আপনার জন্য nuget.exe ডাউনলোড করুন
কনস্ট্যান্টিন

4
আমি সবেমাত্র এটি করেছি। এবং এটি এখনও বিল্ড ব্যর্থ করে বলে রেফারেন্সগুলি অনুপস্থিত। বিল্ড বলছেন যে সমস্ত প্যাকেজ ইতিমধ্যে ইনস্টল করা আছে I আমি সমাধান / প্যাকেজ ফোল্ডারে প্রশ্নে থাকা প্যাকেজগুলি মুছে ফেলে এবং সেগুলি ডাউনলোড করে কাজ শুরু করে started
মাসলো

3
@ এইভাবে এইভাবে এখন এমন একটি সমাধানের পক্ষে অবমুক্ত করা হয়েছে যা আপনার সমস্ত প্রকল্পের ফাইলকে সংশোধন করে না।
মাফিন ম্যান

20

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

আপনি প্যাকেজ ম্যানেজার কনসোলটি প্যাকেজ.config ফাইলের সমস্ত প্যাকেজ গণনা করতে এবং সেগুলি পুনরায় ইনস্টল করতে পারেন।

# read the packages.config file into an XML object
[xml]$packages = gc packages.config

# install each package 
$packages.packages.package | % { Install-Package -id $($_.id) -Version $($_.version) }

4
আমি উপরের প্রতিটি উত্তর চেষ্টা করেছিলাম এবং সেগুলি আমার সমাধানগুলির একটিতে কাজ করতে পারি না। কিন্তু এই এক তারতম্য আছে। $packages.packages.package | % { Update-Package -reinstall -id $($_.id) }
পেরিজে

1
আপনি যদি একই সিএসপিজে একাধিক সমাধান ব্যবহার করেন তবে ন্যুগেট প্যাকেজ পুনরুদ্ধার করা দুঃস্বপ্ন!
felickz

1
এটি আমার সমস্যার সমাধান করেনি তবে এটি আমাকে আরও ভাল বোধ করেছে!
শয়তানের অ্যাডভোকেট

এটি দুর্দান্ত, এবং একটি নতুন প্রকল্পে প্যাকেজ স্থানান্তর করার একটি উপায় সরবরাহ করে: [xML] $ প্যাকেজগুলি = গিসি সি: \ প্যাথটোএক্সিস্টিং \ প্যাকেজস.কনফিগ # প্রতিটি প্যাকেজ ইনস্টল করুন $ প্যাকেজ.প্যাকেজ.প্যাকেজ | % {ইনস্টল-প্যাকেজ $ (। $: _ ID) -Version $ (। $: _ সংস্করণ) -id}
reckface

1
@ পেরিজে আপনি সবেমাত্র টাইপ করতে পারতেন Update-Package -Reinstall
BrainSlugs83

15
Update-Package -ProjectName 'YourProjectNameGoesHere' -Reinstall

এটি আমার কাছে পাওয়া সেরা এবং সহজ উদাহরণ। এটি প্যাকেজ.সনফিগ-এ তালিকাভুক্ত সমস্ত ন্যুগেটগুলি পুনরায় ইনস্টল করবে এবং এটি বর্তমান সংস্করণগুলি সংরক্ষণ করবে। YourProjectNameGoesHereপ্রকল্পের নাম দিয়ে প্রতিস্থাপন করুন ।


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

10

সর্বশেষতম নুগেট ২.২ রিলিজের সাথে প্যাকেজ পরিচালকগুলিতে এখন একটি "আপডেট অল" বোতাম রয়েছে: http://docs.nuget.org/docs/re कृपया-notes/nuget-2.5#Update_All_btonton_to_allow_updating_all_packages_at_once


2
এছাড়াও, প্যাকেজ ম্যানেজার কনসোল থেকে আপনি আপনার প্রকল্পের সমস্ত প্যাকেজগুলি করতে "আপডেট-প্যাকেজ" চালনা করতে পারেন: nuget.codeplex.com/wikipage?title=Updating%2020 সমস্ত
20

6

আমি ভিজ্যুয়াল স্টুডিও 2015 ব্যবহার করছি এবং উপরে বর্ণিত সমাধানগুলি আমার পক্ষে কার্যকর হয়নি, তাই আমি নিম্নলিখিতগুলি করেছি:

আমার সমাধান থেকে প্যাকেজ ফোল্ডারটি মুছুন এবং সমাধানের প্রতিটি প্রকল্প থেকে বিন এবং আপত্তি ফোল্ডারগুলি মুছুন এবং এটিকে পুনর্নির্মাণ করুন।

আপনার পরবর্তী ত্রুটি হতে পারে:

nuget.exe সনাক্ত করতে অক্ষম

এটি সমাধানের জন্য: আপনার নিউগেট.টারাজেটস ফাইলটিতে এই লাইনটি পরিবর্তন করুন এবং এটি সত্যে সেট করুন:

<DownloadNuGetExe Condition=" '$(DownloadNuGetExe)' == '' ">true</DownloadNuGetExe>

রেফারেন্স: https://stackoverflow.com/a/30918648 এবং https://stackoverflow.com/a/20502049


4

আপনি যদি 2.8 ইনস্টল করে থাকেন তবে চেকবক্সটি চেক করুন

Tools >> Nuget Manager >> Package Manager Settings >> Automatically check for missing packages during build

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


ভিজ্যুয়াল স্টুডিওর ইউআই থেকে সর্বাধিক সুবিধাজনক বিকল্প। আপনার Allow NuGet to download missing packagesচেকবক্সটিও পরীক্ষা করতে হবে ।
আরবিটি

4

3 ঘন্টা অনুসন্ধান এবং তদন্ত পরে।

আমার এটির সমস্যা ছিল কারণ আমাদের দলে দু'জন সদস্য রয়েছে (গিটহাব উত্স নিয়ন্ত্রণ ব্যবহার করে), কারণ আমরা রিমোট রিপোজিটরিতে প্রেরণের জন্য প্যাকেজগুলির জন্য ফাইলগুলি সীমাবদ্ধ করি নি, দলের সদস্যদের মধ্যে একজন সার্ভারে প্যাকেজ পাঠাচ্ছিল এবং আমি এই পরিবর্তনগুলি টানলাম আমার লোকাল

এর পরে আমারও পিওর মতো একই সমস্যা হয়েছিল, আমি আমার এপিআই প্রকল্পটি সার্ভারে প্রকাশ করতে সক্ষম হইনি।

এবং আমি সবেমাত্র ব্যবহার করেছি

আপডেট-প্যাকেজ-পুনরায় ইনস্টল করুন - প্যাকেজ ম্যানেজার কনসোলে এই কমান্ডটি চালান

এই কমান্ডটি আপনার সমাধানগুলিতে ব্যবহৃত সমস্ত প্যাকেজ পুনরায় ইনস্টল করবে। (প্রতিটি প্রকল্পের জন্য)

বর্তমান সমাধানের সমস্ত প্রকল্পে সমস্ত প্যাকেজ পুনরায় ইনস্টল করুন:

আপডেট-প্যাকেজ -প্রজেক্টনাম 'নেমঅফপ্রজেক্ট' -ইনস্টল করুন - প্যাকেজ ম্যানেজার কনসোলে এই কমান্ডটি চালান

এই কমান্ডটি আপনার সমস্ত প্যাকেজগুলি পুনরায় ইনস্টল করবে যা আপনি "-ProjectName" এর পরে নির্দিষ্ট করা প্রকল্পের সাথে সম্পর্কিত। এবং আমি মনে করি এটি আরও ভাল কারণ আমি সমস্ত প্যাকেজ সমাধানে পুনরায় ইনস্টল করার জন্য আধ ঘন্টা অপেক্ষা করেছিলাম।

এর জন্য রডল্ফো ব্রুককে অনেক ধন্যবাদ ।

এছাড়াও, আমি আপনাকে সুপারিশ করব যে আপনি যখন দূরবর্তী সার্ভার থেকে পরিবর্তনগুলি টানবেন তখন "প্যাকেজগুলি পুনরুদ্ধার করুন" বোতাম টিপুন যা ভিজ্যুয়াল স্টুডিওতে প্রদর্শিত হবে।


3

আমি বিশ্বাস করি আপনাকে প্রথমে যা করতে হবে তা হ'ল প্যাকেজ পুনরুদ্ধার বৈশিষ্ট্যটি সক্ষম করুনএখানেও দেখুন । এটি সমাধান (প্রকল্প নয়) পর্যায়ে করা হয়।

তবে এটি আপনাকে পুরোপুরি পাবে না - পুনরুদ্ধার বৈশিষ্ট্যটি সক্ষম করার পরে আমি একই ধরণের সমস্যায় পড়েছি। (ভিএস ২০১৩, নিউগেট ২.৮।)

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

যখন আমি একটি রিলিজ শাখা তৈরি করেছি তখন সমস্যাটি দেখা দিয়েছে। আমার ডিভ / মেইন / ট্রাঙ্ক শাখার স্থানীয় অনুলিপিতে বাইনারি ছিল, কারণ আমি এখানে প্যাকেজগুলি মূলত ইনস্টল / ডাউনলোড করেছি।
তবে নতুন প্রকাশিত শাখায়,

  • প্যাকেজ ফোল্ডার এবং .nupkgফাইলগুলি সেখানে ছিল - তাই অনুগেট ভাবেনি যে পুনরুদ্ধার করার মতো কিছু আছে;
  • তবে একই সময়ে, ডিএলএলগুলির মধ্যে কেউ উপস্থিত ছিল না - যেমন তৃতীয় পক্ষের উল্লেখগুলি অনুপস্থিত ছিল - তাই আমি তৈরি করতে পারিনি।

আমি সমস্ত প্যাকেজ ফোল্ডার মুছে ফেলেছি $(SolutionDir)/packages(রিলিজ শাখার অধীনে) এবং তারপরে একটি সম্পূর্ণ পুনর্নির্মাণ চালিয়েছি এবং এবার বিল্ডটি সফল হয়েছে।
... এবং অবশ্যই আমি ফিরে গিয়ে উত্স নিয়ন্ত্রণ থেকে প্যাকেজ ফোল্ডারগুলি সরিয়েছি (ট্রাঙ্ক এবং রিলিজ শাখায়)। আমি কিনা তা পরিষ্কার (এখনও) নাrepositories.configফাইলটিও অপসারণ করা উচিত ।

কমপক্ষে ওয়েব প্রকল্পগুলির জন্য - প্রকল্প টেমপ্লেটগুলি আপনার জন্য ইনস্টল করা অনেকগুলি উপাদান হ'ল নুগেট প্যাকেজ। অর্থাৎ, এই সমস্যাটি আপনি যুক্ত হওয়া প্যাকেজগুলির মধ্যে সীমাবদ্ধ নয়।
সুতরাং প্রকল্প / সমাধান তৈরি করার সাথে সাথেই প্যাকেজ পুনরুদ্ধার সক্ষম করুন এবং প্রাথমিক চেক-ইন করার আগে packagesফোল্ডারটি সাফ করুন (এবং নিশ্চিত করুন যে আপনি .nugetফোল্ডারটিকে উত্স নিয়ন্ত্রণে প্রতিশ্রুতিবদ্ধ করেছেন)।

দাবি অস্বীকার: আমি এখানে এসও-তে আরও একটি উত্তর দেখেছি যা নির্দেশ করে যে ক্লিয়ারিং packages ফোল্ডারটি রেজোলিউশনের অংশ। এটি আমাকে সঠিক পথে ফেলেছে, তাই আমি লেখককে ক্রেডিট দিতে চাই, তবে আমি আর এই প্রশ্ন / উত্তরটি খুঁজে পেতে পারি না। আমি যদি এটির জুড়ে হোঁচট খায় তবে আমি একটি সম্পাদনা পোস্ট করব।

আমি এটিও নোট করব যেগুলি এবং / ফাইলগুলিকে Update-Package -reinstallসংশোধন করবে । অন্তত আমার ক্ষেত্রে এটিই হয়েছিল। কোন আইএমএইচও এই বিকল্পটিকে অনেক কম আকর্ষণীয় করে তোলে।.sln.csproj.vbproj


আমার ঠিক একই সমস্যাটি ছিল এবং প্যাকেজগুলি আপগ্রেড এবং পুনরায় ইনস্টল করার জন্য দীর্ঘ সময় ব্যয় করা হয়েছিল যখন আপনি বলছেন যে স্থানীয় প্যাকেজগুলি মুছে ফেলার দরকার ছিল needed
থমাস ববি

3

আমি চেষ্টা করেছি Update-Package -reinstallকিন্তু এটি কোনও প্যাকেজে ব্যর্থ হয়েছে এবং আমার সমাধানে থাকা সমস্ত প্রকল্পের প্যাকেজগুলি প্রক্রিয়াজাতকরণ বন্ধ করে দিয়েছে।

আমি আমার স্ক্রিপ্টটি দিয়ে শেষ করেছি যা সমস্ত Update-Package -Reinstall -ProjectName prj -Id pkgপ্যাকেজ। কনফিগ ফাইলগুলি গণনা করে এবং প্রতিটি প্রকল্প / প্যাকেজটির জন্য চালায় ।

আশা করি এটি কারও পক্ষে কার্যকর হতে পারে:

$files = Get-ChildItem -Recurse -Include packages.config;

[array]$projectPackages = @();
$files | foreach { [xml]$packageFile = gc $_; $projectName = $_.Directory.Name; $packageFile.packages.package.id | foreach { $projectPackages += @( ,@( $projectName, $_ ) ) } }

$projectPackages | foreach { Update-Package -Reinstall -ProjectName $_[0] -Id $_[1] }

সম্পাদনা: এটি আমার ছিল এমন একটি ত্রুটি: আপডেট-প্যাকেজ: প্যাকেজ 'এন্টিফ্রেমওয়ার্ক.বুল্কইনসার্ট-ইএফ 6' খুঁজে পেতে অক্ষম। ইনস্টল বা আপডেট সম্পাদনের আগে বিদ্যমান প্যাকেজগুলি পুনরুদ্ধার করতে হবে। ম্যানুয়াল রান Update-Package -Reinstall -ProjectName my_prj -Id EntityFramework.BulkInsert-ef6 খুব ভাল কাজ করেছে।


2
ধন্যবাদ. আমি আনন্দে
কেঁদেছি

আমিও আনন্দে কেঁদেছি! হ্যাঁ!! কি সময় রক্ষাকারী এফওয়াইআই হিসাবে ঠিক যদি আপনি সের্গেই স্ক্রিপ্টের শেষ লাইনের পরিবর্তে এই লাইনটি ব্যবহার করেন তবে এটি নির্ভরতা ইনস্টল করবে না। কেবল একটি সরল পুনরায় ইনস্টল করুন: $ প্রজেক্টপ্যাকেজ | পূর্বাভাস {আপডেট-প্যাকেজ -পরিবর্তন -পরিবর্তন -পরিবর্তন -প্রজেক্টনাম $ _ [0] -আইডি $ _ [1]}
এলমাটাডোর

2

বিল্ড সার্ভারটি এই কারণে ভুগার কারণে এখানে আগতদের জন্য, আপনি নীচে যেমন ন্যুগেট রিস্টোর কমান্ডটি চালাতে এক্সিকিউট কমান্ডটি চালাচ্ছেন একটি এমএসবিল্ড টার্গেট তৈরি করতে পারেন (এই ক্ষেত্রে nuget.exe .uget ফোল্ডারে রয়েছে, পরিবর্তে পাথ), যা এরপরে সমাধান তৈরির আগে অবিলম্বে একটি TeamCity বিল্ড পদক্ষেপে চালানো যেতে পারে

<Target Name="BeforeBuild">
  <Exec Command="..\.nuget\nuget restore ..\MySolution.sln"/>
</Target>

1

এখন ভিজ্যুয়াল স্টুডিও 2012-এ ন্যুগেট প্যাকেজ ম্যানেজার কনসোল আপনাকে শীঘ্রই একটি "পুনঃস্থাপন" বোতাম দেয় যখন এটি কোনও প্যাকেজ ইনস্টলড না হয়ে পাওয়া যায় তবে সেখানে প্যাকেজ.কনফিগে রয়েছে। দুর্দান্ত বৈশিষ্ট্য!


2
এই হিসাবে ভাল ভিসুয়াল স্টুডিও 2010 জন্য সত্য
paulroho

1

VS2012 V11 এ, আমি যদি লাইনের শেষে "-ইনস্টল" ব্যবহার করি তবে এটি কাজ করে না।

সুতরাং আমি সহজভাবে ব্যবহার করেছি:

Update-Package -ProjectName 'NAME_OF_THE_PROJECT'

1

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

সম্পাদনা 2014-09-25 10:55 AM EST - স্ক্রিপ্টে একটি বাগ স্থির করে

$packagePath = "packages.config"
$projectName = "MyProjectName"

$packagesToIgnore = @(
    "bootstrap",
    "jQuery",
    "jquery-globalize",
    "jquery.mobile",
    "jQuery.jqGrid",
    "jQuery.UI.Combined",
    "jQuery.Validation",
    "Microsoft.jQuery.Unobtrusive.Validation",
    "Modernizr",
    "Moment.js"
)

[xml]$packageFile = gc $packagePath
$packagesToProcess = $packageFile.packages.package | Where-Object {$packagesToIgnore -notcontains $_.id}

$packagesToProcess | % { Update-Package -reinstall -projectname $projectName -id $($_.id) }

0

ভিজ্যুয়াল স্টুডিও 2017 - আপনি যখন আইডিই ব্যবহার করে সংকলন করবেন - এটি সমস্ত অনুপস্থিত নুগেট প্যাকেজ ডাউনলোড করবে এবং "প্যাকেজগুলি" ফোল্ডারে সংরক্ষণ করবে।

তবে বিল্ড মেশিন সংকলনটি এমএসবিল্ড.এক্সই ব্যবহার করে করা হয়েছিল। সেক্ষেত্রে আমি nuget.exe ডাউনলোড করেছি।

Msbuild.exe চালানোর আগে প্রতিটি বিল্ড প্রক্রিয়া চলাকালীন। এটি চালিয়ে যাবে -> nuget.exe পুনরুদ্ধার করুন NAME_OF_SLN_File (যদি কেবলমাত্র একটি .SLN ফাইল থাকে তবে আপনি সেই প্যারামিটারটিকে উপেক্ষা করতে পারবেন)।


আমি দেখতে পেয়েছি যে আপনি এমএসবিল্ড -t ব্যবহার করতে পারেন: এটি করার জন্য কমান্ড লাইনে এসএলএন-এ পুনরুদ্ধার করুন। MSbuild -t:restore Xxxx.sln
মাইক কেলি

0

কখন থেকে জানেন না, তবে ভিএস2019 এ আপনি এটি আরও সহজ উপায়ে করতে পারেন:

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