NuGet पैकेज गायब हैं


297

मैंने इस समस्या को खोजा लेकिन किसी भी समाधान ने काम नहीं किया। मेरे पास विजुअल स्टूडियो प्रोफेशनल 2015 स्थापित है और मैं टीएफएस का उपयोग कर रहा हूं। मेरा NuGet संस्करण 3.1.6 है। यह समस्या केवल मेरे C # वेब API / MVC प्रोजेक्ट में हो रही है।

मुझे नीचे त्रुटि मिल रही है:

यह प्रोजेक्ट NuGet पैकेज (ओं) को संदर्भित करता है जो इस कंप्यूटर पर गायब हैं। उन्हें डाउनलोड करने के लिए NuGet Package Restore का उपयोग करें। अधिक जानकारी के लिए, http://go.microsoft.com/fwlink/?LinkID=322105 देखें । अनुपलब्ध फ़ाइल है .. \ पैकेज \ Microsoft.Net.Compilers। .0.0 \ build \ Microsoft.Net.Compilers.pps

  1. मेरे पास मेरे समाधान में .nuget फ़ोल्डर नहीं है।
  2. मेरे पास समाधान में एक पैकेज फ़ोल्डर है और जब मैं इसे हटाता हूं, तो ऐसा लगता है कि NuGet निर्भरता का पुनर्निर्माण करता है, लेकिन परियोजना में अभी भी उपरोक्त त्रुटि है।
  3. मैंने टीएफएस से परियोजना को हटाने की कोशिश की और इसे ठीक नहीं किया।
  4. उपरोक्त त्रुटि के साथ, परियोजना के सभी संदर्भों में पीले रंग की चेतावनी के संकेत हैं और कहते हैं कि वे गायब हैं।
  5. जब मैंने प्रोजेक्ट के लिए NuGet Package Manager की जाँच की, तो जो कुछ भी "गायब" है, उसके पास एक ग्रीन टिक है, जिसमें Microsoft.Net.Compilers शामिल हैं।
  6. मैंने एक नई वेब एपीआई / एमवीसी परियोजना को जोड़ने की कोशिश की और इसे इसी तरह की समस्या का सामना करना पड़ा जहां ओवेन जैसे अधिकांश संदर्भ पीले चेतावनी संकेत के साथ "गायब" थे।

नए उपयोगकर्ताओं द्वारा कम गुणवत्ता वाले पोस्ट किए गए उत्तरों की कतरनी राशि के कारण इस प्रश्न को बंद करने के लिए वोट।
ZF007

जवाबों:


265

मुझे आज भी वही त्रुटि (बिल्कुल वही पैकेज याद आ रही है) मिली थी। मैंने एमवीसी + वेब एपीआई परियोजना भी बनाई।

यह खुशी की बात है क्योंकि मैंने ऐप फ़ाइलों (.csproj सहित) फ़ाइल को किसी अन्य स्थान पर स्थानांतरित कर दिया है। मैंने मैन्युअल रूप से .sln फ़ाइल को अपडेट किया था लेकिन सभी पैकेज निर्भरताएँ अब (Visual Studio 2015) .csproj फ़ाइल में संग्रहीत हैं।

.Csproj फ़ाइल को संपादित करना और समाधान फ़ोल्डर (जिसमें संकुल फ़ोल्डर शामिल है) के लिए सापेक्ष पथ को ठीक करना मेरे लिए समस्या का समाधान करता है।


2
Microsoft.Net.Compilers की नकल करना ... पुराने संकुल फ़ोल्डर से नए पैकेज के स्थान पर फ़ोल्डर को स्थानांतरित करने के बाद यदि यह गायब है तो एक अंतिम चरण की आवश्यकता हो सकती है।
जस्टिन विग्नॉल

2
मैंने अभी अपने कंप्यूटर से उस एक पैकेज को निकाला और यह काम कर गया।
SpoiledTechie.com

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

2
मेरे पास एक स्थान से दूसरे स्थान पर परियोजना को स्थानांतरित करने के बाद भी यही मुद्दा था। ".Csproj" फ़ाइल में संकुल के फिक्सिंग पथ ने समस्या को ठीक कर दिया।
निर्मण

