锦妖和她的小伙伴们 2018-02-09
有点标题党的感觉,但是我今天说的这个软件确实很多人都用,叫做Greenshot。咨询了它的作者,用户量竟然过亿。
为了更方便的使用七牛云的图床服务,去年实现了一个开源截图工具的插件,专门用来上传图片到七牛图床。操作过程如下:
比手动操作方便多了。当时写了一个帖子:
写markdown博客如何将截图快速上传到图床——记一个工具插件的实现(2017-05-31 20:23
上次使用是把插件和相关的库文件拷贝到Greenshot的安装目录下面。对这些文件也做了分享,看了看百度网盘,有几十个人下载,没有反馈。但是手动拷贝终究还是不太方便的。
本来想把代码提交PL给原作者,然后放到官方安装包中release。但原作者说此软件用户量大概有1个亿(竟然有一个亿),他说怕七牛的服务器撑不住,最后会影响其它功能,这是个开源的免费软件,他们人力有限,所以暂时他还没有approve。当然这个一亿应该是全世界的用户量,中国有多少他没说,我然后在github上提交了issues给七牛SDK开发人员,但是没有反馈。后来想想干脆自己出包算了。
最终出的包放在了网盘中:
链接: 密码: 1749
原作者是用powershell脚本进行打包的,一个是prebuild.ps1,另外一个是build.ps1,把这个流程弄懂后,以后可以方便的实现功能,打包分享了。
我们的目标是把qiniu的插件成功的打包到exe安装包中,过程中的某些问题以能被解决为最终目的,有些细节弄的也不是很清楚。
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
成功之后会生成下面的文件列表。
一款定位于Markdown文章排版与一键发布本地文章到等平台的Markdown编辑器。你可以尝试用JustWrite写作,因为JustWrite可以帮你排版,帮你美化,帮你处理本地图片,帮你一键发布!