Visual Studio 2017 Microsoft.NETCore.App पैकेज ("परियोजना द्वारा अवरुद्ध") को अपडेट नहीं कर सकता


82

मेरे पास एक डॉटनेट ऐप है जो Microsoft.NETCore.App 1.1.2 को लक्षित कर रहा है। मैंने उस परियोजना के खिलाफ परीक्षण करने के लिए एक परीक्षण परियोजना बनाई थी, लेकिन निर्माण करते समय मैंने इस चेतावनी को देखा: यहाँ छवि विवरण दर्ज करें

मैं NuGet पैकेज मैनेजर खोलता हूं और देखता हूं कि चेतावनी सही है, परीक्षण की जा रही परियोजना का Microsoft.NETCore.App का एक अलग संस्करण है: यहाँ छवि विवरण दर्ज करें यहाँ छवि विवरण दर्ज करें

मेरी समस्या यह है कि विज़ुअल स्टूडियो मुझे उस संस्करण को अपडेट नहीं करने दे रहा है, इसलिए मैं इस मुद्दे को हल करने के बारे में उलझन में हूं: यहाँ छवि विवरण दर्ज करें आदर्श रूप से मैं सिर्फ ड्रॉपडाउन पर क्लिक करूंगा और सही संस्करण का चयन करूंगा लेकिन विज़ुअल स्टूडियो का दावा है कि यह इस वजह से ऐसा नहीं कर सकता है " परियोजना या संकुल में अतिरिक्त अड़चनें .config "। मुझे उस पैकेज को कैसे अपडेट करना चाहिए? विज़ुअल स्टूडियो किस "अतिरिक्त बाधाओं" का जिक्र कर रहा है?


ऐसा लगता है कि परीक्षण परियोजना डाउनग्रेड को रोक रही है। क्या आपने समाधान पर राइट क्लिक करने और समाधान के लिए नगेट पैकेज का प्रबंधन करने की कोशिश की और एक ही समय में सभी परियोजनाओं को अलग-अलग संस्करण में स्थानांतरित कर दिया?
केन टकर

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


मैंने इस प्रश्न / उत्तर में पाई गई सभी जानकारी एकत्र की: stackoverflow.com/questions/52518059/… क्योंकि यह समस्या वास्तव में एक प्रश्न प्रतीत होती है। यहाँ मेरे जवाब मेरे परिदृश्य के लिए पूरे नहीं हैं
जोश सेप

एक ही त्रुटि थी जब मैं अपने समाधान में विभिन्न परियोजनाओं में .net कोर फ्रेमवर्क के विभिन्न संस्करणों को गलती से लक्षित कर रहा था। सुनिश्चित करें कि प्रत्येक संस्करण के लिए प्रोजेक्ट गुण समान संस्करण हैं।
ओबेलिस

जवाबों:


51

EDIT 2018 : पैकेज अपडेट करने के निर्देशों का पालन करें यदि आप वास्तव में जानते हैं कि आप क्या कर रहे हैं। ज्यादातर मामलों में, आपको इस पैकेज को अपडेट करने की आवश्यकता नहीं है - या "परियोजना द्वारा अवरुद्ध" के रूप में चिह्नित अन्य पैकेज - मैन्युअल रूप से। एक फ्रेमवर्क-आश्रित ऐप उपलब्ध नवीनतम रनटाइम का उपयोग करेगा और एक स्व-निहित एप्लिकेशन इस पैकेज के नए संस्करण का उपयोग करके स्वचालित रूप से एक अतिरिक्त निर्माण करेगा। (कुछ किनारे मामले हैं जहां आपको परीक्षण परियोजनाओं में इस पैकेज को अपग्रेड करने की आवश्यकता है। इस मामले में, अन्य विकल्पों के लिए इस प्रश्नोत्तर को जोड़ें <TargetLatestRuntimePatch>true</…>और देखें )

निहित पैकेज का संदर्भ है कि Microsoft.NET.Sdkशिशुओं को न्यूगेट के माध्यम से अपडेट नहीं किया जा सकता है।

यदि आप project.json से माइग्रेट हुए हैं, तो 1.1.0संदर्भ संभावना वाली परियोजना सम्‍मिलित है

<RuntimeFrameworkVersion>1.1.0</RuntimeFrameworkVersion>

csproj फ़ाइल या इस तरह के एक आइटम (यदि आप संस्करण को सेट करने के लिए पहले पैकेज प्रबंधक का उपयोग कर सकते हैं):

