C# Form App 不在 Win 7 Virtual Store 中写入
Posted
技术标签:
【中文标题】C# Form App 不在 Win 7 Virtual Store 中写入【英文标题】:C# Form App do not write in 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 目录。 【参考方案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访问,并以管理员身份运行。
【讨论】:
以上是关于C# Form App 不在 Win 7 Virtual Store 中写入的主要内容,如果未能解决你的问题,请参考以下文章
在 C# Win Form 中嵌入 PowerPoint Viewer