एसेट फाइल प्रोजेक्ट.सेट्स.जसन नहीं मिला। एक NuGet पैकेज पुनर्स्थापना चलाएँ


262

मैं nopCommerce (जो .NET कोर में लिखा है) का उपयोग करने की कोशिश कर रहा हूं, लेकिन जब मैं इस परियोजना को चलाना चाहता हूं तो मुझे 52 त्रुटियों का सामना करना पड़ता है जो मुझे बता रहे हैं कि एक नगेट पैकेज बहाल करें

एसेट फ़ाइल ~ \ obj \ परियोजना। संपत्तियांjson ' नहीं मिली। इस फ़ाइल को बनाने के लिए एक NuGet पैकेज पुनर्स्थापना चलाएँ। Nop.Web.MVC.Testsote

जब मैं समाधान पर राइट क्लिक का उपयोग करता हूं और पुनर्स्थापना नुगेट पैकेज का चयन करता हूं तो मुझे यह संदेश मिलता है:

सभी पैकेज पहले से ही स्थापित हैं और बहाल करने के लिए कुछ भी नहीं है।

लेकिन वे 52 त्रुटियां अभी भी हैं और उपकरण में हैं -> NuGet पैकेज मैनेजर -> समाधान के लिए NuGet पैकेज प्रबंधित करें समाधान पर कुछ भी स्थापित नहीं है, मैंने हाल ही में अपने VS2017 को 15.5.4 में अपडेट किया है


क्या आपने बहाल करने के लिए NuGet को सहमति प्रदान की है? उपकरण, विकल्प पर जाएं, NuGet की खोज करें, और "अनुमति दें NuGet ..." विकल्प की जांच करें।
IMPS

यदि कोई मैक पर है, तो हमें यह समस्या थी और रिपॉजिटरी पथ में रिक्त स्थान को हटाकर इसे ठीक कर दिया (जो गिट पुल के दौरान बनाया गया था): मेरा% 20Project MyProject हो जाता है।
डेविड हेग

जवाबों:


459

टूल> NuGet पैकेज मैनेजर> पैकेज मैनेजर कंसोल से इस त्रुटि को ठीक करने के लिए बस चलाएं:

dotnet restore

त्रुटि तब होती है क्योंकि डॉटनेट क्ली प्रारंभ में सभी आवश्यक फ़ाइलों को नहीं बनाता है। डॉटनेट रिस्टोर करना आवश्यक फाइलों को जोड़ता है।


21
बिल्ड सर्वर के लिए भी यह ठीक था। सामान्य NuGet पुनर्स्थापना के बाद "डॉटनेट पुनर्स्थापना" चलाने के लिए एक कमांड लाइन कदम जोड़ा गया।
मार्क

24
आप इसे MSBuild से भी कर सकते हैं: Msbuild MySolution.sln / t: Restore
Der_Meister

3
@ Der_Meister का समाधान / t जोड़ने के लिए: पुनर्स्थापना विकल्प ने मेरे लिए काम किया, हालांकि, मुझे दो बार समाधान का निर्माण करना पड़ा (दो अलग-अलग बिल्ड चरण)। पहले / t: पुनर्स्थापना विकल्प के साथ और फिर इसके बिना।
माइकल

16
@ मिचेल, MySolution.sln / t: पुनर्स्थापित करें की कोशिश करो; पुनर्स्थापित करें? निर्माण
Der_Meister

8
यदि आपके पास एक से अधिक समाधान फ़ाइल हैं, तो आपको करने की आवश्यकता हैdotnet restore solutionfilename.sln
ECH

97

मेरे मामले में त्रुटि जीआईटी रिपॉजिटरी थी। इसमें नाम का स्थान था, जिससे मेरी परियोजना बहाल नहीं हो सकी

यदि यह आपका मुद्दा है, तो क्लोन करते समय जीआईटी भंडार का नाम बदलें

