2012-03-07 18 views
6

हमारे पास विजुअल स्टूडियो 2010 एसपी 1 और असिन सीटीपी (एसपी 1 रीफ्रेश) स्थापित है।एमएसबिल्ड को एसिंक आवश्यक संदर्भ नहीं मिला

वीएस आईडीई से निर्माण करते समय async/await कीवर्ड का उपयोग करने वाली परियोजनाओं के साथ एक समाधान ठीक बनाता है। जब भी devenv /build "Debug" solution.sln के साथ बनाया गया तो सबकुछ ठीक है।

हालांकि msbuild @commands.rsp solution.sln रिपोर्ट:

File.xaml.cs(123): error CS1993: Cannot find all types required by the 'async' modifier. Are you targeting the wrong framework version, or missing a reference to an assembly? 

commands.rsp इस तरह दिखता है:

/nologo 
/p:Configuration=Debug 
/m:3 
/fileLogger 

कोई सुराग?

+0

क्या आप अपना आदेश पोस्ट कर सकते हैं .rsp? – KMoraz

उत्तर

4

कृपया, चर्चा यहाँ देखें:

  • पर्यावरण:: http://social.msdn.microsoft.com/Forums/uk-UA/async/thread/3d491cb0-a19f-4faf-80a6-5fd05e4e06db

    2 अंक बेहतर आपकी समस्या को समझने के लिए आदेश में स्पष्ट किया जा करने के लिए कर रहे हैं आप स्थापित किया VS11 साथ-पक्ष के साथ वीएस 2010 + Async सीटीपी?

  • आपकी प्रोजेक्ट: क्या आपके पास आपके प्रोजेक्ट में उपयोगकर्ता नियंत्रण और "क्लियर-नेमस्पेस" के साथ एक्सएएमएल है?

    मुझे लगता है कि जिस क्रम में XAML परियोजनाओं जब की चर्चा करते हुए विधानसभाओं संकलन के साथ क्या करना है:

मैं एमएस मंच पर चर्चा से SERware द्वारा प्रारंभिक निष्कर्ष का हवाला देते हैं जाएगा पुस्तकालय के वर्ग स्वयं। इस मामले में, XAML लोडर Async CTP लाइब्रेरी के संदर्भ में होने से पहले इस कक्षा को संकलित करने का प्रयास करें। तो, कीवर्ड "async" मान्यता प्राप्त नहीं है।

व्यक्तिगत तौर पर मैं यह देखने के लिए कि क्या यह क्रम XAML

जोड़ा गया में निर्भरता आगे की जांच पड़ताल के बाद के संकलन के आदेश को हल करने में विधानसभा विभाजित करने के लिए संभव है जा रहा हूँ: के रूप में मुझे पता चला है, स्पष्टीकरण और भी निराशाजनक है: .NET 4.5 (बीटा) .NET 4.0 को प्रतिस्थापित करता है। इसके अलावा, एसिंक/प्रतीक्षा संबंधित प्रकारों के हस्ताक्षर आंतरिक रूप से बदल दिए गए हैं। इसलिए वीएस 2010 + असिनकैटपी और वीएस 11 बीटा का उपयोग करने के लिए अब तक कोई रास्ता नहीं है। - यूरी एस 2 मिनट पहले

+0

पहला बिंदु, हाँ मेरे पास वीएस 11 स्थापित है। हालांकि मेरे कार्यकर्ता नहीं है, और उसे एक ही त्रुटि मिली है। दूसरे बिंदु पर, हमारे मामले में सभी async/प्रतीक्षा कॉल व्यूमोडेल में हैं, इसलिए उनके पास समकक्ष xaml नहीं है (मेरा त्रुटि उदाहरण भ्रामक है क्योंकि मेरे पास स्क्रॉलबैक में हमारा कोई भी नहीं था और वह वह था एक ही त्रुटि विवरण और कोड) –

+0

जैसा कि मैंने पाया है, स्पष्टीकरण और भी निराशाजनक है: .NET 4.5 (बीटा) .NET 4.0 को प्रतिस्थापित करता है इसके अलावा, async/प्रतीक्षा संबंधित प्रकारों के हस्ताक्षर आंतरिक रूप से बदल दिए गए हैं । इसलिए वीएस 2010 + असिनकैटपी और वीएस2011 बीटा का उपयोग करने के लिए अब तक कोई रास्ता नहीं है। –

0

मुझे इस से मारा गया था और विभिन्न कारणों से मैं परियोजनाओं को .NET 4.5 में अपग्रेड नहीं कर सकता था इसलिए मुझे एक वर्कअराउंड विकसित करना पड़ा।

चूंकि यह केवल एक्सएएमएल परियोजनाओं के लिए एक समस्या है, जिसमें xmlns घोषणा है कि मैं खुद को इंगित करता हूं कि मैं संदर्भित सभी अन्य परियोजनाओं पर एसिंक का उपयोग करने में सक्षम हूं। इसका मतलब है कि मेरा आर्किटेक्चर अभी भी एसिंक/प्रतीक्षा का उपयोग कर रहा है और बाद में .NET 4.5 पर जाने के लिए तैयार है।

लेकिन प्रभावित एक्सएएमएल परियोजनाओं में, मैं संकलक द्वारा अन्यथा किए गए इंतजार की चीजों को मैन्युअल रूप से लागू करता हूं (खराब)।

तो कोड था कि यह साफ करने से पहले:

try 
{  
    var foo = GetFoo(); 
    foo.DoStuff(); 
    var data = await foo.GetDataAsync(); 
    bar.WorkOnData(data); 
} 
catch (Exception ex) 
{ 
    // Logging, throw up a popup, whatever... 
    HandleError("Failed to get data", ex); 
} 

अब इस हो जाता है:

var foo = GetFoo(); 
foo.DoStuff(); 
var getDataTask = foo.GetDataAsync(); 
getDataTask.ContinueWith(t => 
    { 
     if (t.IsFaulted) 
     { 
      // Logging, throw up a popup, whatever... 
      HandleError("Failed to get data", t.Exception); 
      return; 
     } 
     if (t.Status == TaskStatus.RanToCompletion) 
     { 
      bar.WorkOnData(t.Result); 
     } 
    }); 

निश्चित रूप से आदर्श नहीं है, और इस सटीक बात यह है कि async/await लिए बनाया गया था है का समाधान। लेकिन यह कम से कम await के सरल उपयोगों के लिए अल्पकालिक कार्यवाही के रूप में काम करता है।

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