一、原因

MarkdownPad2在Win10当中可能无法正常运行,右侧预览界面会出现错误“This view has crashed!”查阅官网FAQ得知大多数情况下安装Awesomium 1.6.6 SDK(可能有更新的SDK版本)可解决该问题。但该SDK安装大小高达186MB,远超过MarkdownPad2的体积(约36.1MB)。由于不进行Awesomium的相关开发,所以希望能通过删除MarkdownPad2不用的文件以减小体积。

最终解决方案见文末

二、分析过程

0.安装SDK

经过多次尝试,在安装SDK时依次选择覆盖安装、自定义,在功能面板中仅勾选“.NET Framework 4.0 Client Profile”,不勾选“Awesomium SDK Samples”、“Awesomium.NET Samples”和“Redistribution Modules”时得到的体积最小

1.删除部分文件、文件夹

安装的SDK目录结构如下:

C:\PROGRAM FILES (X86)\KHRONA LLC
└─Awesomium SDK
└─1.6.6
├─build
│ ├─bin
│ │ ├─debug
│ │ │ └─locales
│ │ ├─release
│ │ │ └─locales
│ │ └─release_packed
│ └─lib
│ ├─debug
│ └─release
├─include
│ └─Awesomium
├─logos
├─readme
└─wrappers
└─Awesomium.NET
├─Assemblies
│ └─Packed
├─Mono
│ ├─2.0
│ └─4.0
├─Windows Forms Demo
└─WPF Demo

猜测当中的logos、readme、include、XX Demo文件夹可以删除

*.txt、*.rtf、*.chm以及所有图像文件都可以删除

删除这些内容后MarkdownPad2正常运行,猜想正确

2.删除全部文件夹

突发奇想,如果删除整个Khrona LLC会如何

经测试,删除后不影响正常使用,可行

缺点:由于缺少部分卸载用程序,导致整个SDK无法从控制面板中卸载

3.寻找卸载程序,并删除除此之外的全部文件

逐步深入SDK路径,最先遇到的可执行程序路径如下:

C:\PROGRAM FILES (X86)\KHRONA LLC
└─Awesomium SDK
│ updater.exe
│ updater.ini
……

保留updater.exe、updater.ini后整个SDK可以从控制面板中卸载

4.用火绒剑直接分析MarkdownPad2所需文件

使用火绒安全中的火绒剑(可用其他分析软件)对MarkdownPad2进行分析,发现其运行过程中用到了以下文件

C:\Windows\Microsoft.NET\assembly\GAC_32\Awesomium.Core\v4.0_1.6.6.0__e1a0d7c8071a5214\Awesomium.dll

C:\Windows\Microsoft.NET\assembly\GAC_32\Awesomium.Core\v4.0_1.6.6.0__e1a0d7c8071a5214\AwesomiumProcess

尝试删除文件,发现两者都为MarkdownPad2必须文件

遂进一步分析

C:\Windows\Microsoft.NET\assembly\GAC_32\Awesomium.Core\v4.0_1.6.6.0__e1a0d7c8071a5214\ 文件夹,发现删除当中的任一文件都会导致MarkdownPad2无法启动

后尝试将文件夹当中的所有文件复制到MarkdownPad2的安装目录中,发现MarkdownPad2安装目录当中已有这些文件

由此猜测win10当中MarkdownPad2相关组件未被注册,导致软件无法正常运行,而win7当中无需注册MarkdownPad2相关组件

三、最终解决方案

1.安装SDK:依次选择覆盖安装、自定义,在功能面板中仅勾选“.NET Framework 4.0 Client Profile”,不勾选“Awesomium SDK Samples”、“Awesomium.NET Samples”和“Redistribution Modules”

2.删除文件:删除C:\Program Files (x86)\Khrona LLC\Awesomium SDK下除updater.exe、updater.ini以外的全部文件

按照此方法可省出185MB空间

2019.06.28

最新文章

  1. 【C语言入门教程】5.2 函数的作用域规则(auto, static)
  2. WPF 自定义控件
  3. 最短路算法 (bellman-Ford算法)
  4. iOS汉字中提取首字母
  5. Html Agility Pack基础类介绍及运用
  6. 在Mac OS X上安装Ionic
  7. iOS应用拨打电话
  8. html学习笔记二
  9. hdu_5585_Less Time, More profit(二分+最大权闭合图)
  10. getgpc($k, $t='GP'),怎么返回的是 NULL?
  11. Postgresql合并年月日、月份和日期左侧补零
  12. Elasticsearch 编程API入门系列---说在前面的话
  13. fiddler抓包软件的使用--请求头--ajax
  14. shell变量的使用及输入输出
  15. Spring中添加新的配置表,并对新的配置表进行处理
  16. windows端安装maven
  17. 在Mac中设置Ctrl+C/V进行复制/粘贴
  18. Actors编程模型
  19. xcode找回欢迎界面
  20. Echarts 出现不明竖线解决方案

热门文章

  1. java后台树形结构展示---懒加载
  2. iOS----------componentsJoinedByString 和 componentsSeparatedByString 的方法的区别
  3. QT--吃月亮小游戏
  4. 【Java基础】接口和抽象类之间的对比
  5. MySQL数据库~~~~~创建用户和授权、备份和还原
  6. vue 父子父组件通过props传父页面请求后的数据
  7. vue_04day 路由初始
  8. 分享学习 PHP 源码的方法
  9. Python 十大装 X 语法(一)
  10. Python 关于 pip 部分相关库的安装