git clone http://Your%20Project%20With%20Spaces newprojectname

6
मैंने अपने आप से सोचा कि यह संभवतः नहीं हो सकता है। अन्य प्रस्तावित समाधानों पर एक और घंटे की कोशिश करने के बाद, मैंने आखिरकार इस हताशा से बाहर निकलने की कोशिश की और इसने मेरी समस्या को हल कर दिया। दमय man ती यार!
स्टार्क

2
इसने इस मुद्दे को तय किया जो मैं कर रहा था, धन्यवाद!
शरबेल

3
यह उत्तर पोस्ट की शुरुआत में होना चाहिए न कि अंत में। मेरा मुद्दा हल किया।
कोडविअर

2
आपने मेरा दिन बचाया! धन्यवाद।
mpatel

3
मेरे मामले में मैंने सिर्फ 20% निकालकर अपने भौतिक फ़ोल्डर का नाम बदल दिया और इसे सामान्य स्थान से बदल दिया और हर चीज़ अच्छी तरह से काम कर रही है
hosam hemaily

42

मामले में जब 'डॉटनेट रिस्टोर' काम नहीं करता है, तो निम्नलिखित कदम मदद कर सकते हैं:

  1. विजुअल स्टूडियो >> टूल्स >> विकल्प >> नगेट मैनेजर >> पैकेज सोर्स
  2. किसी तीसरे पक्ष के पैकेज स्रोतों को अनचेक किया गया।
  3. समाधान का पुनर्निर्माण करें।

3
मुझे हाल ही में पहचान सर्वर क्विकस्टार्ट # 1 के लिए इस मुद्दे का सामना करना पड़ा: क्लाइंट क्रेडेंशियल्स का उपयोग करके एक एपीआई सुरक्षित करना और उपरोक्त समाधान मेरे लिए काम किया।
थारिंदु जयसिंघ

धन्यवाद! मैंने वास्तव में एक स्रोत को हटा दिया था जो अब (किसी अन्य समाधान से) प्रासंगिक नहीं था और nuget.org और MSVS ऑफ़लाइन पैकेज स्रोतों पर मैंने अपडेट बटन पर क्लिक किया । इसके बाद dotnet restoreकाम किया।
CPHPython

धन्यवाद, यह बात थी!
tdracz

33

विजुअल स्टूडियो को बंद करने और फिर से खोलने ने मेरे लिए इस मुद्दे को हल कर दिया, एक बार जब मैंने यह सुनिश्चित कर लिया था कि यहां पोस्ट किए गए अन्य उत्तरों के अनुसार नूगेट पैकेज बहाल किए गए थे।

संपादित करें: ऐसे मौकों पर मुझे एक और पुनरारंभ करने के तुरंत बाद विजुअल स्टूडियो को फिर से शुरू करना पड़ता है, इसलिए यह मत मानिए कि पुनरारंभ करने से सिर्फ इसलिए मदद नहीं मिलेगी क्योंकि आपने हाल ही में पुनः आरंभ किया है।


विश्वास नहीं कर सकता यह मेरे लिए भी काम किया
डॉटनेट

मेरे पास अपने काम लैन पर कुछ अलग कनेक्टिविटी मुद्दे थे जो NuGet के लिए अवरोधक थे। मेरे पीसी को रिबूट करने से समस्या हल हो गई!
नियो

यह वास्तव में एक जवाब है, क्योंकि कभी कभी आप के लिए CLI उपकरण का उपयोग नहीं है getऔर buildऔर आप खुले बनाम नहीं है मुझे पता है कि यह वीएस के साथ क्यों काम करता है - क्योंकि वीएस स्वचालित रूप से परियोजना निर्भरता का समाधान करता है।
टीएस

