windows - '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();
}
解决方案
'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 平台的特定类,请避免在表单中使用它,如果要文件访问,可以依赖服务来访问每个平台的文件。
推荐阅读
- javascript - 获取 null 不是对象(评估 'RNFusedLocation.getCurrentPosition')
- google-apps-script - 在 Google Apps 脚本中使用缓存
- sentry - Sentry:下载小型转储
- reactjs - 调度时如何不覆盖 Redux 的状态
- flutter - 如何制作一个包含在整个屏幕上拉伸的背景图像的颤动应用程序,带有返回句子的图像的圆形按钮?
- python - 在 .TIF 中拆分帧并保存到新文件 - OSerror: -2
- android - Android 11 通知 LED,如何闪烁?
- swiftui - SwiftUI - 消失的原因
- c# - 没有像“{ MyProperty : 1 }”这样的魔法字符串的 MongoDB C# 投影查询
- reference - 引用外部 Excel 工作簿中的数据集并在活动工作簿中隐藏或显示日期