[原]排错实战——解决Tekla通过.tsep安装插件失败的问题
缘起
最近同事使用.tsep
安装Tekla
插件的时候,Tekla
提示该插件已经存在了,需要卸载后再安装。同事找了半天,没找到怎么卸载,我也没找到。于是决定弄清楚Tekla
是 如何判断一个插件安装与否的。 想必看过我其它排错文章的小伙伴已经猜到了,我们今天文章中的主角依然是process monitor
。好了,话不多说,好戏马上开始。
调查
在开始调查之前,我们可以先思考下,Tekla
是如何判断一个插件安装与否的?
我能想到如下三种可能:
- 通过读取注册表来判断。
- 通过配置文件来判断。
- 通过加载特定目录下符合条件(e.g. 导出某些约定好的接口)的文件来判断。
这三种情况,我们都可以通过process monitor
监控到。
捕获Tekla
操作记录
打开process monitor
,开始监视。然后双击.tsep
进行安装,当弹出错误对话框的时候,关闭process monitor
监视。
过滤我们关心的记录
process monitor
会捕获超级多的事件。如果不能进行有效的过滤,想找到我们关心的事件,无异于大海捞针。但是我们要根据什么条件来过滤呢?
首先,我们需要根据进程名进行过滤,但是我们怎么知道安装程序对应的进程名呢? process monitor
的Include Process From Window
功能可以很方便的帮我们根据窗口找到其对应的进程。按住该按钮(大写字母A
右侧,像靶子的那个按钮),拖动到目标窗体,松开即可。如下图:
除了根据进程名过滤,我们还需要根据其它条件进一步过滤。我们的过滤条件大概是这样的:
Process Name
只关心TsepFileDispatcher.exe
。Event Class
只关心Registry
和File System
,不关心Network
和Process and Thread
。Operation
排除Write
相关事件,只关心Read
相关事件即可。Path
排除以.dll
,.exe
结尾的路径,并且排除windows
及.net
相关的路径。Result
只关心SUCCESS
类型的。
下图是我们刚刚设置的过滤规则(为了突出重点,我删掉了process monitor
自带的过滤规则)。
经过以上过滤,剩下的事件就很少了,我们可以分别查看Registry
和File System
的事件。我们先看File System
事件。
当我看到
C:\ProgramData\Tekla Structures Learning\2018\Extensions\Installed\{叠合板模板}{1.0}{73703402-ee5b-4058-bf6a-ad1077481245}\Manifest.xml
这条记录的时候,我猜测Tekla
会把插件装在子目录Extensions\Installed
下,我要安装的插件标识符是叠合板模板
,版本是{1.0}
,对应的GUID
是{73703402-ee5b-4058-bf6a-ad1077481245}
。
{% note info %}
说明: 为什么不看Registry
事件呢?因为我找了一圈,没有很容易的在里面找到我关心的事件。
{% endnote %}
大功告成
至此,我们已经找到了我们关心的事件。使用Everything
在本地搜索叠合板模板
,删除所有搜到的记录。再次双击.tsep
文件进行安装,顺利完成。
[原]排错实战——解决Tekla通过.tsep安装插件失败的问题相关推荐
- 全面解决Jenkins离线、安装插件失败
记录一下究极折磨俩天Jenkins安装 一.离线 1.网上常规解决方法,修改配置文件 修改/var/lib/jenkins/updates/default.json jenkins在下载插件之前会先检 ...
- 排错实战——解决c++编译错误:error C2059: illegal token on right side of '::'
缘起 最近,项目里出现了一个奇怪的编译错误.乍看错误提示,真有丈二的和尚,摸不着头脑的感觉.解决之后,又是这么的合情合理.具体是什么样的问题呢?一起来看看吧. 说明: 实际项目中的错误隐藏的更深,完全 ...
- [原]排错实战——通过对比分析sysinternals事件修复程序功能异常
缘起 最近,我们程序的某个功能在一台机器上不正常,但是在另外一台机器上却是正常的.代码是同一份,vs版本也一样(打的补丁也一样).编译出来的程序在两台电脑上运行的结果就是不一样.惊不惊喜,意不意外?如 ...
- vba vbscript.regexp加载dll错误_[原]排错实战——拯救加载调试符号失败的IDA
本文之前发表的时候有些问题,作为强迫症患者的我又重新编辑后再次发表.如果您已经看过,请忽略.望见谅. 缘起 最近想借助IDA逆向一个函数.在windows下,调试器(比如vs, windbg)可以通过 ...
- [原]排错实战——拯救加载调试符号失败的IDA
本文之前发表的时候有些问题,作为强迫症患者的我又重新编辑后再次发表.如果您已经看过,请忽略.望见谅. 缘起 最近想借助IDA逆向一个函数.在windows下,调试器(比如vs, windbg)可以通过 ...
- 解决WordPress博客安装插件时提示输入FTP用户名和密码的问题
http://www.lajiz.cn/1310.html 自从垃圾站博客从电信通搬家到万网虚拟主机后,总是出现问题,刚开始是万网M3主机禁用mail()函数导致WordPress博客无法发送评论回复 ...
- Wordpress安装插件失败
Wordpress安装插件失败,可能是由于没有设置PHP环境变量 解决: 1.添加PHP的系统环境变量,设置php.exe所在路径,如下图是windows 10的设置环境: 打开命令行,执行php - ...
- Atom 安装插件失败的解决方案
Atom 安装插件失败的解决方案 原文首发 http://blog.lll0.net/post/atom_install_fail.html 如果能到墙外面去看看的,下面的对你没有太多的作用 我们在第 ...
- 一招解决python pip install 安装库失败
PIP是python强大的安装利器,但是我们经常遇到安装库失败的问题,以下本人觉得最有效的解决方法: 1.打开 https://www.lfd.uci.edu/~gohlke/pythonlibs网站 ...
最新文章
- python录入数据至ppt_用 Python 让你的 PPT 数据动起来
- php 屏蔽mysql错误提示_PHP.ini中配置屏蔽错误信息显示和保存错误日志
- 并发编程(四):也谈谈数据库的锁机制
- C++与QML逻辑分离
- Python 3 利用 Dlib 和 sklearn 人脸笑脸检测机器学习建模
- 第一课[编辑器设置-VC++6.0]
- 不同曲线设置标签_带动态标签的面积曲线图
- 远程桌面保存密码(凭据)的备份导出
- JAVA day24,25,26 异常(try、catch、finally、throw、throws),线程(Thread、Runnable、Callable)
- android togglebutton 自定义,自定义控件之-----ToggleButton
- mc服务器天赋系统,[娱乐|经济]GokiStats——全新的天赋系统插件MySQL可用[全版本]...
- html页面数学公式添加(附图)
- linux vim yy,linux vim的使用方法
- gliffy confluen插件gliffy-confluence-plugin-5.1.ja破解
- 《东周列国志》第九十回 苏秦合纵相六国 张仪被激往秦邦
- 2016技术众包风云:挑战与机遇并行!
- Mortal Kombat Tower(dp)
- 大话西游免费版最新服务器是,2020年4月1日服务器数据互通公告
- c语言网页版在线编译器_梦幻西游网页版在线玩 梦幻西游网页版礼包兑换码_梦幻西游网页版...
- 华为交换机初始化_我想问华为 s5700交换机 1。请问怎么恢复出厂设置? 2。如果没有密码又怎么恢复出厂设置? 谢谢了...
热门文章
- cheddar调度性模拟器
- 如任何评估人力资源管理系统的优势劣势?
- React Native开发之路(三)
- 【高性能计算】MPI
- 手把手教你火鸟门户系统源码v4.8升级到v4.9对接聊天并安装养老模块及圈子动态模块步骤
- office365字体选项卡里的字体发虚不清晰
- Blender:超详细的甜甜圈制作教程(二)【原教程 油管:Blender Guru】——渲染篇
- 自己动手画CPU《计算机组织与结构实验》之计算机数据表示 第1关:汉字国标码转区位码实验 超详细教学
- 幕布,XMind , Effie , 让你对学习这件事上瘾
- threejs渲染效果