@TS सवाल "दृश्य स्टूडियो 2017" के साथ टैग है, इसलिए मैं कहता हूँ कि हम इस है एक जवाब। यद्यपि आप एक दिलचस्प बात उठाते हैं, कि समस्या वीएस पर निर्भरता के समाधान के साथ है। यदि आपके पास कोई और जानकारी है कि क्या गलत हो रहा है, तो मुझे यकीन है कि यह दिलचस्प पढ़ना होगा
बकाया

+1। तुमने मुझे पकड़ लिया! वीएस के साथ, ओह अच्छी तरह से। उसका संस्करण 15.5 छोटी गाड़ी था। मुझे लगता है कि 15.5 / 15.6 में संदर्भ समाधान के लिए मुद्दों की मेजबानी थी। अब, यहाँ उत्तर है stackoverflow.com/a/58548856/1704458
TS

20

एक ही संदेश के साथ Azure DevOps / VSTS पर्यावरण में मेरे जैसे ही मुद्दे वाले लोगों के लिए: C:\Program Files\dotnet\sdk\2.2.104\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(208,5): Error NETSDK1004: Assets file '...\obj\project.assets.json' not found. Run a NuGet package restore to generate this file

/t:Restoreबिल्ड समाधान में अपने MSBuild तर्क में जोड़ें ।


9

मेरे लिए जब मैंने किया था - डॉटनेट पुनर्स्थापना अभी भी त्रुटि हो रही थी।

में गया था

1 टूल -> नुगेट पैकेज मानेगर -> पैकेज प्रबंधक सेटिंग्स -> "नगेट केच पर साफ़ करें" पर क्लिक करें।

2 डॉटनेट पुनर्स्थापित करें

हल किए गए मुद्दे।


मैं अगली बार ऐसा होने जा रहा हूं। यह मेरा (क्लोज़ और रीओपेन वीएस) की तुलना में बेहतर दृष्टिकोण हो सकता है जो आम तौर पर मेरे लिए उम्र लेता है
बकाया राशि

6

दृश्य स्टूडियो 2017 में कृपया निम्न चरणों का पालन करें:

1) टूल => विकल्प => NuGet Package Manager => पैकेज स्रोत चुनें और फिर Microsoft Visual Studio ऑफ़लाइन पैकेज विकल्प को अनचेक करें । यहां छवि विवरण दर्ज करें

2) अब टूल => नुगेट पैकेज मैनजर => पैकेज मैनेजर कंसोल खोलें। 3) PM> डॉटनेट रीस्टोर में कमांड निष्पादित करें।

आशा है कि इसका काम ...


6

मेरे लिए मैंने NuGet.exe को 3.4 से 4.9 में अपग्रेड किया क्योंकि 3.4 समझ में नहीं आता कि .NET कोर के लिए पैकेज को कैसे पुनर्स्थापित किया जाए।

जानकारी के लिए कृपया टीमनेट के साथ डॉटनेट रिस्टोर बनाम नगेट रिस्टोर देखें


हां - मुझे यह तब मिला जब हमने पुराने .Net फ्रेमवर्क प्रोजेक्ट्स को नए .csprojप्रोजेक्ट फॉर्मेट में माइग्रेट करना शुरू किया ।
स्टुअर्टएलसी


3

उत्तर के लिए थोड़ा देर से लेकिन लगता है कि यह मूल्य जोड़ देगा। त्रुटि को देखते हुए - यह CI / CD पाइपलाइन में लगता है।

बस "डॉटनेट बिल्ड" चलाना पर्याप्त पर्याप्त होगा।

डॉटनेट का निर्माण

डॉटनेट डिफ़ॉल्ट रूप से "रिस्टोर" चलाता है।


1
पाइप लाइन (निर्माण से पहले) में कदम ".NET कोर" जोड़कर और ड्रॉपडाउन से "डॉटनेट रिस्टोर" कमांड का चयन करके प्राप्त किया जा सकता है। मैं यहां विशेष रूप से वीएसटीएस पाइपलाइन के बारे में बात कर रहा हूं।
लेक ओसिस्की

