【问题标题】:C# Form App do not write in Win 7 Virtual StoreC# Form App 不在 Win 7 Virtual Store 中写入
【发布时间】:2015-04-14 19:44:28
【问题描述】:

我有一个在 VS 2012 中创建的 Winfom 应用程序,只有一个调用下面代码的按钮。 如果我以管理员模式(以管理员身份运行)运行应用程序,则可以创建文件夹。 但是在非管理员模式下(在资源管理器中双击exe),它总是弹出标准的“访问路径'C:\ Program Files(x86)\ DirTest'被拒绝”错误。

我的疑问是,为什么在非管理员模式下运行应用程序时,它不写入 Win 7 虚拟商店,缺少什么?

`string programFiles = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles);
        string appDir = Path.Combine(programFiles, "DirTest");

        if (Directory.Exists(appDir))
            MessageBox.Show(appDir + " does exists!!!");
        else
        {
            MessageBox.Show(appDir + " does NOT exists!!!");
            Directory.CreateDirectory(appDir);
        }`

【问题讨论】:

  • 您是在问为什么在非管理员模式下处理程序文件时出现错误:?
  • 我希望它应该在非管理员模式下写入 Windows 7 虚拟存储。所以我很想知道为什么它不在虚拟商店中写作。
  • 在 Windows 中没有“虚拟商店”这个概念
  • @BradleyDotNET,显然有一个我刚刚从这篇文章中了解到的“虚拟商店”:portableapps.com/node/35519
  • @adv12 有趣。我在超级用户链接中看到了类似的内容,但它似乎只有在您写入 own 目录时才有效,OP 只是在写入 any 目录。

标签: c# windows-7 virtualstore


【解决方案1】:

“Program Files”目录在 Vista-onwards 中受 UAC保护。可以在以下位置找到对此的一些讨论:Why can't I edit a “Program Files” file on Windows 7?

所以它按设计工作,除非以管理员身份运行,否则您不能将 Program Files 作为外部程序使用。如果您打算始终以管理员身份运行,请将以下行添加到您的应用清单中:

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

这样你可以双击应用程序,它会提示UAC访问,并以管理员身份运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-18
    • 1970-01-01
    • 2015-08-14
    • 1970-01-01
    • 1970-01-01
    • 2014-12-10
    • 2012-11-19
    • 2011-11-09
    相关资源
    最近更新 更多