2
@ MiłoszWieczorek मैंने पैकेज मैनेजर कंसोल में कमांड चलाने की कोशिश की और यह समस्या हल नहीं हुई। इसने सभी पैकेजों को पुनः लोड किया, लेकिन संदर्भ अभी भी नहीं मिले हैं।
फ्रांसिस्को डिकोनिया

360

मैंने इस कोड को .csprojफ़ाइल से निकाल कर अपनी समस्या हल कर ली है:

<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
  <PropertyGroup>
    <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
  </PropertyGroup>
  <Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
</Target>

5
स्वीकृत जवाब से काम नहीं चलेगा क्योंकि मैं कई अलग-अलग समाधानों में परियोजना का संदर्भ दे रहा हूं। यह एकमात्र फिक्स था। यह टिप्पणी की और यह एक आकर्षण की तरह काम किया।
लेवी फुलर

31
मैं गलत हो सकता है, लेकिन मेरा मानना ​​है कि यह "हथौड़ा के साथ मक्खी swatting" है। यदि, जो भी कारण से, प्रकाशित स्थान किसी भी अन्य आवश्यक नगेट पैकेज को खो देता है, तो यह आपको त्रुटि नहीं देगा , जिससे आपको एक गलत सकारात्मक (यानी तैनाती सफल हो जाती है, लेकिन सिस्टम विफल हो जाता है)। प्रशंसक नहीं है, लेकिन मैं इसे कम नहीं करने जा रहा हूं क्योंकि नगेट के कुछ पहलू हैं जिनसे मैं अभी भी परिचित नहीं हूं।
हेजिको 23

4
यह भी मेरे लिए काम किया। अजीब बात है कि त्रुटि संदेश को proj फ़ाइल में ही हार्ड-कोड किया गया था ...
रयान पीटर्स

7
इस समस्या की पुष्टि अभी भी वीएस 2017 में मौजूद है। मैंने दृश्य स्टूडियो 2015 से 2017 तक एक प्रोजेक्ट माइग्रेट किया और 2017 में पहली बार संकलन पर यह त्रुटि संदेश मिला। यह बग तय किया।
टॉम मैकडोनाल्ड

2
कार्यक्षमता को क्यों हटाएं, ऐसा करने से आपकी परियोजना के टूटने आदि का खतरा है? जैसा कि @HeyZiko बताते हैं कि इससे आगे चलकर समस्याएं हो सकती हैं। मैं सिर्फ वही कर सकता हूं जो त्रुटि बताता है "पैकेज पुनर्स्थापना सक्षम करें"। इस पृष्ठ पर कहीं मेरा उत्तर देखें ...
निको

45

BEWARE - यह संपूर्ण प्रोजेक्ट के लिए न केवल परियोजना के लिए अद्यतन करता है।

यदि आपके पास एक और लापता नगेट पैकेज है जो आपके समाधान का निर्माण करते समय आपकी त्रुटि का उपयोग करते हुए टूल> नुगेट पैकेज मैनेजर> पैकेज प्रबंधक कंसोल से Nuget कमांड कंसोल का उपयोग करके कमांड का उपयोग करता है। यह आपके सभी मौजूदा पैकेजों को फिर से स्थापित करेगा।

Update-Package –reinstall

अपडेट करें:

आप पैरामीटर के रूप में विशिष्ट प्रोजेक्ट नाम पारित कर सकते हैं।

Update-Package –reinstall -ProjectName SampleApp

1
इसने मेरे लिए काम किया। एक सिस्टम पर git के माध्यम से बदलाव को धकेलने और दूसरे पर खींचने के बाद त्रुटि मेरे लिए पॉप अप हो गई। हो सकता है कि मेरे .itignore को nuget संकुल के लिए ठीक से कॉन्फ़िगर नहीं किया गया है।
पैट्रिक बोरोविक्ज़

16
खबरदार ... यह संपूर्ण परियोजना के लिए न केवल परियोजना के लिए अद्यतन करता है।
SO यूजर

1
इसने मेरे लिए काम किया। NuGet लापता पैकेज के बारे में शिकायत करता रहा, लेकिन Visual Studio ऑटो-रिज़ॉल्यूशन नहीं करेगा। पूरी तरह से चलने में कुछ मिनट लगे, लेकिन इस कमांड ने मेरी समस्या को ठीक कर दिया।
निक अलेक्जेंडर

