为什么我的程序要求获得许可才能在Vista上运行?
时间:2020-03-06 14:22:51 来源:igfitidea点击:
我刚刚使用VS 2008构建了一个VS C ++ 6.0程序。当我尝试运行或者调试该应用程序时,Vista要求获得许可。导致此问题的程序的构建方式是什么?该程序是从C:\ Dev的子文件夹构建并运行的
解决这个问题对我来说没有任何意义。
解决方案
MVP在谈论让代码和项目从用户文件夹运行,例如c:\ users \名字\ appdata或者该路径下的内容。
不要禁用UAC来解决此问题,否则除非将UAC关闭,否则应用程序将无法在另一台计算机上运行。这是非常不好的做法。在理想的情况下,应用程序应该向用户请求提升的权限。
如果我们不是管理员,则我们可能没有执行C:\ Dev中程序的权限。
可能性1:
程序在清单中被标记为需要管理员权限
可能性2:
程序称为setup.exe或者install.exe,此类程序名称始终会导致需要管理员权限
有关这些原因和其他可能性的详细说明,为什么我们会看到此检查"了解用户帐户控制Technet"文章
谢谢你苏玛回应是迄今为止最好的,并帮助我找到了解决方案。
我确定原因是第一个建议所解释的。将文件重命名为不包含单词" setup"的文件无济于事。
原来我弄错了。我同时安装了VS 2005和VS 2008,当我尝试打开旧的.dsw文件时,正是2005年启动并提供了对该项目的升级。 2005年显然创建了一个清单,其中只有一行带有标签" assembly"。一旦我使用VS 2008升级了项目,便创建了一个更广泛的清单文件。通过检查清单工具...输入和输出...嵌入清单设置,我确认清单已嵌入到我的程序中。此新清单包含以下数据:
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> <security> <requestedPrivileges> <requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel> </requestedPrivileges> </security>