这是一篇短博客。
前面我已经发过一篇无商业证书场景下的VSTO分发方案,主要介绍了无商业证书场景下的VSTO分发如何做到Click-Twice、Auto-Update。这篇主要介绍一下如何利用触手可及的对象存储服务来托管自己的软件安装包,做到无需建站即可分发VSTO(或其它微软ClickOnce软件)。
原理:ClickOnce发布方式中,setup.exe会拉取依赖文件,拉取路径取决于开发者发布软件时的选项,所以个人开发者在分发软件时,完全无需建站,直接把整个部署包放在对象存储服务上就可以了。
步骤:
- 注册对象存储服务
由于需要固定域名,最好还能有https,7niu在这方面比较麻烦,排除。国内优先推荐阿里的OSS,但是,根据阿里的服务协议,私自利用OSS进行软件分发活动是不受支持的,所以这里另外推荐Amazon的S3以及微软的Blob。总之,国内政策严厉、国外相对宽松,国内云服务速度稳定、国外云服务在大陆访问速度堪忧(有梯子就很快),关于对象存储服务的选择,请读者自行斟酌。 - 建立存储目录
建议以你的VSTO名称在对象存储池(桶)中建好文件夹。 - 生成ClickOnce部署包
这一步不多说,生成时注意把最终用户的拉取路径设定到自己刚刚建立的对象存储目录的url上就行,如果不确定url,可以试着传一个文件。 - 上传ClickOnce部署包
按部署包结构建好子目录,上传文件即可,上传时注意选择公开读取权限。文件更新频繁的话,可以使用客户端或SDK批量建立文件夹、上传。 - 制作安装器
安装器负责拉取setup.exe文件并自动运行,详情请见我的上一篇博客无商业证书场景下的VSTO分发方案。
我们在自制安装器时,应当把拉取路径设定为自己对象存储服务的url。 - 上传自制安装器
将安装器、证书等也上传至对象存储池,以阿里OSS为例,你最终的目录结构可能会类似这样: - 分发安装器链接
选择你的安装器,复制外链,分发给用户:
结语:个人无商业证书免建站分发VSTO、做到ClickTwice、AutoUpdate,至此彻底完结,后续没有特殊需求不再折腾VSTO了。
备注:我自己的那个VSTO并没有按照“免建站”的标准制作安装器,但原理并无二致。事实上,我是在我的站点上做了一个Redirect,将指向我站点的路径重定向到了第三方对象存储服务上。