在Windows UAP应用程序中如何解决“'IAsyncActionWithProgress <>'在未引用的程序集中定义”

我正在Visual Studio Ultimate CTP 2015(网站上提供最新版本)中开发Windows UAP应用程序。

我在使用await函数返回IAsyncActionWithProgress <>,IAsyncAction <>,IAsyncOperation <>和IAsyncOperationWithProgress <>时遇到问题。

我收到以下错误

错误CS0012types'IAsyncActionWithProgress <>'是在未引用的程序集中定义的。 您必须添加对程序集Windows的引用,版本= 255.255.255.255,Culture = neutral,PublicKeyToken = null,ContentType = WindowsRuntime。

我尝试添加对所提到的程序集(Windows)的引用。 即使这解决了上面的错误,但是在其他许多地方却出现了另一个错误(好像在这两个程序集中都有一些类/ API的重复,其中一个错误是:

错误CS0433“Windows.Foundation.UniversalApiContract,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null,ContentType = WindowsRuntime”和“Windows,Version = 255.255.255.255,Culture = neutral,PublicKeyToken = null,ContentType = WindowsRuntime'。

代码示例

Windows.Storage.FileProperties.BasicProperties fileSize = await file.GetBasicPropertiesAsync(); 

这对于Visual Studio 2013中的Windows Phone 8.1应用程序来说工作得很好。在Visual Studio 2015中,我必须对UAP App中的相同结果进行更改。

我有同样的问题与IAsyncAction,我刚刚设法解决,所以我打算分享(也许不是最好的)解决方案。

首先我试着修复VS,没有成功。 然后重新安装VS,再次没有成功。 所以我去控制面板 – >程序 – >卸载程序,从那里我卸载了所有与Visual Studio或.NET有关的东西。 它显示了我几个错误,就像一些应用程序需要这个程序运行,但我反正卸载它(如果我需要它,我会再次安装)。 之后,我再次安装了Visual Studio,编写了导致错误的代码,并且没有任何错误。

希望这可以帮助你,因为它帮助了我。

听起来像你从Windows 8.1迁移到Windows 10没有完全正确。 Andy Wigley有一个视频,讲述如何将Windows 8.1项目迁移到Windows 10.他的例子是Phone,但也适用于桌面。 这是视频: http : //www.microsoftvirtualacademy.com/training-courses/a-developers-guide-to-windows-10-preview 。 请查看标题为“将8.1应用程序迁移到Windows 10”的部分。

为了清楚起见,您不需要添加任何引用即可使这些类型在Windows 10通用应用程序中运行。 一个好的起点(Andy在他的视频中也指出)是创建一个新的Windows 10通用应用程序项目,并将你的项目和软件包清单文件与它进行比较,然后简单地引用这些更改。

我认为这个问题是下面的,你可以在Windows Phone上部署,但是当你尝试访问手机的特定功能时,你需要添加 在这里输入图像说明