3

ऊपर कुछ भी मेरे लिए काम नहीं किया। लेकिन बस सभी 'बिन' और 'obj' फ़ोल्डरों को डिलीट करने का काम किया।


यह मुद्दा मेरे लिए ख़ुशी की बात है जब मैंने डॉक़रफाइल पर काम किया। उन फ़ोल्डरों को हटाने से कंटेनर के काम में डॉटनेट को ठीक से बहाल किया गया।
जोहान्स


2

VSTS का उपयोग करते समय, अपनी Global.json फ़ाइल की जाँच करें। मैंने सिर्फ "2.2" के रूप में sdk संस्करण में प्रवेश किया था, जो एक पार्स त्रुटि का कारण बना (लेकिन स्थानीय रूप से निर्माण करते समय नहीं)। पूर्ण संस्करण को जोड़ने, "2.2.104" ने समस्या को हल किया।


2

मैंने Azure DevOps में इस त्रुटि पर कई घंटे गंवा दिए, जब मैंने अपने समाधान में एक व्यक्तिगत प्रोजेक्ट बनाने के लिए एक संपूर्ण पाइपलाइन में 'Visual Studio Build' कार्य को पूरे समाधान के बजाय सेट किया।

ऐसा करने का अर्थ है कि DevOps या तो किसी भी निर्माण नहीं करता है (या संभवतः कुछ, मुझे यकीन नहीं है कि जो परियोजनाएं आपके द्वारा बनाई गई परियोजना द्वारा संदर्भित हैं), और इसलिए उन परियोजनाओं में उनकी परियोजना नहीं होगी। json .asset फाइलें जनरेट होती हैं, जो तब इस समस्या का कारण बनती हैं।

मेरे लिए समाधान VS बिल्ड कार्य MSBuild कार्य का उपयोग करने से स्वैप करने के लिए था। किसी व्यक्तिगत प्रोजेक्ट के लिए MSBuild कार्य का उपयोग करना आपके द्वारा बनाई गई परियोजना द्वारा संदर्भित किसी भी प्रोजेक्ट को सही ढंग से बनाता है और इस त्रुटि को समाप्त करता है।


2

यदि यह त्रुटि Azure DevOps (TFS) में एक बिल्ड के हिस्से के रूप में होती है और आपके बिल्ड में पहले से ही NuGet पुनर्स्थापना कार्य है, तो यह त्रुटि इंगित कर सकती है कि NuGet पुनर्स्थापना कार्य सभी पैकेजों को पुनर्स्थापित करने में सक्षम नहीं था, खासकर यदि आप एक कस्टम पैकेज स्रोत का उपयोग करते हैं इस तरह के एक आंतरिक NuGet सर्वर के रूप में)। /t:Restore;BuildMSBuild Arguments को जोड़ना त्रुटि को हल करने का एक तरीका लगता है, लेकिन यह MSBuild को एक अतिरिक्त NuGet पुनर्स्थापना कार्रवाई करने के लिए कहता है। मेरा मानना ​​है कि यह सफल होता है क्योंकि MSBuild विजुअल स्टूडियो में कॉन्फ़िगर किए गए कस्टम पैकेज स्रोत का उपयोग करता है। एक बेहतर समाधान NuGet पुनर्स्थापना कार्य को ठीक करना है।

NuGet पुनर्स्थापना कार्य के लिए एक कस्टम पैकेज स्रोत को कॉन्फ़िगर करने के लिए:

  1. एक NuGet.configफ़ाइल बनाएँ जो सभी पैकेज स्रोतों (Microsoft Visual Studio ऑफ़लाइन पैकेज, nuget.org, और आपके कस्टम पैकेज स्रोत) को सूचीबद्ध करती है और इसे स्रोत नियंत्रण में जोड़ती है।
  2. उपयोग करने के लिए फ़ीड्स के तहत Nuget पुनर्स्थापना कार्य में : मेरे NuGet.config में फ़ीड का विकल्प चुनें ।
  3. को पथ प्रदान करें NuGet.config
  4. /t:Restore;BuildMSBuild कार्य से विकल्प निकालें ।

