【发布时间】:2021-06-22 13:28:05
【问题描述】:
在我准备将我的应用提交到 Microsoft Store 时获得的验证结果中(我的应用“通过警告”),我在“包健全性测试”部分下得到了这个“失败”:
包含这样一个调用的代码是:
private void myMapsHelpToolStripMenuItem_Click(object sender, EventArgs e)
{
System.Diagnostics.Process.Start("https://ramblingnotesofageezer.substack.com/p/map-o-matic-overview");
}
我正在使用该代码,因为这里建议这样做。 How do I start a process from C#?
这真的是个问题吗?如果是这样,我应该使用什么来代替对 System.Diagnostics.Process.Start() 的调用?
我觉得奇怪的是它被归类为测试的失败部分,但总体结果是我的应用通过了(尽管有警告)。
更新
我查看了 Codexer 评论中的链接,其中说:“启动实用程序通常可以提供一种从操作系统获取信息、访问注册表或访问系统功能的便捷方式。但是,您可以使用UWP API 来完成这些类型的任务。”
如果这是解决方案,UWP API 是否具有等效于 System.Diagnostics.Process.Start() 的功能?
更新 2
我按照答案中的步骤操作,但由于这行代码出错,解决方案仍然无法编译:
await Windows.System.Launcher.LaunchUriAsync(uri);
实际上,即使我注释掉有问题的行,项目也不会再编译,但没有给我任何关于如何解决问题的信息,只是这样:
我将包管理格式设置为 PackageReference,并安装了 Microsoft.Windows.SDK.Contracts 版本 10.0.18362.2005,但它抱怨需要包引用...?!?我尝试使用 Windows.System 添加; 并使用 Microsoft.Windows.SDK.Contracts;但两者都不被识别。
为项目安装了包,如您在此处看到的:
更新 3
关于“必须使用包参考”错误消息,我有三个问题围绕着我在这里看到的内容:
Microsoft.Windows.SDK.Contracts 下面的措辞说我可以更新这个包的版本 - 我应该吗?
我在项目的参考中没有看到对 Microsoft.Windows.SDK.Contracts 的参考,尽管它已安装。我需要添加一个吗?如果需要,从哪里添加?
References 上的上下文菜单让我能够“将 packages.config 迁移到 PackageReference...”,我应该这样做吗?
【问题讨论】:
-
Read this 因为它可以准确地告诉你哪里出了问题。
-
我会更新我的问题 diesbzg。
-
香农退房calling Windows Runtime API's。您将遇到的主要问题是使用 Windows 10 S 的用户出于安全原因以及尝试提交时发出警告的原因将无法启动此过程。
标签: c# windows-10-universal windows-store system.diagnostics desktop-bridge