在Imports' Windows.Devices.PointOfService'中指定的命名空间或类型不包含任何公共成员或无法找到

时间:2017-10-19 08:32:15

标签: .net silverlight windows-phone-8

我在这个网站和其他地方搜索过这个问题的帮助,但是找不到任何有助于我解决问题的东西,因此在这里提出这个问题。我在这个网站上发现了一些问题,这些问题涉及我标题中的命名空间,但没有一个问题能够解释我的特定问题。

我已经接管了由第三方编写的应用程序的维护,该应用程序针对带有摄像头和条形码扫描仪(Panasonic FZ-E1 Toughpad)的Windows设备。该软件已经在实际使用,这意味着它已经构建并分发给公司内部使用的手机。它是一个定制编写的业务应用程序,而不是商业应用程序,不适合公共使用。该软件通过Microsoft App Store分发给扫描仪。

该软件是用VB.NET编写的,解决方案中的所有项目都说它们针对的是Windows Phone Silverlight 8.1。我正在使用Visual Studio 2015在运行Windows 10 Home(64位)的系统上处理此软件。

我的问题是我无法构建软件,因为一个项目中的一个类导入名称空间Windows.Devices.PointOfService,它使用类BarcodeScanner,ClaimedBarcodeScanner,BarcodeScannerDataReceivedEventArgs和BarcodeSymbologies。但是,Visual Studio显示以下警告:

  

导入中指定的命名空间或类型   'Windows.Devices.PointOfService'不包含任何公共成员或   无法找到。

作为此警告的结果,还存在错误,与可以找到该命名空间中的所有类的事实无关。我无法在对象浏览器中看到名称空间中的命名空间Windows.Devices.PointOfService。还有许多其他Windows.Devices命名空间,但不是那个。

为违规项目定义了以下参考:

  • .NET for Windows Phone
  • Microsoft.Expression.Interactions
  • Microsoft.Live
  • Microsoft.Live.Controls
  • Microsoft.Phone.Controls
  • Microsoft.Phone.Controls.Toolkit
  • Microsoft.WindowsAzure.Mobile
  • Microsoft.WindowsAzure.Mobile.Ext
  • Microsoft.WindowsAzure.Mobile.UI
  • Newtonsoft.Json
  • System.Net.Http
  • System.Net.Http.Extensions
  • System.Net.Http.Primitives
  • System.Windows.Interactivity
  • Windows Phone
  • WriteableBitmapExWinPhone
  • WriteableBitmalExWinPhoneXnaDependant
  • zxing.wp8.0
  • (解决方案中的其他项目)

我为Windows 8.1,Windows Phone 8.1和Windows Phone Silerlight 8.1安装了SDK。我已经确定了一个名为Windows.winmd的文件,该文件存在于每个SDK中。在Windows 8.1的情况下,此文件包含缺少的命名空间,但Windows Phone 8.1和Windows Phone Silverlight 8.1的命名空间不包含它。我已经尝试显式引用此文件的Windows 8.1版本,但Visual Studio似乎忽略了这一点,并继续将命名空间显示为缺失。然而,软件是实时的这一事实意味着它能够被构建,可能来自我继承的相同解决方案。

所以我的问题是:

  1. Visual Studio是否根据提示推断要包含的SDK引用 每个项目的Windows Phone Silverlight 8.1目标?
  2. 有没有办法覆盖其选择的SDK?
  3. 我是否应该引用另一个DLL或库,以获取Windows Phone Silverlight 8.1项目中需要的命名空间?
  4. 我应该使用不同的/早期版本的Visual Studio来处理这个问题吗?我已经安装了2017年和2015年,但只有那些2015年似乎喜欢这个解决方案。

1 个答案:

答案 0 :(得分:2)

我找到了自己问题的答案。经过在线搜索后,我发现我错过了Windows Embedded 8.1 Handheld SDK。一旦我安装了它,就解决了这个问题。