来自http://tirania.org/blog/archive/2011/Sep-15.html:
当您使用 C# 和 VB 时,您使用的是完整的 .NET 框架。但他们选择向开发人员公开一小部分 API,以推动 Windows 8 的新愿景。
这个新愿景包括安全/沙盒系统和异步编程。这就是为什么您没有获得直接文件系统访问或套接字访问以及为什么您习惯使用的同步 API 没有公开的原因。
现在,你注意到我说的是“暴露”而不是“消失”。
他们所做的是,当您以 Metro 配置文件为目标时,他们只向编译器公开了一组 API。因此,例如,您的应用程序不会意外调用 File.Create。但在运行时,CLR 将加载完整的类库,即包含 File.Create 的类库,因此在内部,CLR 可以调用类似 File.Create 的东西,只有您无权访问它。
这种拆分类似于过去使用 Silverlight 所做的事情,不是每个 API 都被公开,并且 mscorlib 被授予您的应用程序不必确保系统安全的权利。
您可能认为可以使用一些技巧(引用 GAC 库而不是编译器引用或使用反射来访问私有 API,或 P/Invoking 进入 Win32)。但是所有这些用途都将被 AppStore 审查应用程序捕获,您将无法通过 Microsoft 的商店发布您的应用程序。
你仍然可以在你的系统上做你喜欢的任何丑陋的黑客攻击。只是不可能通过 AppStore 发布它。
所以可能没有官方的方式,如果有非官方的方式,很可能不会被应用商店接受。
总的来说,这是有道理的:我不想下载一个看似合法的应用程序,只是为了让它扫描我的硬盘并找到我的“budget.xls”电子表格,其中包括我的银行/信用信息。
编辑:可以通过 WinRT 的文件选择器授予对安全文件/文件夹的临时访问权限,但必须由用户明确调用和选择。