8
आप केवल विशिष्ट परियोजना के लिए इसे बनाने के लिए -ProjectName पैरामीटर जोड़ सकते हैं, संपूर्ण समाधान नहीं।
मिआलोस्ज़ विक्ज़ोरेक

2
VS2017 इस के माध्यम से आधे रास्ते में दुर्घटनाग्रस्त हो गया है और यह सब कुछ तोड़ दिया
रोल

19

मेरे पास यह सटीक निराशाजनक संदेश था। आखिरकार मेरे लिए क्या काम किया / पैकेज के अंदर सभी फ़ाइलों और फ़ोल्डरों को हटा दिया गया और वीएस को अगले निर्माण के लिए सब कुछ फिर से लाने दिया।


2
मैंने सॉल्यूशन पर राइट क्लिक किया और Restore Nuget Packages
विटोर कैनोवा

1
मेरे पास कोई भी रिस्टोर नगेट पैकेज नहीं है जब मैं समाधान पर राइट क्लिक करता हूं .... मैं वीएस 2013 का उपयोग कर रहा हूं ..
जिग्लर

यह भी सुनिश्चित करना था कि यह सही पैकेज के लिए पुनर्स्थापित करता है। नोट का उपयोग कर .csproj की जाँच करें / संपादित करें * संकुल फ़ोल्डर के स्थान के लिए .csproj
AceMark

15

Tiberiu सही है। मुझे अपनी .csproj फ़ाइल को संपादित करना पड़ा क्योंकि फाइलें स्थानांतरित हो गईं और इस मुद्दे का कारण बनीं

 <Import Project="..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />

मैं फ़ाइल के शीर्ष पर और सबसे नीचे बदल गया

<Error Condition="!Exists('..\..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props'))" />
<Error Condition="!Exists('..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />

अंत में मेरे लिए जो काम किया, वह फ़ाइल के अंत में केवल पंक्ति को संपादित करना था, लेकिन शीर्ष पर नहीं
ISAE

15

इस तरह से मेरी त्रुटि हल हो गई: Visual Studio 2015+ समाधान एक्सप्लोरर में अपडेट के लिए .csproj फ़ाइल खोलने के लिए:

प्रोजेक्ट का नाम राइट-क्लिक करें -> प्रोजेक्ट को अनलोड करें

प्रोजेक्ट का नाम राइट-क्लिक करें -> .csproj

निम्नलिखित पंक्तियाँ निकालें:

<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
    <PropertyGroup>
      <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
    </PropertyGroup>
    <Error Condition="!Exists('..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props'))" />
    <Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />
    <Error Condition="!Exists('packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', 'packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props'))" />
    <Error Condition="!Exists('packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', 'packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />
  </Target>

प्रोजेक्ट का नाम राइट-क्लिक करें -> रीलोड प्रोजेक्ट

अंत में अपना समाधान बनाएँ।


Csproj में पथों को मैन्युअल रूप से ठीक करने के बाद मैंने सुनिश्चित करें खंड EnsureNuGetPackageBuildImports हटा दिया है और यह पूरी तरह से काम करता है। धन्यवाद
willyMon

11

मैंने .csproj फ़ाइल से निम्न कोड निकालकर इस समस्या को हल किया

<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
  <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\..\..\Assemblies\NuGet\SpecFlow.Plus.Excel.1.4.2\build\SpecFlow.Plus.Excel.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\Assemblies\NuGet\SpecFlow.Plus.Excel.1.4.2\build\SpecFlow.Plus.Excel.targets'))" />


1
लेकिन पहली जगह में ये गलत क्यों हैं? दृश्य स्टूडियो में बग?
रक्षक एक '

8

2 उत्तरों के संयोजन ने मेरे लिए काम किया। पहले मैंने .csproj फाइल को संशोधित करके 1.0.0 संस्करण का संदर्भ हटा दिया

< Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild" >

  ----Error---

< /Target>

और फिर किया

Update-Package -Reinstall

से और यह काम किया।


6

