在控制台中使用具有 UWP 参数的应用程序数据

问题描述 投票:0回答:3

我正在尝试遵循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

c# uwp console-application desktop-bridge application-data
3个回答
6
投票

@Nico Zhu - MSFT 是正确的,但我也建议使用替代方法,从长远来看,这可能会让您的生活更轻松 - 桌面应用程序的 UWP API 现在也通过 NuGet 作为包 进行分发,该包负责引用适合您的图书馆。

在撰写本文时它处于预览状态,因此您可以按如下方式安装:

Install-Package Microsoft.Windows.SDK.Contracts -Version 10.0.18362.2002-preview

请参阅 NuGet 页面了解更多信息。


4
投票

如果您想使用

ApplicationData
类,请在
Windows.winmd
中添加
C:\Program Files (x86)\Windows Kits\10\UnionMetadata\10.0.17134.0\Windows.winmd
。然后添加
Windows.Storage
命名空间。

详细步骤

右键单击项目引用 -> 添加引用 -> 浏览(文件类型所有文件)-> 选择 Windows.winmd


0
投票

从 .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

© www.soinside.com 2019 - 2024. All rights reserved.