我正在开发一个自定义更新程序应用程序,以便与我在 VB.NET 中的主应用程序一起工作,该应用程序将从包含我的主应用程序最新更新的程序文件的服务器下载一个 update.zip 文件。它会将 zip 存档的内容提取到C:\Program Files\
我的应用程序目录中并替换任何旧的应用程序文件。
我这样做而不依赖 setup.exe/msi 进行更新的原因是因为每次我的应用程序想要更新时,用户都必须通过设置向导变得乏味。这意味着用户可能根本不会通过设置向导并错过重要的更新,无论是安全补丁还是其他。所以后台更新应用程序的想法似乎是一个更明智的解决方案。用户可以决定他/她何时想要检查更新,是否想要获得 beta 版本,或者他们是否想要自动更新。
要获取我一直使用的 ProgramFiles 目录,Environment.CurrentDirectory
而不是使用固定字符串来标识目录。我遇到的问题是,当我的应用程序尝试将 zip 存档提取到 Program Files 中时,它失败了。我需要知道如何在 VB.NET 或 C# 中修改、替换和删除 Program Files 目录中的文件。
这不是不能创建、修改文本文件到 Windows 7 的程序文件文件夹中的副本,因为我没有将文本(或其他)文件创建为用户数据的一种形式,我正在为我的应用程序更新程序文件。如果未经授权无法更改程序文件,我很乐意在用户单击更新按钮时调用UAC 。