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

Namespace or type specified in the Imports 'Windows.Devices.PointOfService' doesn't contain any public member or cannot be found

我已经在此站点和其他地方搜索过有关此问题的帮助,但找不到任何可以帮助我解决它的内容,因此在这里提出这个问题。我在该站点上发现了一些问题,这些问题涉及我标题中的名称空间,但其中 none 对我的特定问题有所帮助。

我已经接管了由第三方编写的应用程序的维护工作,目标是 Windows 带有摄像头和条码扫描器的设备(Panasonic FZ-E1 Toughpad)。该软件已经投入使用,这意味着它已经构建并分发到公司内部使用的电话中。它是 custom-written 商业应用程序,不是商业应用程序,不适合 public 使用。该软件通过 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 显示以下警告:

Namespace or type specified in the imports ‘Windows.Devices.PointOfService’ doesn’t contain any public member or cannot be found.

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

为违规项目定义了以下引用:

我为 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. 在 Windows Phone Silverlight 8.1 项目的情况下,我是否应该引用另一个 DLL 或库来获取我需要的命名空间?
  4. 我应该使用 Visual Studio 的 different/earlier 版本来解决这个问题吗?我安装了 2017 和 2015,但其中只有 2015 似乎喜欢这个解决方案。

我找到了我自己问题的答案。在网上进一步搜索后,我发现我缺少Windows Embedded 8.1 Handheld SDK。一旦我安装了它,它就解决了问题。