繁体   English   中英

在没有管理员权限的情况下自动更新Vista中的.NET应用程序

[英]automatically update my .NET application in Vista without admin rights

我知道关于如何在.NET应用程序中实现自动更新存在很多问题,并且我可能已经阅读了大多数问题。 不幸的是,据我所知,我还没有一个适合我的情况。

我正在尝试构建一个将在具有受限用户帐户的环境中运行的自更新.NET应用程序。 这里没有管理员权限。 该应用程序必须在Vista和XP上运行,并且可能在Win 7上运行。 X副本部署会很好。 我不希望一次点击

到目前为止,我已经尝试了一个应用程序检查清单并下载更新的二进制文件的系统,该系统在开发中非常有用,但在安装该应用程序时效果不明显。 Vista拒绝让我将文件复制到“程序文件”。 之后,我尝试下载更新的.msi,除了MSI具有UAC提示符外,该更新都起作用。如果用户没有具有本地管理员特权的帐户,则不行。

一些帖子建议在AppData中运行该程序并使用x-copy方法可能有效,但我还没有看到有人说他们已经尝试过并且确实有效。 这对没有管理员权限的帐户有效吗? 在我开始编写更多代码之前,谁能担保这种方法?

您只需要确保您正在“安装”(即复制到)非特权用户可以访问的位置。

除了非特权用户无法写入程序文件外,程序文件没有任何魔术(默认情况下)。

如果您有管理员进行初始安装,则可以更改程序文件文件夹的权限,以便后续升级可以覆盖这些文件。 但这并不是真的。

ClickOnce的主要缺点是安装位置和原始安装程序不常见-如果您打算将xcopy复制到任何奇怪的地方,那么您已经对ClickOnce有了很多讨厌的东西,而没有任何优势。

尽管相当复杂,一种可行的策略是创建一个作为本地系统运行的Windows服务。 以管理员用户身份安装一次,然后让此服务下载更新并将其复制到程序文件目录。

您可能还需要制作某种用户界面以在更新过程中显示进度和状态。 通过WCF服务等将其公开非常容易。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM