为什么我的程序需要在 Vista 上运行的权限?
-
01-07-2019 - |
题
我刚刚使用 VS 2008 构建了一个 VS C++ 6.0 程序。当我尝试运行或调试应用程序时,Vista 会请求许可。程序的构建方式是什么导致了这种情况?该程序正在从 C:\Dev 的子文件夹中构建和运行
这个回应 对我来说作为问题的解决方案没有任何意义。
解决方案
可能性一:
您的程序在其清单中被标记为需要管理员权限
可能性2:
您的程序称为 setup.exe 或 install.exe - 这样的程序名称总是会导致需要管理员权限
有关这些和其他可能性的详细说明为什么您会看到此检查 了解用户帐户控制 Technet 文章
其他提示
MVP 谈论的是让代码和项目从用户文件夹运行,例如 c:\users\yourname\appdata 或该路径下的其他文件夹。
不要禁用 UAC 来解决此问题,否则您的应用程序将无法在另一台计算机上运行,除非它关闭了 UAC。这是一种非常糟糕的做法。在完美的世界中,您的应用程序应该向用户请求提升的权限。
谢谢苏玛。您的回复是迄今为止最好的,帮助我找到了解决方案。我确定您的第一个建议可以解释原因。将文件重命名为不包含“setup”一词的名称没有帮助。
结果我错了。我安装了 VS 2005 和 VS 2008,当我尝试打开旧的 .dsw 文件时,启动并提供升级项目的是 2005。2005 显然创建了一个清单,其中只有一行带有“程序集”标签。当我使用 VS 2008 升级项目后,创建了一个更广泛的清单文件。我通过检查清单工具...输入和输出...嵌入清单设置来确认清单已嵌入到我的程序中。这个新清单包含以下数据:
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
</requestedPrivileges>
</security>
如果您不是管理员,那么您可能没有执行 C:\Dev 中的程序的权限。
不隶属于 StackOverflow