मेरे लिए, समस्या यह थी कि जब मैंने समाधान को एक नए फ़ोल्डर में कॉपी किया और इसे खोला, तो यह नुगेट फ़ोल्डर को याद कर रहा था जैसा कि नीचे दिखाया गया है। मैंने इस फ़ोल्डर को कॉपी किया और सब कुछ काम किया। नोट: यह वही फ़ोल्डर हमारे स्रोत नियंत्रण में था लेकिन इस समाधान परियोजना में नहीं, यह एक निर्देशिका था।

यहां छवि विवरण दर्ज करें


6

बस NuGet पैकेज पुनर्स्थापना सक्षम करें। अपने समाधान पर राइट क्लिक करें> 'सक्षम करें एनगेट पैकेज रिस्टोर' चुनें।

अपने समाधान पर राइट क्लिक करें> 'सक्षम करें एनगेट पैकेज रिस्टोर' चुनें

यह NuGet.Config फ़ाइल के साथ .nuget फ़ोल्डर बनाएगा और मेरी समस्या को ठीक करेगा।


धन्यवाद!! मुझे भी इसी तरह की स्थिति का सामना करना पड़ा, और 'नूगेट पैकेज रिस्टोर को सक्षम करें' ने काम किया।
जैन प्रिंस

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

5

मैं VS2012 का उपयोग कर रहा हूं और उसी त्रुटि का सामना कर रहा हूं। मैंने .csproj फ़ाइल से निम्न लक्ष्य टैग को हटा दिया और यह बिना किसी त्रुटि के संकलन शुरू कर दिया।

<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
  -- Error messages within Target Tag
</Target>

5

यहां कुछ उत्तरों पर विस्तार करने के लिए, हां आप अपनी .csproj फ़ाइल से निम्न ब्लॉक निकाल सकते हैं:

<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">

और यह समस्या को ठीक करता है, हालांकि मेरे मामले में, मैंने देखा कि मेरे पास .NET.Compilers और .CodeDom.Providers के विभिन्न संस्करणों के साथ अतिरिक्त संदर्भ थे:

<Error Condition="!Exists('..\packages\Microsoft.Net.Compilers.1.0.0
<Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\

<Error Condition="!Exists('..\packages\Microsoft.Net.Compilers.2.0.1
<Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.3\

जब मेरे package.config ने केवल निम्नलिखित का संदर्भ दिया:

<package id="Microsoft.Net.Compilers" version="2.0.1"
<package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.3"

.Csproj फ़ाइल से 1.0.0 आइटम निकाल कर समस्या को हल किया गया।


2

किसी के लिए जो मेरे पास मौजूद मुद्दे के साथ ठोकर खाता है (कुछ नहीं, लेकिन सभी पैकेज एक बिल्ड सर्वर पर बहाल किए जा रहे हैं), मेरे लिए पहेली का अंतिम टुकड़ा मेरे समाधान की जड़ में एक NuGet.config जोड़ रहा था, जो कि .SLN को सहला रहा था। फ़ाइल के रूप में डेविड Ebbo यहाँ समझाया: http://blog.davidebbo.com/2014/01/the-right-way-to-restore-nuget-packages.html

Ebbo के ब्लॉग पोस्ट से, मेरे लिए फ़ाइल सामग्री बस है

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="nuget.org" value="https://www.nuget.org/api/v2/" />
  </packageSources>
</configuration>

अपडेट करें:

NuGet API URL v3 (वर्तमान सेप्ट 2016 के अनुसार) के लिए बदल गया है। से https://www.nuget.org/

<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />

1

त्रुटि संदेश पूरी तरह से सही है। मैंने सभी तरकीबें आजमाईं और किसी ने काम नहीं किया। परियोजना (सरल एमवीसी वेब ऐप परीक्षण) विंडोज 8.1 वीएस 2015 समुदाय से विंडोज 10 पर मेरे नए परीक्षण बॉक्स में स्थानांतरित हो गई है। वीएस के लिए सभी नवीनतम अपडेट लागू होते हैं। मैं कंपाइलर्स पैकेज का कोई नया संस्करण भी स्थापित नहीं कर सका।

Loop:
<LOOP>This seems to be a Ground Hog Day phenomena.</LOOP>
GoTo Loop

