有點標題黨的感受,可是我今天說的這個軟件確實不少人都用,叫作Greenshot。諮詢了它的做者,用戶量居然過億。html
爲了更方便的使用七牛雲的圖牀服務,去年實現了一個開源截圖工具的插件,專門用來上傳圖片到七牛圖牀。操做過程以下:git
比手動操做方便多了。當時寫了一個帖子:github
寫markdown博客如何將截圖快速上傳到圖牀——記一個工具插件的實現(2017-05-31 20:23shell
上次使用是把插件和相關的庫文件拷貝到Greenshot的安裝目錄下面。對這些文件也作了分享,看了看百度網盤,有幾十我的下載,沒有反饋。可是手動拷貝終究仍是不太方便的。服務器
原本想把代碼提交PL給原做者,而後放到官方安裝包中release。但原做者說此軟件用戶量大概有1個億(居然有一個億),他說怕七牛的服務器撐不住,最後會影響其它功能,這是個開源的免費軟件,他們人力有限,因此暫時他尚未approve。固然這個一億應該是全世界的用戶量,中國有多少他沒說,我而後在github上提交了issues給七牛SDK開發人員,可是沒有反饋。後來想一想幹脆本身出包算了。markdown
最終出的包放在了網盤中:app
連接: 密碼: 1749工具
原做者是用powershell腳本進行打包的,一個是prebuild.ps1,另一個是build.ps1,把這個流程弄懂後,之後能夠方便的實現功能,打包分享了。
咱們的目標是把qiniu的插件成功的打包到exe安裝包中,過程當中的某些問題以能被解決爲最終目的,有些細節弄的也不是很清楚。ui
prebuild是用來build前的準備工做的,卡住的地方在生成簽名文件的地方:插件
# Write the certificate to a file [System.Convert]::FromBase64String($env:Certificate) | set-content "greenshot.pfx" -encoding byte # Decode password to secure string $password = ConvertTo-SecureString $env:CertificatePassword -AsPlainText -Force # Import pfx Import-PfxCertificate -FilePath .\Greenshot.pfx -CertStoreLocation Cert:\CurrentUser\My -Password $password`
怎麼也生不成pfx文件,最後用openssl本身生成了一個,而後替換了Greenshot.pfx,也替換了相關的環境變量:
# Write the certificate to a file [System.Convert]::FromBase64String($env:Certificate) | set-content "greenshot.pfx" -encoding byte # Decode password to secure string $password = ConvertTo-SecureString '123456' -AsPlainText -Force # Import pfx Import-PfxCertificate -FilePath .\Greenshotca.pfx -CertStoreLocation Cert:\CurrentUser\My -Password $password
期間還碰到一個命令不能被識別的問題,以下:
網上搜索了相關資料,說是powershell版本過低,在win7上把版本升到最新仍是沒有解決,最後看到有人提到到win10下執行,試了一下竟然成功了。
最後執行成功後會是下面這個樣子:
期間也是遇到了各類問題,最後總結成三點:
打包的過程當中Greenshot若是使用了外來程序庫的話會將其注入到插件中,因此在安裝greenshot後你會看不到qiniu.dll.這樣打包的時候也方便,只要打包插件就能夠了。
greenshot中的簽名工具調用過程當中使用了本身定義的一個環境變量,我也就從網上下載了最新的signtool.exe。本身設置環境變量指向這個簽名工具便可。
加一個新的插件進來須要更新setup.iss.template文件。把插件名字和路徑等信息加上便可。關於多過語言我只添加了英文和中文。
有關代碼能夠看個人github
成功以後會生成下面的文件列表。
如今有些地方仍是不方便,列出兩個需求:
目前想到這兩個。
最後,若是好用請點贊,若是有任何問題請留言,謝謝。