6

我正在尝试用 C# 为 Windows 10 创建一个能够与 BLE 设备对话的经典桌面应用程序。我按照说明(适用于 Windows 桌面 C# 应用程序的蓝牙 4.0(低能耗)API)并将标签添加到项目文件中

<TargetPlatformVersion>10.0.10156</TargetPlatformVersion>

并重新加载项目。我只能访问 Windows 命名空间:引用对话框

我不知道我在其中一个测试中做了什么,但是一旦该列表填充了许多其他命名空间,我就能够检查 Windows.Devices 命名空间,这对我的项目至关重要。我现在可以通过最近选项添加 Windows.Devices,但不能添加任何其他命名空间...

你们知道我应该怎么做才能访问所有 Windows.xy 命名空间的列表吗?

4

3 回答 3

6

Windows.Devices要从.NET Framework 代码访问和其他 WinRT API,

  1. 将 NuGet 包添加Microsoft.Windows.SDK.Contracts到项目中
  2. 配置项目以支持 Package References(右键单击packages.config,选择 Migrate packages.config to PackageReference...)
于 2020-06-17T02:59:32.150 回答
3

来自 OP 的作者评论:

更新 - 我创建了一个新项目并添加了 C:\Program Files (x86)\Windows Kits\10\UnionMetadata\Windows.winmd 和 C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETCore\v4.5 \System.Runtime.WindowsRuntime.dll 允许我包含 Windows.Devices 命名空间,而无需在“引用”对话框中选择 Windows.Device。

这对我们中的许多人都有效。

于 2019-09-25T14:59:38.957 回答
2

现在有一个Windows.SDK.Contracts NuGet 包可以帮助解决这个问题。我无法添加上述 DLL,但 nuget 包有效。

Windows 10 WinRT API 包使您能够将最新的 Windows 运行时 API 支持添加到您的 .NET Framework 4.5+ 和 .NET Core 3.0+ 库和应用程序。

此程序包包括所有受支持的 Windows 运行时 API,直到 Windows 10 版本 1903。

于 2020-02-27T15:00:43.857 回答