最近同事使用.tsep
安裝Tekla
插件的時候,Tekla
提示該插件已經存在了,須要卸載後再安裝。同事找了半天,沒找到怎麼卸載,我也沒找到。因而決定弄清楚Tekla
是 如何判斷一個插件安裝與否的。 想必看過我其它排錯文章的小夥伴已經猜到了,咱們今天文章中的主角依然是process monitor
。好了,話很少說,好戲立刻開始。git
在開始調查以前,咱們能夠先思考下,Tekla
是如何判斷一個插件安裝與否的?windows
我能想到以下三種可能:微信
這三種狀況,咱們均可以經過process monitor
監控到。工具
打開process monitor
,開始監視。而後雙擊.tsep
進行安裝,當彈出錯誤對話框的時候,關閉process monitor
監視。spa
process monitor
會捕獲超級多的事件。若是不能進行有效的過濾,想找到咱們關心的事件,無異於大海撈針。可是咱們要根據什麼條件來過濾呢?.net
首先,咱們須要根據進程名進行過濾,可是咱們怎麼知道安裝程序對應的進程名呢? process monitor
的Include Process From Window
功能能夠很方便的幫咱們根據窗口找到其對應的進程。按住該按鈕(大寫字母A
右側,像靶子的那個按鈕),拖動到目標窗體,鬆開便可。以下圖:插件
除了根據進程名過濾,咱們還須要根據其它條件進一步過濾。咱們的過濾條件大概是這樣的:rest
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
自帶的過濾規則)。code
通過以上過濾,剩下的事件就不多了,咱們能夠分別查看Registry
和File System
的事件。咱們先看File System
事件。cdn
當我看到
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}
。
說明: 爲何不看Registry
事件呢?由於我找了一圈,沒有很容易的在裏面找到我關心的事件。
至此,咱們已經找到了咱們關心的事件。使用Everything
在本地搜索疊合板模板
,刪除全部搜到的記錄。再次雙擊.tsep
文件進行安裝,順利完成。😎
process monitor
真是windows
下的排錯神器!你值得擁有!