आपकी परियोजना ".NETFramework, संस्करण = v4.6.2" रूपरेखा को संदर्भित नहीं करती है। "TargetFrameworks" में ".NETFramework, संस्करण = v4.6.2" का संदर्भ जोड़ें


112

मैं अपनी इकाई परीक्षण नहीं चला सकता।

मेरे पास अगली त्रुटि है:

आपकी परियोजना ".NETFramework, संस्करण = v4.6.2" रूपरेखा को संदर्भित नहीं करती है। अपनी परियोजना फ़ाइल के "TargetFrameworks" संपत्ति में ".NETFramework, Version = v4.6.2" का संदर्भ जोड़ें और फिर NuGet को पुनर्स्थापित करें।

इन app.config:

<startup>
  <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2"/>
</startup>

प्रोजेक्ट में> गुण> एप्लिकेशन> टारगेटफ्रॉमवर्क (.NET फ्रेमवर्क 4.6.2)

मेरे द्वारा यह कैसे किया जा सकता है?


जवाबों:


272

कृपया अगले चरण करें

  1. साफ समाधान
  2. साफ फ़ोल्डर "पैकेज"
  3. फ़ोल्डर "बिन" हटाएं
  4. फ़ोल्डर हटाएं "obj"

27
# 3 और # 4 ने इस मुद्दे को हल किया। मेरे पास एक शाखा थी जो 4.7.2 में एक अपग्रेड कार्य था लेकिन मुझे दूसरी शाखा में स्विच करना पड़ा जो कि 4.7.1 को लक्षित कर रहा था। उस समस्या को हल करने के लिए ये चरण करें।
जजहाइटर

4
समाधान निर्देशिका से एक और चरण करना था: डेल / एस प्रोजेक्ट.सेट्स.जॉन
जननेस

इस सफाई को करने के बाद मुझे पता चला कि मुझे इस परियोजना में एक और त्रुटि मिली है जो कि .Net फ्रेमवर्क त्रुटि प्रदर्शित की गई थी। इसे ठीक करने से समस्या हल हो गई।
meJustAndrew

2
stackoverflow.com/a/755433/769137 को हटाने के लिए बैच स्क्रिप्ट हैं।
वेदरन

1
मैंने 4.7.2 से 4.8 तक उन्नयन किया, और यह मेरे लिए obj/फ़ोल्डर्स को हटाने के लिए पर्याप्त था ।
स्कैप्ट

30

मैंने इसी तरह के मुद्दे का अनुभव किया, लेकिन साथ v4.7.2। अर्थात्, मैं इस तरह लॉग संदेश बना रहा है:

error : Your project does not reference ".NETFramework,Version=v4.7.2" framework. Add a reference to ".NETFramework,Version=v4.7.2" in the "TargetFrameworks" property of your project file and then re-run NuGet restore.

इस तथ्य के बावजूद कि यह समान दिखता था, उपरोक्त प्रस्तावित चरणों में से किसी ने भी मेरे लिए काम नहीं किया। मैं प्रत्येक निर्माण के बाद यह संदेश देखता रहा। कुछ भी मदद करने में सक्षम नहीं लग रहा था।

वास्तव में, समस्या इसी से संबंधित थी, क्योंकि प्रवासन के कारण, मुझे कोड के एक फ़ोल्डर में दो परियोजनाएं डालनी थीं । उनमें से एक को .Net कोर पर , एक अन्य .Net फ्रेमवर्क पर , दोनों को एक ही .Net मानक पुस्तकालयों के संदर्भ में लक्षित किया गया था । जाहिरा तौर पर, वे उसी objफ़ोल्डर को साझा करते हैं जहां कोर परियोजनाएं project.assets.jsonफ़ाइल डालती हैं। दरअसल, यह फाइल फ्रेमवर्क प्रोजेक्ट के साथ इसके सामान्य निर्माण को रोकती है। यहां तक ​​कि अगर आप package.config से PackageReference के लिए माइग्रेट प्रदर्शन किया है ... जो संभव समाधान में से एक के रूप में सिफारिश की गई थी।

आप अपने फ्रेमवर्क प्रोजेक्ट फ़ाइल में निम्नलिखित स्निपेट डालकर समस्या को ठीक करने का प्रयास कर सकते हैं:

