我刚刚使用VS 2008构建了一个VS C ++ 6.0程序。当我尝试运行或调试应用程序时,Vista会要求获得许可。关于如何构建程序导致这种情况的原因是什么?该程序正在构建并从C:\ Dev
的子文件夹运行This response对我来说没有意义解决问题。
答案 0 :(得分:3)
可能性1:
您的程序在其清单中标记为需要管理员权限
可能性2:
您的程序名为setup.exe或install.exe - 此类程序名称始终导致需要管理员权限
有关这些和其他可能性的详细说明,您会看到此检查Getting to Know User Account Control Technet article
答案 1 :(得分:1)
MVP正在谈论让您的代码和项目从您的用户文件夹运行,例如c:\ users \ yourname \ appdata或该路径下的某些内容。
请勿禁用UAC来解决此问题,否则您的应用程序将无法在其他计算机上运行,除非它已关闭UAC。这是一个非常糟糕的做法。在完美的世界中,您的应用程序应该请求用户提升权限。
答案 2 :(得分:1)
谢谢苏玛。你的反应是最好的,并帮助我找到了解决方案。 我已经确定你的第一个建议解释了原因。将文件重命名为不包含“setup”一词的内容无济于事。
原来我错了。我安装了VS 2005和VS 2008,当我尝试打开旧的.dsw文件时,它是2005年推出并提供升级项目。 2005年显然创建了一个清单,只有一行带有标签“assembly”。使用VS 2008升级项目后,创建了更广泛的清单文件。我通过检查Manifest Tool ...输入和输出......嵌入清单设置确认清单已嵌入到我的程序中。此新清单包括以下数据:
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
</requestedPrivileges>
</security>
答案 3 :(得分:0)
如果您不是管理员,那么您可能无权在C:\ Dev中执行程序。