使用 Microsoft.Windows.SDK.Contracts,出现错误 "Problem generating manifest....An attempt was made to load a program with an incorrect format"

Using Microsoft.Windows.SDK.Contracts, Getting error "Problem generating manifest....An attempt was made to load a program with an incorrect format"

我正在开发 VSTO (WinForm) 应用程序。我想使用 LaunchUriAsync() 来启动第二个打包的桌面应用程序。我一直在尝试获取对 VSTO 项目的正确引用,以允许调用 Windows.System.Launcher.LauncherUriAsync()。

我遵循了各种指导。我尝试按照指导启用 UWP APIs in desktop apps

我也尝试了新的Microsoft.Windows.SDK.Contracts

在每种情况下,我都可以引入 using Windows.System; 并且我可以正确引用 LaunchUriAsync()

现在,当我构建时,我在参考中的每个 winmd 文件上都遇到了错误。

错误是: 生成清单时出现问题。无法加载文件或程序集 filename。试图加载格式不正确的程序。

我尝试将每个 winmd 文件中的 local copy 属性 设置为 false,但我得到了同样的错误。

并非所有 UWP API 都允许从任何桌面应用程序调用。您需要按照 process 确定是否支持要从桌面应用程序调用的 API。

然后,如果您检查 Launcher class,DualApiPartition 属性未列出,API 确实需要调用应用程序具有包标识。因此,WPF、Windows Forms 或 Win32 应用程序不允许调用 API,除非应用程序已转换为 UWP 应用程序。