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