<PackageReference Update="Microsoft.NETCore.App" Version="1.1.0" />

उपरोक्त और सभी पैकेजों की प्रविष्टियों को हटा दें 1.1.2(या जो भी स्थापित एसडीके नवीनतम मानता है) स्वचालित रूप से संदर्भित करेगा। अल्टरनेटिवली, RuntimeFrameworkVersionसभी प्रोजेक्ट्स में सेट ।


2
आप सही थे: मैंने .csproj फ़ाइल खोली और <RuntimeFrameworkVersion>1.1.0</RuntimeFrameworkVersion>लाइन को हटा दिया । VS अभी भी मुझे मैन्युअल रूप से संस्करण बदलने की अनुमति नहीं देगा, लेकिन कम से कम अब यह सही संस्करण है (यह 1.1.2 में अपडेट है जैसा आपने कहा था)
riqitang

48

मुझे .NET कोर 2 वेब ऐप में Entityframework.Core पैकेज को स्थापित करने की कोशिश करने में समान समस्या थी। समस्या को हल करने के लिए, मैंने पैकेज मैनेजर कंसोल के माध्यम से स्थापना को मजबूर किया है:

Install-Package Microsoft.NETCore.App -Version 2.0.5

(उस समय 2.0.5 सबसे हाल का संस्करण था)

मुझे आशा है कि यह उपयोगी है। शांति।


7
इसने मेरे लिए 2.1.1 में अपग्रेड करने का काम किया -> शानदार उत्तर और मेरे द्वारा खोजे जा रहे सभी लेखों से गायब।
पॉल

यह आखिरकार मेरे लिए भी काम कर गया। VS2017 के pmc में प्रत्येक प्रोजेक्ट के लिए इसे कॉल करने के बाद मैंने v2.1.0 से v2.1.3 में अपग्रेड किया
पॉल मीम्स

1
स्थापित करें-पैकेज Microsoft.NETCore.App
Dorathoto

5
हालांकि यह 'परियोजना द्वारा अवरुद्ध' क्यों है? क्या यह किसी प्रकार का बग है या इसका कोई अच्छा कारण है? अगर वहाँ एक अच्छा कारण शायद ऊपर कर एक अच्छा विचार नहीं है? या यह समस्या को ठीक करता है?
नीको

इस संकेत के लिए धन्यवाद। तो "परियोजना द्वारा अवरुद्ध" वीएस नुगेट जीयूआई द्वारा अवरुद्ध के रूप में निकला।
ग्रिम

19

मेरे लिए जोड़ रहा है

<TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>

चाल चली

<PropertyGroup>
  <TargetFramework>netcoreapp2.1</TargetFramework>
  <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
  <TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
</PropertyGroup>

तो यह वर्तमान मशीन पर रूपरेखा के नवीनतम संस्करण को लक्षित करेगा। यदि स्थानीय कंप्यूटर को पैच किया गया है और होस्ट सर्वर तब मुद्दों में नहीं चलेगा?
जॉम्पीयर

मुझे वास्तव में नहीं पता है क्योंकि हम स्व-निहित तैनाती कर रहे हैं। लेकिन एक जंगली अनुमान के रूप में मैं कल्पना करूंगा क्योंकि यह "नवीनतम" और कोई विशिष्ट संस्करण नहीं कहता है कि यह मौजूद नहीं होने पर इसका उपयोग नहीं करेगा। @ जोंमेयेर
gsharp

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

@sam क्या आपने दूसरों के समाधान की भी कोशिश की? ऐसा लगता है कि 30 लोगों के साथ दो जवाब भी कुछ लोगों के लिए काम करते हैं।
gsharp

हाँ। मैंने किया। मैं जो करने की कोशिश कर रहा हूं, वह यूआई में समाधान विकल्प के लिए प्रबंधन नगेट पैकेज का उपयोग करें और माउस क्लिक का उपयोग करके इंस्टॉल / अनइंस्टॉल करें। मैन्युअल रूप से csproj फ़ाइलों को संपादित करने के लिए नहीं। और मैं यूआई का उपयोग करने में सक्षम नहीं हूं। आपका तरीका और अन्य विकल्प काम करते हैं, लेकिन UI काम नहीं करता है।
सैम

7

संक्षिप्त जवाब

Microsoft.AspNetCore.Appअपनी .csproj फ़ाइल में पैकेज संदर्भ के लिए एक स्पष्ट संस्करण जोड़ें ।

