使用非管理员用户写入Windows目录(虚拟商店)

时间:2014-04-21 06:14:16

标签: c# windows windows-8 virtualstore

我为遗留应用程序编写了一个从windows目录中读取数据的接口。

所以我需要将数据写入windows目录。 (Windows 8操作系统)

我使用下面的代码来获取写入文件的Windows文件夹路径。

Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Windows), "test.txt");

正如我在MSDN上看到的那样,如果我们运行应用程序,那么它就像普通用户一样将数据写入虚拟商店windows文件夹,但它似乎无效。我收到访问被拒绝错误。

我的应用程序使用x86平台构建。

我缺少的东西或窗口8操作系统的任何限制。

请提前协助,非常感谢。

1 个答案:

答案 0 :(得分:2)

我在提供的清单文件默认注释中找到了我的问题的答案。 它说,

<!-- UAC Manifest Options
            If you want to change the Windows User Account Control level replace the 
            requestedExecutionLevel node with one of the following.

        <requestedExecutionLevel  level="asInvoker" uiAccess="false" />
        <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
        <requestedExecutionLevel  level="highestAvailable" uiAccess="false" />

            Specifying requestedExecutionLevel node will disable file and registry virtualization.
            If you want to utilize File and Registry Virtualization for backward 
            compatibility then delete the requestedExecutionLevel node.
        -->

因此,您需要添加清单文件并从xml或项目属性中删除 requestedExecutionLevel 节点 - &gt;申请 - &gt;图标和清单 - &gt;在Manifest set

Create application without a manifest

它解决了我的问题。

谢谢,