這是一篇短博客。
前面我已經(jīng)發(fā)過一篇無商業(yè)證書場景下的VSTO分發(fā)方案,主要介紹了無商業(yè)證書場景下的VSTO分發(fā)如何做到Click-Twice、Auto-Update。這篇主要介紹一下如何利用觸手可及的對象存儲服務(wù)來托管自己的軟件安裝包,做到無需建站即可分發(fā)VSTO(或其它微軟ClickOnce軟件)。
原理:ClickOnce發(fā)布方式中,setup.exe會拉取依賴文件,拉取路徑取決于開發(fā)者發(fā)布軟件時的選項,所以個人開發(fā)者在分發(fā)軟件時,完全無需建站,直接把整個部署包放在對象存儲服務(wù)上就可以了。
步驟:
- 注冊對象存儲服務(wù)
由于需要固定域名,最好還能有https,7niu在這方面比較麻煩,排除。國內(nèi)優(yōu)先推薦阿里的OSS,但是,根據(jù)阿里的服務(wù)協(xié)議,私自利用OSS進(jìn)行軟件分發(fā)活動是不受支持的,所以這里另外推薦Amazon的S3以及微軟的Blob??傊瑖鴥?nèi)政策嚴(yán)厲、國外相對寬松,國內(nèi)云服務(wù)速度穩(wěn)定、國外云服務(wù)在大陸訪問速度堪憂(有梯子就很快),關(guān)于對象存儲服務(wù)的選擇,請讀者自行斟酌。 - 建立存儲目錄
建議以你的VSTO名稱在對象存儲池(桶)中建好文件夾。 - 生成ClickOnce部署包
這一步不多說,生成時注意把最終用戶的拉取路徑設(shè)定到自己剛剛建立的對象存儲目錄的url上就行,如果不確定url,可以試著傳一個文件。 - 上傳ClickOnce部署包
按部署包結(jié)構(gòu)建好子目錄,上傳文件即可,上傳時注意選擇公開讀取權(quán)限。文件更新頻繁的話,可以使用客戶端或SDK批量建立文件夾、上傳。 - 制作安裝器
安裝器負(fù)責(zé)拉取setup.exe文件并自動運行,詳情請見我的上一篇博客無商業(yè)證書場景下的VSTO分發(fā)方案。
我們在自制安裝器時,應(yīng)當(dāng)把拉取路徑設(shè)定為自己對象存儲服務(wù)的url。 - 上傳自制安裝器
將安裝器、證書等也上傳至對象存儲池,以阿里OSS為例,你最終的目錄結(jié)構(gòu)可能會類似這樣:
VSTOFoldOnOSS - 分發(fā)安裝器鏈接
選擇你的安裝器,復(fù)制外鏈,分發(fā)給用戶:
OSSExternalLink
結(jié)語:個人無商業(yè)證書免建站分發(fā)VSTO、做到ClickTwice、AutoUpdate,至此徹底完結(jié),后續(xù)沒有特殊需求不再折騰VSTO了。
備注:我自己的那個VSTO并沒有按照“免建站”的標(biāo)準(zhǔn)制作安裝器,但原理并無二致。事實上,我是在我的站點上做了一個Redirect,將指向我站點的路徑重定向到了第三方對象存儲服務(wù)上。

