Ich versuche, eine Instanz von StorageFile in meiner Klassenbibliothek zu erstellen ...
%Vor%VS11 erstellt nicht, sagen: 'erwarten' erfordert, dass der Typ 'Windows.Foundation.IAsyncOperation' über eine geeignete GetAwaiter-Methode verfügt. Vermissen Sie eine Verwendungsrichtlinie für 'System'?
offensichtlich verwende ich .net 4.5 als Ziel und ich verweise auf Windows-Assemblys ... nicht sicher, warum dieser Code in MetroStyle funktioniert, aber nicht in einer Klassenbibliothek erstellt ... Wie kann ich eine Instanz von Storagefile in einer Klassenbibliothek erstellen ??? In diesem Stadium ist es nicht wichtig, ob die Datei asynchron erstellt wird ...
pls lass mich deine Gedanken wissen ... Stelio
Was für mich funktionierte, ist das "manuelle Hinzufügen" der TargetPlatformVersion
%Vor%und in der Elementgruppe fügen Sie Folgendes hinzu:
%Vor%Dann sollte das Projekt normalerweise kompilieren.
Ich hatte das gleiche Problem. Das Problem war System-Namespace fehlt im Namespace-Header. Ich habe gerade System im Namespace enthalten und es hat funktioniert. hoffe es hilft.
Es sieht so aus, als ob Sie versuchen, einen Typ aus den WinRT-Bibliotheken zu verwenden, weil die StorageFile
Klassendokumentation gibt an, dass es nur für Metro gilt und in Windows.Storage
gefunden wird.
In diesem Blogpost wird erklärt, wie man es erstellt, aber es scheint ein manueller Prozess zu sein. Es beschreibt auch die Ursache des Fehlers:
Wenn das Schlüsselwort await verwendet wird, sucht der Compiler nach einem GetAwaiter Methode auf dieser Schnittstelle. Seit IAsyncOperation nicht Definieren Sie eine GetAwaiter-Methode, nach der der Compiler suchen soll Erweiterungsmethode.
Es sieht so aus, als müssten Sie einen Verweis hinzufügen auf: System.Runtime.WindowsRuntime.dll
Bitte nehmen Sie sich die Zeit, um seinen Blog-Beitrag zu lesen, aber ich werde den wichtigen Teil hier für Klarheit setzen.
Blog Inhalte unter unbegreiflichen Plagiaten
Zuerst habe ich in Notepad den folgenden C # Quellcode in EnumDevices.cs erstellt:
%Vor%Als Zweites habe ich eine Build.bat-Datei erstellt, die ich von der Eingabeaufforderung des Entwicklers aus führe, um diesen Code zu erstellen (Dies sollte eine Zeile sein, aber ich umgebe sie hier für die Lesefähigkeit):
%Vor%Dann führe ich an der Eingabeaufforderung einfach die EnumDevices.exe aus, um die Ausgabe zu sehen.
Es muss lange her sein seit dem Post als ich
Nach dem Hinzufügen von Referenzen:
System.Runtime.WindowsRuntime.dll
System.Threading.Tasks.dll
und Targeting Windows 8 in der Projektdatei:
%Vor%Das oben erwähnte Beispiel kann in VS zusammengestellt werden.
Tags und Links c# async-await windows-8 windows-runtime isolatedstorage