有点标题党的感受,可是我今天说的这个软件确实不少人都用,叫作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
成功以后会生成下面的文件列表。
如今有些地方仍是不方便,列出两个需求:
目前想到这两个。
最后,若是好用请点赞,若是有任何问题请留言,谢谢。