首页 > 解决方案 > 'IAsyncOperation<>' Xamarin 表单

问题描述

在 UWP 应用程序和 Xamarin Forms 应用程序中使用完全相同的代码时,我在 Xamarin.Forms 程序上收到以下错误,但在 UWP 程序上却没有。

错误 CS0012 类型“IAsyncOperation<>”在未引用的程序集中定义。您必须添加对程序集“Windows.Foundation.FoundationContract,Version=3.0.0.0,Culture=neutral,PublicKeyToken=null,ContentType=WindowsRuntime”的引用。

这是我的代码。

 public App()
    {
        this.InitializeComponent();
        this.Suspending += OnSuspending;

        Task task = CopyAssetsDatabase();
    }

    private async Task CopyAssetsDatabase()
    {

        StorageFile file;

        var root = Windows.Storage.ApplicationData.Current.LocalFolder.Path;
        var dbPath = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "ExpressEMR.db");

        try
        {
            file = await Windows.Storage.ApplicationData.Current.LocalFolder.GetFileAsync("ExpressEMR.db");
        }
        catch
        {
            StorageFile Importedfile = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///Assets/ExpressEMR.db"));
            file = await Importedfile.CopyAsync(Windows.Storage.ApplicationData.Current.LocalFolder);
        }
        throw new NotImplementedException();
    }

标签: windowsxamarin.formsuwpsdk

解决方案


'IAsyncOperation<>' Xamarin 表单

问题是您错过了System.Runtime.WindowsRuntime组装,您可以手动添加它。右键单击Dependencies添加引用-> 浏览-> 从此路径中找到它 ( C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETCore\v4.5\System.Runtime.WindowsRuntime.dll)。

更新

该程序集应该自动添加到 Xamarin Forms 应用程序中,对吗?我的意思是我以前从来没有手动添加它。

当然可以,但在早期版本中,我们需要手动添加引用。我再次检查了你的线程,我发现你StorageFile在表单应用程序类中使用过。但是,StorageFile 是 uwp 平台的特定类,请避免在表单中使用它,如果要文件访问,可以依赖服务来访问每个平台的文件。


推荐阅读