मैंने अंततः Microsoft.Net.Compilers.1.0.0 को पुराने प्रोजेक्ट से नए में कॉपी किया और यह काम कर गया। मैं फिर नए संस्करण के लिए अन्य पैकेजों को अपडेट करना शुरू कर सकता हूं। मेरे लिए एक नगेट प्रोजेक्ट अपग्रेड प्रक्रिया बग जैसा दिखता है।

नोट: मूल परियोजना वीएस 2015 में बनाई गई थी और इसमें कोई विरासत नगेट पद्धति नहीं है।


1

समाधान जो मेरे मामले में काम करता है - विजुअल स्टूडियो 2015 एंटरप्राइस, प्रोजेक्ट .NET 4.6.1

  1. अद्यतन 3 पर अपग्रेड करें
  2. वेब डेवलपर टूल इंस्टॉल करें

विजुअल स्टूडियो इंस्टॉलेशन wizzard


1

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


1

मेरे पास यह मुद्दा एज़्योर में एक असफल निर्माण के रूप में था, जब गिट से तैनात किया गया था।

मेरे .gitignore को चालू करने buildसे फ़ोल्डर को बाहर रखा गया था ..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.0\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props

एक बार buildफ़ोल्डर (बल) Git के लिए प्रतिबद्ध था, समस्या हल हो गई थी।


1

मैंने निम्नलिखित चरणों के साथ उसी मुद्दे को हल किया

  1. पैकेज <package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="2.0.1" targetFramework="net46" />से हटाए गए पैकेज । फाइल फ़ाइल।
  2. .Csproj प्रोजेक्ट फ़ाइल को संपादित करें और नीचे की सेटिंग्स को हटा दें। <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">     <PropertyGroup>       <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>     </PropertyGroup>     <Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />   </Target>

    1. पैकेज मैनेजर कंसोल पर जाएं और कमांड चलाएं Update-Package –reinstall

प्वाइंट # 2 और 3 अन्य उपयोगकर्ताओं द्वारा दिए गए थे और मैं उन उपयोगकर्ताओं की सराहना करता हूं। बिंदु # 1, को हटानाMicrosoft.CodeDom.Providers.DotNetCompilerPlatform पैकेज से .config फ़ाइल अधिक महत्वपूर्ण है। इसके अलावा, बिंदु # 3 में उल्लिखित कमांड को चलाने के बाद, समस्या हल हो गई। सभी अवांछित पैकेज हटा दिए गए और आवश्यक पैकेज संदर्भ अपडेट किए गए।

आशा है कि यह किसी की मदद करता है।


0

मुझे इसका कोई समाधान नहीं मिला, इसलिए मैंने निम्नलिखित सामग्री के साथ prebuild.ps1 नामक समाधान की रूट निर्देशिका में nuget.exe और एक पॉवरशेल स्क्रिप्ट की एक प्रति जोड़ी।

$nugetexe = 'nuget.exe'
$args = 'restore SOLUTION_NAME_HERE.sln'
Start-Process $nugetexe -ArgumentList $args

मैंने इस शिल्पी लिपि को अपनी बिल्ड में प्री-बिल्ड स्क्रिप्ट पथ में बुलाया यहां छवि विवरण दर्ज करें


0

जब मैंने समाधान फ़ाइल और प्रोजेक्ट फ़ोल्डर के साथ संकुल फ़ोल्डर की प्रतिलिपि बनाई तो मेरा काम हुआ। मैंने पिछले स्थान से संकुल फ़ोल्डर की प्रतिलिपि नहीं बनाई थी।


0

आप सुझाए गए त्रुटि संदेश को संकेत के रूप में भी उपयोग कर सकते हैं। यहां बताया गया है कि, समाधान के लिए प्रबंधित पैकेज कैसे ढूंढें, और हल लापता नगेट पैकेज पर क्लिक करें।

बस


0

संकलक विकल्प में टिप्पणी करें WebConfig:

<!--<system.codedom>
<compilers>
  <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" />
  <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" />
</compilers>
</system.codedom>-->

पैकेज विन्यास फाइल में संकुल के नवीनतम संस्करण को अद्यतन करें

  <package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.4" targetFramework="net452" />

