部署/更新

时间:2017-05-10 15:10:15

标签: .net vb.net clickonce squirrel.windows

我花了最近几天尝试设置家庭FTP服务器,但我的防火墙让我很难过。

我的目标是在Portable .NET应用程序中模拟Click-Once应用程序的功能。我有一个完成的可移植EXE文件,在运行时使用My.Application.info.directorypath访问同一目录中的几个读/写数据文件夹。因此,我不希望使用安装执行已发布的应用程序,因为许多用户对其程序文件目录没有写入权限。此外,我有用户在Mac / Linux和XP用户上使用WINE。我认为如果我脱离可移植性,尝试获得与目前相同的兼容性将是有问题的。

我的计划是编写第二个应用程序以用作启动器/更新程序。它将使用Web客户端读取具有当前软件版本号的托管文件。如果它已过时,它将提示用户,然后使用WebClient.DownloadFile下载最新软件的压缩包。用旧的替换旧的,然后启动应用程序。

唯一的问题是这是非常病毒的......我不认为它可以做一个程序化的文件下载,只是在后台替换文件。

有没有人对如何处理这种情况有任何好的部署技巧?任何人都有一个很好的建议文件托管位置可以编程阅读(我可以使用Github,但我想这是不赞成的......)

我正在考虑使用Squirrel.Windows,但是我的WINE或XP用户都无法使用它。

1 个答案:

答案 0 :(得分:2)

您可以将更新应用程序充当“启动器”,以验证是否需要更新,可选择将其下载到子文件夹并解压缩,然后运行实际应用程序。

StateObject

我认为这样可以避免锁定文件时出现问题。

编辑:WebClient https://msdn.microsoft.com/en-us/library/ez801hhe(v=vs.110).aspx?cs-save-lang=1&cs-lang=vb#code-snippet-2

SomeLauncher.exe
-> application sub-folder -> TheAppToRun.exe