अतिरिक्त जानकारी यहाँ उपलब्ध है


1

यदि केवल NuGet संकुल को पुनर्स्थापित करना काम नहीं करता है तो टूल्स -> Options -> NuGet Package Manager -> General के तहत पैकेज रिस्टोर करें कि "NuGet को लापता पैकेज डाउनलोड करने की अनुमति दें" चेक किया गया है।

फिर obj और बिन फ़ोल्डर्स को हटाने के बाद फिर से NuGet संकुल को पुनर्स्थापित करें या बस REBUILD


1

यदि @ Mostafa-bouzari सुझाव मदद नहीं करता है, तो त्रुटियों के लिए 'त्रुटि सूची' या 'आउटपुट' विंडो में सावधानीपूर्वक देखें कि क्यों नूगेट को पुनर्स्थापित नहीं किया जा सकता है, उदाहरण के लिए यदि आप प्रॉक्सी के पीछे हैं तो शुद्ध समस्या के कारण।


मेरे मामले में, Nuget Restore हमारे प्राइवेट NuGet रिपॉजिटरी से कनेक्ट नहीं हो सका, क्योंकि मैं कंपनी VPN से कनेक्ट नहीं था। पैकेज प्रबंधक कंसोल लॉग की जाँच करने में मदद मिली।
अलेक्जेंडर पुचकोव

1

यह समस्या तब हो रही है जब आपका बिल्ड टूल बनाम restoreका उपयोग करने के लिए सेट की गई परियोजनाओं पर करने के लिए सेट नहीं है और ज्यादातर नेट कोर और नेटस्ट्रीम नई शैली परियोजनाओं को प्रभावित करते हैं।PackageReferencepackages.config

जब आप विजुअल स्टूडियो खोलते हैं और निर्माण करते हैं, तो यह आपके लिए इसका समाधान करता है। लेकिन अगर आप स्वचालन, सीएलआई उपकरणों का उपयोग करते हैं, तो आप इस मुद्दे को देखते हैं।

यहां कई समाधान पेश किए जाते हैं। लेकिन आपको याद रखने की ज़रूरत है, आपको मजबूर करने की ज़रूरत है restore। कुछ उदाहरणों में आप dotnet restoreनिर्माण से पहले उपयोग करते हैं । यदि आप MsBuild का उपयोग कर निर्माण करते हैं तो बस /t:Restoreअपने कमांड में स्विच जोड़ें ।

निचला रेखा, आपको यह देखने की आवश्यकता है कि पुनर्स्थापना को सक्रिय क्यों नहीं किया जा सकता है। या तो खराब नगेट स्रोत या लापता पुनर्स्थापना कार्रवाई, या पुरानी nuget.exe, या उपरोक्त सभी।


1

बहुत अजीब अनुभव मैंने सामना किया है!

मैंने पहले जीआईटी बैश और जीआईटी सेमी-लाइन के साथ क्लोन किया था, मुझे उपरोक्त मुद्दों का सामना करना पड़ा।

बाद में, मैंने कछुआ-जीआईटी के साथ क्लोन किया और सब कुछ उम्मीद के मुताबिक काम किया।

हो सकता है कि यह एक पागल जवाब हो, लेकिन इसके साथ कोशिश करने से एक बार आपका समय बच सकता है!


1

VS-2019 बनाम 16.4.0 पर एक WinForms Core 3.1 परियोजना (परियोजना टेम्पलेट्स से) को जोड़ने के बाद इसे देखा और इसे बॉक्स से बाहर चलाने की कोशिश की। संपूर्ण समाधान को साफ या पुनर्निर्माण ने काम नहीं किया।