यदि सभी ठीक हैं, तो आगे बढ़ने की आवश्यकता नहीं है, अन्यथा प्रोजेक्ट को राइट-क्लिक करें, 'प्रोजेक्ट को अनलोड करें' पर फिर से राइट-क्लिक करें और फिर से संपादित करें। .csproj फ़ाइल

कोडडम के मार्ग को मान्य करें, यह पिछले पथों में net45 नहीं था, इसे मैन्युअल रूप से जोड़ें, सहेजें, लोड करें, फिर से बनाएँ। यह काम करना चाहिए।

<Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.4\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.4\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />

0

जैसा कि कई ने <Target>टैग को हटाने का सुझाव दिया है , यह संकलन-योग्य बना सकता है। फिर भी, इस तथ्य से सावधान रहें कि जब आप परीक्षण परियोजनाओं के लिए करते हैं तो इसका दुष्प्रभाव होता है।

MSTest.TestAdapterसंकलन करते समय मुझे नगेट पैकेज से संबंधित त्रुटि मिली । <Target>टैग हटाकर उस समस्या को हल किया गया । यद्यपि इसने निर्माण को सफल बनाया, परीक्षण विधियाँ गैर-खोज योग्य बन गईं। टेस्ट एक्सप्लोरर उस परियोजना में परीक्षण विधियों को सूचीबद्ध नहीं करेगा और रन टेस्ट या डीबग टेस्ट भी काम नहीं करेगा।

मैंने इसका उपयोग करते हुए सामना किया Visual Studio 2017और .Net framework 4.7, यह अन्य संस्करणों में बहुत अच्छी तरह से हो सकता है


1
मैं वास्तव में VS2017, .Net4.7 और एक इकाई परीक्षण परियोजना का उपयोग कर रहा हूँ। उस परियोजना को कई समाधानों में जोड़ा जाता है। स्वचालित पुनर्स्थापना कार्य करती है लेकिन गलत स्थान पर। $(SolutionDir)काम के साथ बदलें लेकिन विफलताओं को अपडेट करें। मैंने पूछा कि यहाँ । क्या आपके पास कोई समाधान है?
सेबस्टियन शुमन

0

मेरे लिए मुद्दा यह था कि NuGet स्वचालित रूप से पैकेज प्राप्त / अपडेट नहीं कर सकता था क्योंकि पूर्ण फ़ाइल पथ बहुत बड़ा होगा। मेरे दस्तावेज़ में एक फ़ोल्डर में एक गहरी नेस्टेड फ़ोल्डर के बजाय मेरे समाधान को ले जाकर तय किया

फिर समाधान पर राइट-क्लिक करें और "रिस्टोर नूगेट पैकेजस" का चयन करें (जो कि जरूरी नहीं है कि आप इसे बनाएंगे और इसे आपके लिए करने दें), और फिर सभी पैकेज प्राप्त करने के लिए "सॉल्यूशन के लिए नूगेट पैकेज प्रबंधित करें" चुनें। नवीनतम संस्करण में अपडेट किया गया।

यह Microsoft की वेब साइट से डाउनलोड किए गए एक नमूना ASP MVC अनुप्रयोग के समाधान के लिए था।


0

DevOps / बिल्ड इंजीनियरों के लिए, आप शायद nuget restoreप्रभावित SLN, या प्रोजेक्ट के विरुद्ध इस रनिंग को ठीक कर सकते हैं यदि आपके पास SLN की कमी है। मुझे हमारे CI / CD के लिए हमारे UWP प्रोजेक्ट्स के लिए यह करना होगा।

  1. सुनिश्चित करें कि नगेट बिल्ड दास पर या तो विजुअल स्टूडियो या स्टैंडअलोन में स्थापित है। यदि यह बाद वाला है, तो सुनिश्चित करें कि यह पथ में है और चरण 2 को छोड़ दें।
  2. या तो वीएस देव सीएमडी कंसोल खोलें, या पहले से ही खुले एक के माध्यम से लोड करें, जिसे आप नीचे दिए गए निर्देशों के साथ कर सकते हैं:
    वीएस2015 call "%VS140COMNTOOLS%VsDevCmd.bat"
    या
    वीएस2017call "%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Enterprise\Common7\Tools\VsDevCmd.bat"
  3. call nuget restore MyStuff.SLNया call nuget restore MyStuff.csprojअगर कोई SLN नहीं है।

