2013-10-18 12 views
13

मैं .NET फ्रेमवर्क 4, सिल्वरलाइट 4 और 5, और विंडोज फोन के लिए 7.5 और 8विधि त्रुटि 'का इंतजार है और async गुण

NuGet पैकेज Async स्थापित किया है से' का इंतजार नहीं कर सकता 'System.Threading.Tasks.Task
Version 1.0.16 

मैं माइक्रोसॉफ्ट .NET 4.0 का उपयोग कर रहा हूं और मैं वेब होस्टिंग पैकेज प्रतिबंधों के कारण अपग्रेड नहीं कर सकता। (दुख की बात है!)

मेरे परीक्षण कोड: (मैं Thread.Sleep के स्थान पर एसक्यूएल क्वेरी के लिए एक Linq कर रहा हूँ)

public class Search 
{ 
public async Task<List<Result>> GetResults(string SearchString) 
{ 
await System.Threading.Tasks.Task.Factory.StartNew(() => Thread.Sleep(1000)); 
} 
} 

मेरे त्रुटि:

Cannot await 'System.Threading.Tasks.Task' 

http://blogs.msdn.com/b/bclteam/p/asynctargetingpackkb.aspx त्रुटि के बारे में बात करती है लेकिन यह वास्तव में उत्तर नहीं है क्योंकि मैं वीबी का उपयोग नहीं कर रहा हूं और मैं पहले से ही समाधान का वर्णन कर रहा हूं।

[संपादित करें] मैं एक चेतावनी हो रही है:

Warning 4 The primary reference "Microsoft.Threading.Tasks, Version=1.0.12.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" could not be resolved because it has an indirect dependency on the framework assembly "System.Runtime, Version=1.5.11.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" which could not be resolved in the currently targeted framework. ".NETFramework,Version=v4.0". To resolve this problem, either remove the reference "Microsoft.Threading.Tasks, Version=1.0.12.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" or retarget your application to a framework version which contains "System.Runtime, Version=1.5.11.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a". 

आपकी मदद के लिए धन्यवाद।

+0

नींद की प्रतीक्षा अभी भी थ्रेड पूल थ्रेड के समय का उपभोग करने जा रहा है। यदि आपके पास ठीक से एसिंक्रोनस ऑपरेशंस के लिए टूल नहीं हैं तो आप शायद सिंक पर एसिंक का उपयोग करने के बजाय पूरी तरह सिंक्रोनस विधियों का उपयोग करने के बेहतर हैं। – Servy

+0

यह एक परीक्षण विधि है और वास्तविक विधि का उपयोग नहीं कर रहा हूं। मैं नींद के स्थान पर एक एसक्यूएल लिंक क्वेरी चला रहा हूँ। –

+0

क्या यह एक वेब एप्लिकेशन है? –

उत्तर

34

क्या एक दुःस्वप्न! मुझे समस्या मिली है।

Microsoft.Bcl 

यह मेरे मामले में प्रकट होता है कि Microsoft.Bcl और Microsoft.Bcl.Async संघर्ष में हैं।

uninstall-package Microsoft.Bcl.Async -force 

तो:

uninstall-package Microsoft.Bcl -force 

और उसके बाद फिर से स्थापित:

install-package Microsoft.Bcl.Async 

अब यह एक आकर्षण काम करता है मैं Microsoft.Bcl और Microsoft.Bcl.Async निम्न कमांड के साथ हटा दिया । मैं इस पर विश्वास नहीं कर सकता? यह भी सुनिश्चित नहीं है कि माइक्रोसॉफ्ट.बीक्ल को पहले स्थान पर क्यों छोड़ा गया था। Microsoft.Bcl.Async को हटाने के बाद यह पीछे छोड़ दिया जाता है। अब तक सभी ठीक काम करता है। कुछ और परीक्षण किया जाना है।

तो दूसरों NuGet पैकेज के साथ समस्या है, तो आप अपने जोखिम पर कोशिश कर सकते हैं:

update-package -pre 

इस संकुल कि अपडेट किए गए हैं रोल बैक करने की कोशिश करेंगे। इस तरह मुझे इस मुद्दे को मिला।

[संपादित करें] इसके लायक ध्यान देने योग्य बात आगे के परीक्षण के बाद, Microsoft.Bcl नहीं हटाया जाता है जब एक Microsoft.Bcl.Async अपनी स्थापना रद्द। Microsoft.Bcl को अलग से अपडेट किया जा सकता है और ऐसा लगता है कि यह अद्यतन Microsoft.Bcl.Async के बाहर एक समस्या हो सकती है। Microsoft.Bcl स्थापित है जब कोई Microsoft.Bcl.Async स्थापित करता है।

उम्मीद है कि इससे दूसरों की मदद मिलती है!

+0

फॉलोअप के लिए धन्यवाद। सहायक। – TSmith

+0

बहुत बढ़िया - मैंने सोचा नहीं था कि यह एक पैकेज मुद्दा था। निश्चित नहीं है कि मेरे पास आंशिक पैकेज हैं या यदि मैंने उन्हें कभी भी इंस्टॉल नहीं किया है, लेकिन मुझे अनइंस्टॉल करने के लिए त्रुटियां मिलीं, और इंस्टॉलेशन ठीक काम करता था, और त्रुटि अभी खत्म हो गई थी .. मैं बाद में बिंदुओं को जोड़ने की कोशिश करूंगा! –

+0

बहुत बहुत धन्यवाद !!!! +1 –

2

इस प्रकार आपके विन्यास संशोधित करें:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> 
     <bindingRedirect oldVersion="0.0.0.0-[version]" newVersion="[version]" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Threading.Tasks" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> 
     <bindingRedirect oldVersion="0.0.0.0-[version]" newVersion="[version]" /> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 
</configuration> 

(उदाहरण के लिए 2.5.10.0) संस्करण के साथ की जगह [संस्करण] System.Runtime और System.Threading.Tasks की है कि आप संदर्भित कर रहे हैं।

+0

धन्यवाद, लेकिन मैंने कोशिश की है। समस्या अभी भी बनी हुई है। –

+0

जब आपने नगेट पैकेज स्थापित किया, तो क्या उन पंक्तियों के साथ आया? यदि ऐसा है, तो '' भागों को हटा दें। – Haney

+0

मैंने हटा दिया है और पुनः स्थापित किया है और ऐसा प्रतीत होता है, हां वे करते हैं। –

संबंधित मुद्दे