मैंने अपना समाधान फिर से लोड किया .. जो कि फ़ाइल / क्लोज़ समाधान है और फिर इसे फिर से खोलना और इसे फिर से बनाना समस्या को हल कर दिया।


0

मुझे त्रुटि तब मिली जब मैंने VS2017 में डॉट नेट कोर में एक लैम्ब्डा बनाया। मेरे लिए जो काम किया गया वह था परियोजना को उतारना और उसे वापस लोड करना।


0

अपने वीएस को प्रशासक के रूप में चलाएं, इसके बाद पैकेज मैनेजर कंसोल में डॉटनेट रिस्टोर चलाएं।


0

एक और, अगर किसी भी तरह से आप ड्रॉपबॉक्स का उपयोग कर रहे हैं Conflicted, तो फ़ाइल नामों की जांच करें, अपने रेपो में एक खोज करें और उन सभी विवादित फ़ाइलों को हटा दें।

यदि आपने फ़ाइलों को इधर-उधर कर दिया है तो ऐसा हो सकता है।


0

इस दोष के कारण: आपको फ़ाइल एक्सप्लोरर में इंजेक्ट किए गए नुगेट को निकालना होगा। समाधान: एक बार जब आप अपने सिस्टम में उस Nuget को हटा देते हैं, तो निम्न स्थान से हटा दें। Tool => Options => NuGet Package Manager => पैकेज स्रोत चुनें और फिर Microsoft Visual Studio ऑफ़लाइन पैकेज विकल्प को अनचेक करें



0

मेरे मामले में मुझे उपलब्ध पैकेज स्रोतों के साथ एक समस्या थी। मैंने स्थानीय नगेट रिपॉजिटरी फ़ोल्डर को एक नए पथ पर स्थानांतरित कर दिया था, लेकिन मैंने इसे नूगेट उपलब्ध पैकेज स्रोतों में अपडेट नहीं किया। जब मैंने पथ समस्या को ठीक कर लिया है, तो इसे उपलब्ध पैकेज स्रोतों में अपडेट करें और उसके बाद सब कुछ (नगेट रेस्टर, आदि) ठीक काम कर रहा था।


0

मेरे लिए यह एक नगेट स्रोत क्रेडेंशियल्स समस्या बन गया। मैंने हाल ही में एक नेक्सस सर्वर तक पहुंचने के लिए अपना पासवर्ड बदल दिया था और विजुअल स्टूडियो अभी भी पुराने पासवर्ड का उपयोग कर रहा था, जब उस सर्वर पर एक नगेट को विंडोज़ क्रेडेंशियल मैनेजर के माध्यम से एक्सेस करने की कोशिश की जा रही थी। इसे ठीक करने के लिए, मुझे क्रेडेंशियल मैनेजर में उन पुरानी क्रेडेंशियल्स के लिए प्रविष्टि को हटाना पड़ा और उसके बाद, जब मैंने एक नगेट रिस्टोर किया, तो उसने मुझे एक पासवर्ड के लिए प्रेरित किया जिससे मुझे नया पासवर्ड दर्ज करने की अनुमति मिली, जो फिर से क्रेडेंशियल मैनेजर में सेव हो गया। आप CmdKey.exe का उपयोग करके क्रेडेंशियल प्रबंधक को cmd लाइन से एक्सेस कर सकते हैं।


0

यह कोशिश करो (यह मेरे लिए काम किया):

  • VS को प्रशासक के रूप में चलाएं
  • सबसे हाल के संस्करण के लिए मैनुअल अद्यतन NuGet
  • परियोजना में सभी बिन और obj फ़ाइलों को हटाएँ।
  • पुनः आरंभ करें वी.एस.
  • पुन: संयोजित

0

आप इसके लिए जा सकते हैं: टूल> नुगेट पैकेज मैनेजर> पैकेज मैनेजर कंसोल

और फिर चलाएँ:

डॉटनेट पुनर्स्थापित करें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.