0

यकीन नहीं होता कि यह किसी की मदद करेगा, लेकिन मेरे पास यह मुद्दा तब आया जब मैंने अपनी स्थानीय मशीन से स्रोत कोड को कभी भी बिना हल किए फ़ाइल को TFS में सहेज दिया। (प्रारंभिक विकास के दौरान, मैं समाधान एक्सप्लोरर में प्रोजेक्ट में राइट-क्लिकिंग और चेकिंग कर रहा था, लेकिन समाधान में कभी भी जांच करना भूल गया।) जब मुझे इस पर फिर से काम करने की आवश्यकता थी, तो मेरे पास TFS में सभी थी। .csproj फ़ाइल। नहीं .sln फ़ाइल। इसलिए वीएस में मैंने एक फ़ाइल -> स्रोत नियंत्रण -> उन्नत - सर्वर से खोलें और .csproj फ़ाइल खोली। वहाँ से मैंने एक सेव ऑल किया और इसने मुझसे पूछा कि मैं .sln फाइल को कहाँ सेव करना चाहता हूँ। मैं इस .sln फ़ाइल को अन्य फ़ोल्डर (App_Data, App_Start, आदि) के साथ परियोजना निर्देशिका में सहेज रहा था, शीर्ष स्तर निर्देशिका नहीं। मुझे अंत में पता चला कि मुझे प्रोजेक्ट फ़ोल्डर से निर्देशिका को फाइल करने के लिए बचाने की जरूरत है इसलिए इसे ' प्रोजेक्ट फ़ोल्डर के समान स्तर पर है। मेरे सभी रास्ते हल हो गए और मैं इसे फिर से बनाने में सक्षम था।


0

मेरे लिए मेरी gitignore फ़ाइल मेरे संकुल फ़ोल्डर की अनदेखी कर रही थी। निम्नलिखित gitignore लाइन समस्या पैदा कर रहा था -

**/packages/*

हटा दिया गया और इसने मेरे संकुल फ़ोल्डर को पुनर्स्थापित कर दिया। मनाइए कि यह किसी और के लिए सहायक हो।


0

मुझे इस त्रुटि के चारों ओर एक फिक्स मिला, वास्तव में मैं अपने पैकेज फ़ोल्डर में MSTest.TestAdapter (1.3.2) का एक अलग संस्करण था और tocsproj फ़ाइल संदर्भ MSTest.TestAdapter (1.1.0) की ओर इशारा कर रहे थे। मैंने सभी MSTest.TestAdapter (1.1.0) को MSTest.TestAdapter (1.3.2) में बदल दिया है, और इससे मेरी समस्या हल हो गई।


0

मुझे लगता है कि यह सवाल पुराना है, हालांकि मैं आज भी इसी स्थिति में था और किसी भी हाल में इस मुद्दे को खोजने के लिए अपने 2 सेंट में फेंकना चाहता था। एक एएसपी एमवीसी परियोजना जिसे मैंने अपने समाधान में मैन्युअल रूप से एक सबफ़ोल्डर में स्थानांतरित किया था और फिर विज़ुअल स्टूडियो 2017 का उपयोग करते हुए समाधान को हटा दिया गया था और उल्लिखित त्रुटि दे रहा था। "Lib" और "संकुल" फ़ोल्डर को उसी सबफ़ोल्डर के मूल में ले जाना, जैसा कि MVC प्रोजेक्ट ने मेरा मुद्दा ठीक किया है।


0

मैं एक ही मुद्दा रहा था, यह उन परियोजनाओं में से एक है जो मैं संदर्भित कर रहा था समाधान निर्देशिका के बाहर था (और इसलिए उसी '/ संकुल फ़ोल्डर' को साझा नहीं किया था)। मेरे लिए काम करने वाले समाधान को संदर्भ परियोजना के समाधान को खोलना और वहां निर्माण करना था। एक बार उस परियोजना का निर्माण, त्रुटियों दूर चला गया।

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