使用C#在没有UAC的情况下在窗口7中安装应用

时间:2010-08-20 03:13:19

标签: c# uac

当我在Windows 7中安装我的C#应用​​程序时,UAC始终显示。我没有以管理员身份登录,但我希望在没有UAC的情况下安装我的应用程序。 你能告诉我怎么做的吗?

4 个答案:

答案 0 :(得分:3)

UAC提示显示有多种原因,其中没有一个是“exe调用函数X中的代码或尝试写入放置Y”。其中包括:

  • 该名称包含设置,补丁,更新等(例如setup21.exe),并且没有清单
  • 您嵌入了一个要求requireAdministrator的清单。你本可以在Visual Studio中这样做。
  • 在要求requireAdministrator的同一文件夹中有一个外部清单(对于NewApp.exe,它将是NewApp.exe.manifest)。你也会故意这样做。
  • 您右键单击了exe,并选择了提升它的属性兼容性,或者以XPSP2的形式运行,7也提升了
  • 贵公司的某个人已应用了一个组策略,此安装应用应该提升(不太可能)
  • 你曾经运行它,从Windows得到一个对话框,说“可能没有用”,并同意再次尝试“推荐设置”

这些看起来有可能吗?如果是这样,请更正它们并查看UAC提示是否消失。

答案 1 :(得分:2)

单个包创作 link text

您需要使用Windows Installer / Windows Installer XML来使此安装符合您的要求。

答案 2 :(得分:2)

如果您想安装没有UAC的应用程序,那么您只能触摸当前登录用户可以写入的文件夹。 Google Chrome会执行此操作 - 它会将整个应用程序安装到用户的本地应用程序数据文件夹中。

这是非标准的,我认为MS应该禁止从这个位置运行代码,但它是一个有效的解决方案,需要管理员/ UAC访问才能安装应用程序。

顺便提一下,谷歌浏览器最近提供了一个传统的安装程序,因此一个用户可以安装它以供计算机上的所有用户使用。

答案 3 :(得分:2)

如果您希望在不触发UAC的情况下安装应用程序,请安装到%APPDATA%(而不是安装到%ProgramFiles%)并写入注册表中的HKCU配置单元 (即don试着写信给HKLM,HKCR等。)