2

这对我来说并不完全清楚,所以我希望这里有人知道答案。我正在使用 C# Json.Net 和 C# HtmlAgilityPack,它们都是从“任何 CPU”的源代码构建的。我注意到这两个都包括使用引用程序集的指令,这些指令在 Metro 中似乎不可用,但它们都构建得很好。

如果我引用它们,这是否意味着我的应用程序将转为非托管代码?

究竟是什么导致了未管理的代码?

为什么允许 DLL 引用 WinRT 不可用的程序集而我的应用程序不可用?

这是否会通过 Windows 商店的审批流程?

我需要担心的应用程序中包含的 DLL 的一般规则是什么?

提前致谢!

4

2 回答 2

4

在开发面向 WinRT 的应用程序时,该应用程序应仅使用 Windows 8 WinRT 中可用的 API。API 是在 WinMD 文件中定义的。如果应用程序使用了桌面 API,那么它将在 Windows 商店批准过程中被拒绝。

想象一下这个场景。您开发了一个 WinRT 应用程序,该应用程序在桌面模式(客户端配置文件)中使用 .NET DLL。该应用程序部署在 Windows 商店中,用户在 ARM 平板电脑上下载。该应用程序将崩溃,因为它在 ARM 设备上没有桌面(客户端).NET DLL。

所以这给我们带来了一个问题,即在为 WinRT 开发应用程序时可以使用哪些 .NET 类。文章http://kishore1021.wordpress.com/2012/08/06/what-is-portable-class-library-project-in-visual-studio-2012-net-4-5/列出了可用的 .NET 类用于 WinRT 应用程序开发。

于 2012-09-03T21:47:13.527 回答
0

将所有开源项目依赖项更改为以 WinRT 为目标。查看 WinRT 中是否缺少某些方法/类,导致代码无法编译。尝试找到替代方法/类。

如List.FindAll(),改为Linq Where()

于 2012-09-03T07:27:58.583 回答