我正在尝试遵循UWP和WinForms桌面桥的带有桌面扩展的UWP – 第2部分调用进程并传递参数。此示例控制台Program.cs代码包含参数字符串:
string parameters = ApplicationData.Current.LocalSettings.Values["parameters"] as string;
但是名称
ApplicationData
在当前上下文中不存在,我正在尝试找出是否我错过了一些参考或者它是 C# 的不同版本
我不确定即使它是它所需要的,但添加引用
Windows.Foundation.UniversalApiContract.windmd
会引发另一个错误Values
:
错误 CS0012 类型“IPropertySet”是在程序集中定义的 没有引用。您必须添加对程序集的引用 'Windows.Foundation.FoundationContract
如果您想使用
ApplicationData
类,请在Windows.winmd
中添加C:\Program Files (x86)\Windows Kits\10\UnionMetadata\10.0.17134.0\Windows.winmd
。然后添加 Windows.Storage
命名空间。
详细步骤
右键单击项目引用 -> 添加引用 -> 浏览(文件类型所有文件)-> 选择 Windows.winmd
从 .NET6 或更高版本开始,它不起作用。相反,您应该更改 win32 项目 TargetFramework 并指定 Windows 版本。
例如,如果您使用 .NET8 并希望面向 Windows 11:
<TargetFramework>net8.0-windows10.0.22000.0</TargetFramework>
您还可以设置TargetPlatformMinVersion:
<TargetPlatformMinVersion>10.0.17763.0</TargetPlatformMinVersion>
如果执行此操作并重新打开项目,您可以看到新的项目引用 自动添加名为 Microsoft.Windows.SDK.NET.Ref。
更多信息:https://learn.microsoft.com/hu-hu/windows/apps/desktop/modernize/desktop-to-uwp-enhance