लंबा जवाब

मेरे पास एक नया नेटकोरैप 2.1 प्रोजेक्ट था। निम्न .csproj फ़ाइल में था। ध्यान दें कि Microsoft.AspNetCore.Appपैकेज संदर्भ से जुड़ा कोई संस्करण नहीं था ।

<ItemGroup>
  ...
  <PackageReference Include="Microsoft.AspNetCore.App" />
  ...
</ItemGroup>

मैंने Microsoft.Extensions.Logging.Abstractionsएक निर्भरता बेमेल (निर्माण त्रुटि) को हल करने के लिए पैकेज में एक स्पष्ट संदर्भ जोड़ा । Micorsoft.AspNetCore.Appइस निर्भरता का संस्करण 2.1.0 चाहता था, लेकिन दूसरा पैकेज 2.1.1 संस्करण चाहता था। मेरी .csproj फ़ाइल अब इस तरह दिख रही थी।

<ItemGroup>
  ...
  <PackageReference Include="Microsoft.AspNetCore.App" />
  <PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="2.1.1" />
  ...
</ItemGroup>

इसने पैकेज Micorsoft.AspNetCore.Appके 2.1.0 संस्करण की आवश्यकता के बारे में चेतावनी को कम कर दिया Microsoft.Extensions.Logging.Abstractionsलेकिन संस्करण 2.1.1, निश्चित रूप से हल हो गया था।

Micorsoft.AspNetCore.Appओपी द्वारा बताए अनुसार पैकेज मैनेजर द्वारा चेतावनी को ठीक करने के लिए संस्करण 2.1.1 को अपडेट करने की कोशिश की गई।

मैंने Micorsoft.AspNetCore.Appइस तरह संस्करण 2.1.1 का स्पष्ट रूप से उपयोग करने के लिए अपने पैकेज संदर्भ को अद्यतन किया ।

<ItemGroup>
  ...
  <PackageReference Include="Microsoft.AspNetCore.App" Version="2.1.1" />
  <PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="2.1.1" />
  ...
</ItemGroup>

इसने बिल्ड वार्निंग तय की और Microsoft.AspNetCore.Appपैकेज मैनेजर के सभी संस्करणों को अनब्लॉक कर दिया । मैं Microsoft.Extensions.Logging.Abstractionsमूल त्रुटि को फिर से प्रस्तुत किए बिना स्पष्ट संदर्भ को हटाने में सक्षम था । अंतिम .csproj इस तरह के मुद्दों के साथ देखा।

<ItemGroup>
  ...
  <PackageReference Include="Microsoft.AspNetCore.App" Version="2.1.1" />
  ...
</ItemGroup>

3

मुझे एक ही समस्या थी और मुझे लगता है, समस्या पैकेज के बारे में है।

<PackageReference Include="Microsoft.AspNetCore.App" />

मेरे द्वारा बिल्कुल संस्करण निर्दिष्ट करने के बाद समस्या हल हो गई थी।

<PackageReference Include="Microsoft.AspNetCore.App" Version="2.2.0" />

जैसा कि मुझे पता है, संस्करण की संख्या के दौरान वह त्रुटि उत्पन्न हो जाती है


2

एक और संभव उपाय। में csprojफ़ाइल, संस्करण में नवीनीकृत करना चाहते हैं लक्ष्य ढांचे अद्यतन करें। परिवर्तन करने के बाद, नीचे दिए गए स्निपेट्स के अनुसार, संकुल को समाधान NuGet पैकेज मैनेजर के माध्यम से अपग्रेड किया जा सकता है।

इससे पहले:

<PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>
</PropertyGroup>

उपरांत:

<PropertyGroup>
    <TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup>

0

मैंने इसे बस हल किया: प्रोजेक्ट पर राइट क्लिक (या ALT + Enter) -> गुण -> अनुप्रयोग -> लक्ष्य फ्रेमवर्क (.NET कोर फ्रेमवर्क चुनें (इस मामले में 1.1)


0

एसडीके और रन टाइम को अपग्रेड करने के बाद अपनी परियोजनाओं को फिर से बनाने के लिए सबसे अच्छी सिफारिश है और फिर अपने पुराने कोड और कॉन्फ़िगरेशन को नई परियोजनाओं के अंदर छोड़ दें। उसके अलावा, आप बहुत से समय व्यर्थ की बातों और अज्ञात विन्यासों में बिता रहे होंगे।

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