<Project>
  ...
  <PropertyGroup>
    <BaseOutputPath>$(MSBuildProjectDirectory)/out/$(MSBuildProjectName)/bin</BaseOutputPath>
    <BaseIntermediateOutputPath>$(MSBuildProjectDirectory)/out/$(MSBuildProjectName)/obj</BaseIntermediateOutputPath>
  </PropertyGroup>
  ...
</Project>

इसने तुरंत मेरे लिए काम किया, यह केवल बाद में था जब मैंने ध्यान से पढ़ा कि हमें इसकी आवश्यकता क्यों है और यह काम क्यों करता है। मैं अप्रत्याशित रूप में यह पाया भाग 2 का नेट कोर 3 की ओर पलायन एक नमूना WPF अनुप्रयोग के तहत .नेट फ्रेमवर्क परियोजना अभी भी बनाता है यकीन है कि बनाना अनुभाग। BaseOutputPathऔर BaseIntermediateOutputPathmsbuild चर वहाँ पाया जा सकता है, यकीन है कि अगर वे कहीं भी अच्छी तरह से प्रलेखित नहीं हैं।


इससे मेरी समस्या हल हो गई। मुझे यह अन्यथा कभी नहीं मिलेगा, धन्यवाद।
एर्दोगन कुर्तूर

1
VS2019 में मैंने पाया कि आपके द्वारा बताए गए गुण OutputPath से पहले होना चाहिए। मैंने शुरू में बस उन्हें बिना किसी सफलता के साथ csproj के नीचे गिरा दिया। इस पोस्ट में कुछ अतिरिक्त विवरण हैं और इसका मतलब है कि यह किसी बिंदु पर तय हो सकता है: github.com/dotnet/msbuild/issues/2070
जॉन डायर

20

VS2017 में VS2015 प्रोजेक्ट खोलने पर मेरे साथ ऐसा हुआ। फोल्डर project.assets.jsonसे डिलीट करने objका ट्रिक किया।

वैसे भी, संदेश से फ्रेमवर्क फ़ाइल में गायब था, मैंने इसे वहां नहीं जोड़ा, हालांकि, इसे हटाने के साथ चला गया।


2
सब से सरल उपाय। बस समाधान में फ़ाइल की खोज करें और उन्हें एक बार में हटा दें :)
Imad

5

मैंने लारिसा को वोट दिया, लेकिन मैंने सोचा कि यह जानना उपयोगी हो सकता है कि मैं इसमें कैसे पहुंची। मैंने अपने निर्माण में एक .net मानक परियोजना फ़ाइल जोड़ी (हम बहुत सारे प्लेटफार्मों को लक्षित करते हैं) और इसने obj फ़ोल्डर में पाए गए मलबे का उत्पादन किया। जब एंड्रॉइड सैनिटेशन बिल्ड आसपास आया, तो यह ओबज फ़ोल्डर पर फेंक दिया गया। मेरा समाधान उस फ़ोल्डर को पूर्व-निर्मित चरण के रूप में साफ़ करना था। यह एक कठिन समस्या है क्योंकि यह सालों से ठीक काम कर रहा था ... सुई मिलते हैं।


2

मेरे मामले के लिए, .pkgrefgen/प्रोजेक्ट फ़ोल्डर के काम के तहत फ़ोल्डर को हटा दें , इसमें एक फ़ाइल प्रोजेक्ट है। कैसेट।जसन जो पुराने ढांचे के संदर्भ में है।


2
मेरा obj फ़ोल्डर में एक project.assets.json फ़ाइल थी। हटाए गए बिन और obj फ़ोल्डर्स और समस्या दूर हो गई।
सेरेस

1

मैं .net 4.71 के साथ एक ही चीज में भाग गया। मेरे मामले में, मैं बस संकुल से स्थानांतरित कर दिया .config प्रति "पैकेज संदर्भ"

Package.config से PackageReference में माइग्रेट करें

... और इसने मेरा मुद्दा ठीक कर दिया। मेरे लिए, मैं वैसे भी ऐसा करने जा रहा था, इसलिए यदि आप पहले से ही इस तरह से जा रहे हैं, तो मैं बस ऊपर को छोड़ दूंगा और पैकेज संदर्भों में स्थानांतरित कर दूंगा।


0

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

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