我刚刚使用 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 中的程序的权限。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top