.NET - 启用 UAC (Windows7/Vista) 时,应用程序如何能够 self 更新?

标签 .net windows-7 windows-vista windows-installer uac

这是场景:

我编写了一个应用程序并从 Visual Studio 安装程序项目创建了一个安装程序(我生成了一个 MSI 文件)。我以管理员身份将该应用程序安装到 Program Files 目录中。

当用户使用该应用程序时,我希望它能够自动更新自己(而不会打扰管理员)。现在,Windows 7 和 Windows Vista 有 UAC 来保护 Program Files 目录。所以,我不确定从这里开始。

我想我在某处读到 ClickOnce 能够为应用程序安装更新,而不会打扰用户的管理权限。

  • 有没有可以帮助自动更新的应用程序?
  • 如果有这样的应用程序,他们如何绕过提升的权限?基本上,难道不能以某种方式在 .NET (C#) 中复制这些应用程序吗?


  • 我真的只是希望有一种简单的方法来使用 MSI 文件进行静默更新,因为我不希望普通用户具有管理访问权限,并且我不希望管理员为这项任务烦恼。此外,显然事情不能硬编码,因为用户名和密码很容易改变。

    最佳答案

    如果安装程序和更新包使用相同的数字证书签名,则可以使用 MSI 更新您的应用程序,而无需管理员权限。

    这称为 UAC 修补。 This是 MSDN 上的相关页面。

    关于.NET - 启用 UAC (Windows7/Vista) 时,应用程序如何能够 self 更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6670473/

    相关文章:

    c# - WCF 是否进行 CRL/OCSP 证书检查?

    windows-7 - 读取远程专用队列的 MSMQ 问题(再次)

    delphi - 在 Vista Aero 上禁用进度条动画

    windows-vista - Vista 64 位开发注意事项

    c# - LINQ 选择异步方法的模拟

    c# - 复杂密码的正则表达式

    windows-7 - 如何编程引导加载程序..?想要一个装有 Windows 7、XP、Vista 和 98 SE 的 USB 闪存驱动器用于安装

    python - 如何从 win32com.client.dispatch ("Shell.Application"获取属性)

    windows - 我如何检查用户是否将他的时钟拨回?

    c# - TeamCity + MSTest - 只运行失败的测试?