我想从注册表中读取所有环境变量,并在 Visual Studio 2010 Express 中使用 C# 为其设置一个新值。
因此我读取了本地机器的子项:
SYSTEM\CurrentControlSet\Control\Session Manager\Environment
那里的价值Path
.
在阅读时Path
value:
reg = Registry.LocalMachine.OpenSubKey(SUB_KEY_PATH, true);
我遇到一个例外,即我没有权限。
因此我在清单中设置了值:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
但现在我无法编译我的项目,因为 ClickOnce 不支持它。
如何编译安全级别为 requireAdministrator 的项目?
我发现的一种解决方案是在没有 requireAdministrator 级别的情况下编译它,然后我更改了 myproject.exe.manifest 中的值。我是否理解正确,我总是必须将两个文件(清单和exe文件)复制到另一台计算机才能正确运行它?是否可以通过编译将信息放入exe文件中?
如果您想在安装过程中升级,则不能使用 ClickOnce。这是一个设计选择。因此,您的选择是:
- 使用标准安装包,它允许您显示 UAC 提升对话框。
- 修改用户的
PATH
环境变量而不是系统范围的变量。此选项与 ClickOnce 的每用户理念完全兼容。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)