深度說明VS2003插件的基本使用原則
今天裝了VS2003插件卻發(fā)現(xiàn)Visual Assist X不能使用了,剛好,那就裝個最新版本的吧,于是在網(wǎng)上找到了 Visual Assist X 10.3.1541的破解補(bǔ)丁,很高興的安裝完之后,在VS2003中并未發(fā)現(xiàn)Visual Assist 的影子。
暈,這回舊版的在VC6中也不見了!看來不是插件的問題,一邊思考會是什么問題,一邊在VC6中查看相關(guān)的按鈕,終于在Tool/Customize/Add-ins and Macro Files中找到了個Browse的按鈕,咦?沒有dsm文件?噢,原來還有下拉框的,于是選擇了dll, Visual Assist X的安裝目錄下出現(xiàn)了一大堆的dll,選擇哪一個呢?
嗯,先選VAssist.dll吧,果然是,VC6的Visual Assist 終于回來了,可是VS2003中 的 Tools/Add-on Manage 的對話框中根本沒有Browse之類的按鈕啊,肯定有地方可以找到的。于是。。。找啊找,Tools/Add Remove Toolbox Items 中有個Browser的按鈕,不管先試試吧,選了VAssist.dll,提示不對,選VAssistNet.dll還是不對,難道是VA_X.dll?咦,VS2003消失了?不會這么弱吧?崩潰?再開,VAsist菜單居然出現(xiàn)了!
好了,廢話了這么多,還是簡單的寫一下操作過程吧:
1.在 Wholestomato 上下載 Visual Assist X v10.3.1541的程序并安裝
2.下載破解程序,點(diǎn)這里下載。
3.打開VS2003, Tools/Add Remove Toolbox Items/Com Compants,點(diǎn) Browser按鈕,在選擇的對話框中,選擇*.dll,在Visual Assist X的安裝目錄,選擇VA_X.dll,VS2003會退出。
4.再啟動VS2003. 如果VAssist菜單還沒有出現(xiàn),進(jìn)入Tools/Add-on Manage 確定 Visual Assist X 是選中的。對于Excel Add-in來說,也是類似的,通常保存在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\Excel\Addins中,依此類推。
在 每個Add-in的設(shè)置屬性中有一個重要的標(biāo)志LoadBehavior,這個屬性是保存在XXXX.Connect中的,類型為DWORD,這個值直接 決定了Addin的啟動模式,默認(rèn)值為3表示Office應(yīng)用程序一啟動就運(yùn)行,這個設(shè)置與我們在Addin向?qū)е羞x擇的"I would like my Add-in to load when the host application loads"是對應(yīng)的。
當(dāng)確定你的Add-in應(yīng)該可以正確加載,但在啟動時沒有加載,這是怎么回事
如果一個Add-in因?yàn)槟承┰蛟趩訒r加載失敗, Office應(yīng)用程序會自動把LoadBehavior改成8,這表示僅在需要加載時才加載該Add-in,而不是在Office啟動時。所以這時可以到 與該Add-in對應(yīng)的注冊表項(xiàng)中檢查一下LoadBehavior值是否正確,如果為8,一定把它改成3。
你不確定Add-in的哪一部分出了問題,該如何調(diào)試
首先必須確定assembly的引用沒有出現(xiàn)問題,關(guān)于如何檢測引用出錯的情況已經(jīng)在問題1中說明。
在Office插件加載時,即使加載失敗也不會有任何提示,如果出現(xiàn)Assembly加載錯誤,我該如何跟蹤這些錯誤
我 們可以在.net自帶的工具中找到一個叫做Assembly Binding Log Viewer的工具,通過它我們可以幾乎所有的assembly加載異常。要注意的是,每個版本的.net都自帶了一個相應(yīng)版本的Assembly Binding Log Viewer,所以運(yùn)行的時候要看一下調(diào)用的是哪個版本的。比如我們現(xiàn)在要調(diào)試基于.net 1.1開發(fā)的Office插件,可以通過以下步驟運(yùn)行:
1. 點(diǎn)擊 開始 > Microsoft Visual Studio .NET 2003 > Visual Studio .NET 工具 > Visual Studio .NET 2003 命令提示
2. 在進(jìn)入Visual Studio 2003命令行模式下,輸入fuslogvw.exe